|
LLVM
10.0.0
|
This class represents lattice values for constants. More...
Classes | |
| class | A57ChainingConstraint |
| Add the accumulator chaining constraint to a PBQP graph. More... | |
| struct | AAAlign |
| An abstract interface for all align attributes. More... | |
| struct | AADereferenceable |
| An abstract interface for all dereferenceable attribute. More... | |
| class | AAEvalLegacyPass |
| class | AAEvaluator |
| struct | AAHeapToStack |
| struct | AAIsDead |
| An abstract interface for liveness abstract attribute. More... | |
| class | AAManager |
| A manager for alias analyses. More... | |
| struct | AAMDNodes |
| A collection of metadata nodes that might be associated with a memory access used by the alias-analysis infrastructure. More... | |
| struct | AAMemoryBehavior |
| An abstract interface for all memory related attributes. More... | |
| struct | AANoAlias |
| An abstract interface for all noalias attributes. More... | |
| struct | AANoCapture |
| An abstract interface for all nocapture attributes. More... | |
| struct | AANoFree |
| An AbstractAttribute for nofree. More... | |
| struct | AANonNull |
| An abstract interface for all nonnull attributes. More... | |
| struct | AANoRecurse |
| An abstract attribute for norecurse. More... | |
| struct | AANoReturn |
| An AbstractAttribute for noreturn. More... | |
| struct | AANoSync |
| struct | AANoUnwind |
| class | AAQueryInfo |
| This class stores info we want to provide to or retain within an alias query. More... | |
| class | AArch64_COFFTargetObjectFile |
| This implementation is used for AArch64 COFF targets. More... | |
| class | AArch64_ELFTargetObjectFile |
| This implementation is used for AArch64 ELF targets (Linux in particular). More... | |
| class | AArch64_MachoTargetObjectFile |
| AArch64_MachoTargetObjectFile - This TLOF implementation is used for Darwin. More... | |
| class | AArch64AppleInstPrinter |
| class | AArch64beTargetMachine |
| class | AArch64CallLowering |
| class | AArch64Disassembler |
| class | AArch64ExternalSymbolizer |
| class | AArch64FrameLowering |
| class | AArch64FunctionInfo |
| AArch64FunctionInfo - This class is derived from MachineFunctionInfo and contains private AArch64-specific information for each MachineFunction. More... | |
| class | AArch64GenRegisterBankInfo |
| class | AArch64InstPrinter |
| class | AArch64InstrInfo |
| class | AArch64LegalizerInfo |
| This class provides the information for the target register banks. More... | |
| class | AArch64leTargetMachine |
| struct | AArch64MCAsmInfoDarwin |
| struct | AArch64MCAsmInfoELF |
| struct | AArch64MCAsmInfoGNUCOFF |
| struct | AArch64MCAsmInfoMicrosoftCOFF |
| class | AArch64MCExpr |
| class | AArch64MCInstLower |
| AArch64MCInstLower - This class is used to lower an MachineInstr into an MCInst. More... | |
| class | AArch64RegisterBankInfo |
| This class provides the information for the target register banks. More... | |
| class | AArch64RegisterInfo |
| class | AArch64SelectionDAGInfo |
| class | AArch64Subtarget |
| class | AArch64TargetELFStreamer |
| class | AArch64TargetLowering |
| class | AArch64TargetMachine |
| class | AArch64TargetStreamer |
| class | AArch64TargetWinCOFFStreamer |
| class | AArch64TTIImpl |
| struct | AAReachability |
| An abstract interface to determine reachability of point A to B. More... | |
| class | AAResultBase |
| A CRTP-driven "mixin" base class to help implement the function alias analysis results concept. More... | |
| class | AAResults |
| class | AAResultsWrapperPass |
| A wrapper pass to provide the legacy pass manager access to a suitably prepared AAResults object. More... | |
| struct | AAReturnedValues |
Abstract Attribute ClassesMore... | |
| struct | AAUndefinedBehavior |
| An abstract attribute for undefined behavior. More... | |
| struct | AAValueConstantRange |
| An abstract interface for range value analysis. More... | |
| struct | AAValueSimplify |
| An abstract interface for value simplify abstract attribute. More... | |
| struct | AAWillReturn |
| An abstract attribute for willreturn. More... | |
| struct | AbstractAttribute |
| Base struct for all "concrete attribute" deductions. More... | |
| class | AbstractCallSite |
| AbstractCallSite. More... | |
| class | AbstractDependenceGraphBuilder |
| This abstract builder class defines a set of high-level steps for creating DDG-like graphs. More... | |
| class | AbstractLatticeFunction |
| AbstractLatticeFunction - This class is implemented by the dataflow instance to specify what the lattice values are and how they handle merges etc. More... | |
| struct | AbstractState |
| An interface to query the internal state of an abstract attribute. More... | |
| class | AccelTable |
| This class holds an abstract representation of an Accelerator Table, consisting of a sequence of buckets, each bucket containint a sequence of HashData entries. More... | |
| class | AccelTableBase |
| A base class holding non-template-dependant functionality of the AccelTable class. More... | |
| class | AccelTableData |
| Interface which the different types of accelerator table data have to conform. More... | |
| struct | ADCEPass |
| A DCE pass that assumes instructions are dead until proven otherwise. More... | |
| struct | add_const_past_pointer |
| If T is a pointer to X, return a pointer to const X. More... | |
| struct | add_const_past_pointer< T, typename std::enable_if< std::is_pointer< T >::value >::type > |
| struct | add_lvalue_reference_if_not_pointer |
| If T is a pointer, just return it. If it is not, return T&. More... | |
| struct | add_lvalue_reference_if_not_pointer< T, typename std::enable_if< std::is_pointer< T >::value >::type > |
| class | AddDiscriminatorsPass |
| class | AddOperator |
| class | AddressesMap |
| AddressesMap represents information about valid addresses used by debug information. More... | |
| class | AddressPool |
| class | AddressSanitizerPass |
| Public interface to the address sanitizer pass for instrumenting code to check for various memory errors at runtime. More... | |
| class | AddrSpaceCastInst |
| This class represents a conversion between pointers from one address space to another. More... | |
| class | AddrSpaceCastSDNode |
| class | AggressiveAntiDepBreaker |
| class | AggressiveAntiDepState |
| Contains all the state necessary for anti-dep breaking. More... | |
| class | AggressiveInstCombinePass |
| struct | AliasMatchingData |
| Tablegenerated data structures needed to match alias patterns. More... | |
| struct | AliasPattern |
| Data for each alias pattern. More... | |
| struct | AliasPatternCond |
| class | AliasSet |
| class | AliasSetTracker |
| class | AliasSummary |
| Alias summary information. More... | |
| struct | Align |
| This struct is a compact representation of a valid (non-zero power of two) alignment. More... | |
| struct | AlignedCharArrayUnion |
| A suitably aligned and sized character array member which can hold elements of any type. More... | |
| struct | AlignmentFromAssumptionsPass |
| class | AllAnalysesOn |
| This templated class represents "all analyses that operate over \<a
particular IR unit\>" (e.g. More... | |
| class | AllocaHolder |
| class | AllocaInst |
| an instruction to allocate memory on the stack More... | |
| class | AllocationOrder |
| class | AllocatorBase |
CRTP base class providing obvious overloads for the core Allocate() methods of LLVM-style allocators. More... | |
| class | AllocatorList |
| A linked-list with a custom, local allocator. More... | |
| class | AlwaysInlinerPass |
| Inlines functions marked as "always_inline". More... | |
| class | AMDGPUAA |
| Analysis pass providing a never-invalidated alias analysis result. More... | |
| class | AMDGPUAAResult |
| A simple AA result that uses TBAA metadata to answer queries. More... | |
| class | AMDGPUAAWrapperPass |
| Legacy wrapper pass to provide the AMDGPUAAResult object. More... | |
| class | AMDGPUArgumentUsageInfo |
| class | AMDGPUAsmPrinter |
| class | AMDGPUBufferPseudoSourceValue |
| class | AMDGPUCallLowering |
| class | AMDGPUDisassembler |
| class | AMDGPUExternalAAWrapper |
| class | AMDGPUFrameLowering |
| Information about the stack frame layout on the AMDGPU targets. More... | |
| struct | AMDGPUFunctionArgInfo |
| class | AMDGPUGenRegisterBankInfo |
| This class provides the information for the target register banks. More... | |
| class | AMDGPUGWSResourcePseudoSourceValue |
| class | AMDGPUImagePseudoSourceValue |
| class | AMDGPUInstPrinter |
| class | AMDGPUInstrInfo |
| class | AMDGPUInstructionSelector |
| class | AMDGPULegalizerInfo |
| This class provides the information for the target register banks. More... | |
| class | AMDGPULibCalls |
| class | AMDGPULibFunc |
| Wrapper class for AMDGPULIbFuncImpl. More... | |
| class | AMDGPULibFuncBase |
| class | AMDGPULibFuncImpl |
| class | AMDGPUMachineFunction |
| class | AMDGPUMachineModuleInfo |
| class | AMDGPUMangledLibFunc |
| class | AMDGPUMCAsmInfo |
| class | AMDGPUMCCodeEmitter |
| class | AMDGPUPALMetadata |
| struct | AMDGPUPerfHintAnalysis |
| class | AMDGPUPseudoSourceValue |
| class | AMDGPURegisterBankInfo |
| struct | AMDGPURegisterInfo |
| class | AMDGPUSubtarget |
| class | AMDGPUSymbolizer |
| class | AMDGPUTargetAsmStreamer |
| class | AMDGPUTargetELFStreamer |
| class | AMDGPUTargetLowering |
| class | AMDGPUTargetMachine |
| class | AMDGPUTargetObjectFile |
| class | AMDGPUTargetStreamer |
| class | AMDGPUTTIImpl |
| class | AMDGPUUnmangledLibFunc |
| struct | AnalysisCallGraphWrapperPassTraits |
| struct | AnalysisGetter |
| Wrapper for FunctoinAnalysisManager. More... | |
| struct | AnalysisInfoMixin |
| A CRTP mix-in that provides informational APIs needed for analysis passes. More... | |
| struct | AnalysisKey |
| A special type used by analysis passes to provide an address that identifies that particular analysis pass type. More... | |
| class | AnalysisManager |
| A container for analyses that lazily runs them and caches their results. More... | |
| class | AnalysisResolver |
| AnalysisResolver - Simple interface used by Pass objects to pull all analysis information out of pass manager that is responsible to manage the pass. More... | |
| struct | AnalysisResultsForFn |
| Helper struct for bundling up the analysis results per function for IPSCCP. More... | |
| struct | AnalysisSetKey |
| A special type used to provide an address that identifies a set of related analyses. More... | |
| class | AnalysisUsage |
| Represent the analysis usage information of a pass. More... | |
| class | Annotations |
| Annotations lets you mark points and ranges inside source code, for tests: More... | |
| struct | AnonStructTypeKeyInfo |
| class | AntiDepBreaker |
| This class works in conjunction with the post-RA scheduler to rename registers to break register anti-dependencies (WAR hazards). More... | |
| class | Any |
| class | AnyCoroIdInst |
| This represents a common base class for llvm.coro.id instructions. More... | |
| class | AnyCoroIdRetconInst |
| This represents either the llvm.coro.id.retcon or llvm.coro.id.retcon.once instruction. More... | |
| class | AnyCoroSuspendInst |
| class | AnyMemCpyInst |
| This class represents any memcpy intrinsic i.e. More... | |
| class | AnyMemIntrinsic |
| class | AnyMemMoveInst |
| This class represents any memmove intrinsic i.e. More... | |
| class | AnyMemSetInst |
| This class represents any memset intrinsic. More... | |
| class | AnyMemTransferInst |
| class | APByteStreamer |
| class | APFloat |
| struct | APFloatBase |
| A self-contained host- and target-independent arbitrary-precision floating-point software implementation. More... | |
| class | APInt |
| Class for arbitrary precision integers. More... | |
| class | AppendingBinaryByteStream |
| An implementation of WritableBinaryStream which can write at its end causing the underlying data to grow. More... | |
| class | AppleAcceleratorTable |
| This implements the Apple accelerator table format, a precursor of the DWARF 5 accelerator table format. More... | |
| class | AppleAccelTableData |
| A base class for different implementations of Data classes for Apple Accelerator Tables. More... | |
| class | AppleAccelTableOffsetData |
| Accelerator table data implementation for simple Apple accelerator tables with just a DIE reference. More... | |
| class | AppleAccelTableStaticOffsetData |
| Accelerator table data implementation for simple Apple accelerator tables with a DIE offset but no actual DIE pointer. More... | |
| class | AppleAccelTableStaticTypeData |
| Accelerator table data implementation for type accelerator tables with a DIE offset but no actual DIE pointer. More... | |
| class | AppleAccelTableTypeData |
| Accelerator table data implementation for Apple type accelerator tables. More... | |
| class | APSInt |
| class | ARCFrameLowering |
| class | ARCFunctionInfo |
| ARCFunctionInfo - This class is derived from MachineFunction private ARC target-specific information for each MachineFunction. More... | |
| class | ARCInstPrinter |
| class | ARCInstrInfo |
| class | ARCMCAsmInfo |
| class | ARCMCInstLower |
| This class is used to lower an MachineInstr into an MCInst. More... | |
| struct | ARCRegisterInfo |
| class | ARCSubtarget |
| class | ARCTargetLowering |
| class | ARCTargetMachine |
| class | ARCTargetStreamer |
| class | ARCTTIImpl |
| struct | are_base_of |
| traits class for checking whether type T is a base class for all the given types in the variadic list. More... | |
| struct | are_base_of< T, U, Ts... > |
| struct | ArgDescriptor |
| class | Argument |
| This class represents an incoming formal argument to a Function. More... | |
| class | ArgumentPromotionPass |
| Argument promotion pass. More... | |
| class | ARMAsmBackend |
| class | ARMAsmBackendDarwin |
| class | ARMAsmPrinter |
| class | ARMAttributeParser |
| class | ARMBaseInstrInfo |
| class | ARMBaseRegisterInfo |
| class | ARMBaseTargetMachine |
| class | ARMBasicBlockUtils |
| class | ARMBETargetMachine |
| ARM/Thumb big endian target machine. More... | |
| class | ARMCallLowering |
| class | ARMCOFFMCAsmInfoGNU |
| class | ARMCOFFMCAsmInfoMicrosoft |
| class | ARMConstantPoolConstant |
| ARMConstantPoolConstant - ARM-specific constant pool values for Constants, Functions, and BlockAddresses. More... | |
| class | ARMConstantPoolMBB |
| ARMConstantPoolMBB - ARM-specific constantpool value of a machine basic block. More... | |
| class | ARMConstantPoolSymbol |
| ARMConstantPoolSymbol - ARM-specific constantpool values for external symbols. More... | |
| class | ARMConstantPoolValue |
| ARMConstantPoolValue - ARM specific constantpool value. More... | |
| class | ARMELFMCAsmInfo |
| class | ARMElfTargetObjectFile |
| class | ARMException |
| class | ARMFrameLowering |
| class | ARMFunctionInfo |
| ARMFunctionInfo - This class is derived from MachineFunctionInfo and contains private ARM-specific information for each MachineFunction. More... | |
| class | ARMGenRegisterBankInfo |
| class | ARMHazardRecognizer |
| ARMHazardRecognizer handles special constraints that are not expressed in the scheduling itinerary. More... | |
| class | ARMInstPrinter |
| class | ARMInstrInfo |
| class | ARMJITSymbolFlags |
| ARM-specific JIT symbol flags. More... | |
| class | ARMLegalizerInfo |
| This class provides the information for the target register banks. More... | |
| class | ARMLETargetMachine |
| ARM/Thumb little endian target machine. More... | |
| class | ARMMCAsmInfoDarwin |
| class | ARMMCExpr |
| class | ARMRegisterBankInfo |
| This class provides the information for the target register banks. More... | |
| struct | ARMRegisterInfo |
| class | ARMSelectionDAGInfo |
| class | ARMSubtarget |
| class | ARMTargetLowering |
| class | ARMTargetStreamer |
| class | ARMTTIImpl |
| class | ArrayRecycler |
| Recycle small arrays allocated from a BumpPtrAllocator. More... | |
| class | ArrayRef |
| ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory), i.e. More... | |
| class | ArrayType |
| Class to represent array types. More... | |
| class | ASanGlobalsMetadataAnalysis |
| The ASanGlobalsMetadataAnalysis initializes and returns a GlobalsMetadata object. More... | |
| struct | ASanStackFrameLayout |
| struct | ASanStackVariableDescription |
| class | AShrOperator |
| class | AsmCommentConsumer |
| A callback class which is notified of each comment in an assembly file as it is lexed. More... | |
| class | AsmCond |
| AsmCond - Class to support conditional assembly. More... | |
| class | AsmLexer |
| AsmLexer - Lexer class for assembly files. More... | |
| class | AsmPrinter |
| This class is intended to be used as a driving class for all asm writers. More... | |
| class | AsmPrinterHandler |
| Collects and handles AsmPrinter objects required to build debug or EH information. More... | |
| struct | AsmRewrite |
| class | AsmToken |
| Target independent representation for an assembler token. More... | |
| class | AssemblerConstantPools |
| class | AssemblyAnnotationWriter |
| class | AssertingVH |
| Value handle that asserts if the Value is deleted. More... | |
| class | AssumptionAnalysis |
A function analysis which provides an AssumptionCache. More... | |
| class | AssumptionCache |
| A cache of @llvm.assume calls within a function. More... | |
| class | AssumptionCacheTracker |
An immutable pass that tracks lazily created AssumptionCache objects. More... | |
| class | AssumptionPrinterPass |
Printer pass for the AssumptionAnalysis results. More... | |
| class | AtomicCmpXchgInst |
| An instruction that atomically checks whether a specified value is in a memory location, and, if it is, stores a new value there. More... | |
| class | AtomicFileWriteError |
| class | AtomicMemCpyInst |
| This class represents the atomic memcpy intrinsic i.e. More... | |
| class | AtomicMemIntrinsic |
| class | AtomicMemMoveInst |
| This class represents the atomic memmove intrinsic i.e. More... | |
| class | AtomicMemSetInst |
| This class represents atomic memset intrinsic. More... | |
| class | AtomicMemTransferInst |
| class | AtomicRMWInst |
| an instruction that atomically reads a memory location, combines it with another value, and then stores the result back. More... | |
| class | AtomicSDNode |
| This is an SDNode representing atomic operations. More... | |
| class | AttrBuilder |
| class | Attribute |
| class | AttributeImpl |
| class | AttributeList |
| class | AttributeListImpl |
| class | AttributeSet |
| class | AttributeSetNode |
| struct | Attributor |
| The fixpoint analysis framework that orchestrates the attribute deduction. More... | |
| struct | AttributorPass |
| } More... | |
| class | Automaton |
| A deterministic finite-state automaton. More... | |
| class | AVRAsmBackend |
| Utilities for manipulating generated AVR machine code. More... | |
| class | AVRAsmPrinter |
| An AVR assembly code printer. More... | |
| class | AVRDAGToDAGISel |
| Lowers LLVM IR (in DAG form) to AVR MC instructions (in DAG form). More... | |
| struct | AVRDynAllocaSR |
| Create the Dynalloca Stack Pointer Save/Restore pass. More... | |
| class | AVRELFObjectWriter |
| Writes AVR machine code into an ELF32 object file. More... | |
| class | AVRELFStreamer |
| A target streamer for an AVR ELF object file. More... | |
| struct | AVRFrameAnalyzer |
| The frame analyzer pass. More... | |
| class | AVRFrameLowering |
| Utilities for creating function call frames. More... | |
| class | AVRInstPrinter |
| Prints AVR instructions to a textual stream. More... | |
| class | AVRInstrInfo |
| Utilities related to the AVR instruction set. More... | |
| class | AVRMachineFunctionInfo |
| Contains AVR-specific information for each MachineFunction. More... | |
| class | AVRMCAsmInfo |
| Specifies the format of AVR assembly files. More... | |
| class | AVRMCCodeEmitter |
| Writes AVR machine code to a stream. More... | |
| class | AVRMCELFStreamer |
| class | AVRMCExpr |
| A expression in AVR machine code. More... | |
| class | AVRMCInstLower |
Lowers MachineInstr objects into MCInst objects. More... | |
| class | AVRRegisterInfo |
| Utilities relating to AVR registers. More... | |
| class | AVRSelectionDAGInfo |
| Holds information about the AVR instruction selection DAG. More... | |
| class | AVRSubtarget |
| A specific AVR target MCU. More... | |
| class | AVRTargetAsmStreamer |
| A target streamer for textual AVR assembly code. More... | |
| class | AVRTargetLowering |
| Performs target lowering for the AVR. More... | |
| class | AVRTargetMachine |
| A generic AVR implementation. More... | |
| class | AVRTargetObjectFile |
| Lowering for an AVR ELF32 object file. More... | |
| class | AVRTargetStreamer |
| A generic AVR target output stream. More... | |
| class | BaseIndexOffset |
| Helper struct to parse and store a memory address as base + index + offset. More... | |
| class | BasicAA |
| Analysis pass providing a never-invalidated alias analysis result. More... | |
| class | BasicAAResult |
| This is the AA result object for the basic, local, and stateless alias analysis. More... | |
| class | BasicAAWrapperPass |
| Legacy wrapper pass to provide the BasicAAResult object. More... | |
| class | BasicBlock |
| LLVM Basic Block Representation. More... | |
| class | BasicBlockEdge |
| struct | BasicBlockInfo |
| BasicBlockInfo - Information about the offset and size of a single basic block. More... | |
| class | BasicBlockSDNode |
| struct | BasicDIEUnit |
| class | BasicTTIImpl |
| Concrete BasicTTIImpl that can be used if no further customization is needed. More... | |
| class | BasicTTIImplBase |
| Base class which can be used to help build a TTI implementation. More... | |
| class | BatchAAResults |
| This class is a wrapper over an AAResults, and it is intended to be used only when there are no IR changes inbetween queries. More... | |
| struct | BCDumpOptions |
| struct | BDCEPass |
| class | bf_iterator |
| class | bf_iterator_storage |
| struct | BFIDOTGraphTraitsBase |
| class | BinaryByteStream |
| An implementation of BinaryStream which holds its entire data set in a single contiguous buffer. More... | |
| class | BinaryConstantExpr |
| BinaryConstantExpr - This class is private to Constants.cpp, and is used behind the scenes to implement binary constant exprs. More... | |
| class | BinaryItemStream |
| BinaryItemStream represents a sequence of objects stored in some kind of external container but for which it is useful to view as a stream of contiguous bytes. More... | |
| struct | BinaryItemTraits |
| struct | BinaryItemTraits< codeview::CVSymbol > |
| struct | BinaryItemTraits< llvm::codeview::CVType > |
| class | BinaryOperation |
| Class representing a single binary operation in the AST of an expression. More... | |
| class | BinaryOperator |
| class | BinaryOpIntrinsic |
| This class represents an intrinsic that is based on a binary operation. More... | |
| class | BinaryStream |
| An interface for accessing data in a stream-like format, but which discourages copying. More... | |
| class | BinaryStreamError |
| Base class for errors originating when parsing raw PDB files. More... | |
| class | BinaryStreamReader |
Provides read only access to a subclass of BinaryStream. More... | |
| class | BinaryStreamRef |
| BinaryStreamRef is to BinaryStream what ArrayRef is to an Array. More... | |
| class | BinaryStreamRefBase |
| Common stuff for mutable and immutable StreamRefs. More... | |
| class | BinaryStreamWriter |
Provides write only access to a subclass of WritableBinaryStream. More... | |
| struct | BinarySubstreamRef |
| class | BinOpInit |
| !op (X, Y) - Combine two inits. More... | |
| class | BitCastInst |
| This class represents a no-op cast from one type to another. More... | |
| class | BitCastOperator |
| class | BitCodeAbbrev |
| BitCodeAbbrev - This class represents an abbreviation record. More... | |
| class | BitCodeAbbrevOp |
| BitCodeAbbrevOp - This describes one or more operands in an abbreviation. More... | |
| class | BitcodeAnalyzer |
| struct | BitcodeFileContents |
| struct | BitcodeLTOInfo |
| Basic information extracted from a bitcode module to be used for LTO. More... | |
| class | BitcodeModule |
| Represents a module in a bitcode file. More... | |
| class | BitcodeReaderValueList |
| class | BitcodeWriter |
| class | BitcodeWriterPass |
| Pass for writing a module of IR out to a bitcode file. More... | |
| class | BitInit |
| 'true'/'false' - Represent a concrete initializer for a bit. More... | |
| struct | BitIntegerState |
| Specialization of the integer state for a bit-wise encoding. More... | |
| class | BitMaskClassIterator |
| This class encapuslates the logic to iterate over bitmask returned by the various RegClass related APIs. More... | |
| class | BitRecTy |
| 'bit' - Represent a single bit More... | |
| class | BitsInit |
| '{ a, b, c }' - Represents an initializer for a BitsRecTy value. More... | |
| class | BitsRecTy |
| 'bits<n>' - Represent a fixed number of bits More... | |
| class | BitstreamBlockInfo |
| This class maintains the abbreviations read from a block info block. More... | |
| class | BitstreamCursor |
| This represents a position within a bitcode file, implemented on top of a SimpleBitstreamCursor. More... | |
| struct | BitstreamEntry |
| When advancing through a bitstream cursor, each advance can discover a few different kinds of entries: More... | |
| class | BitstreamWriter |
| struct | BitTracker |
| class | BitVector |
| class | BlockAddress |
| The address of a basic block. More... | |
| class | BlockAddressSDNode |
| class | BlockFrequency |
| class | BlockFrequencyAnalysis |
Analysis pass which computes BlockFrequencyInfo. More... | |
| class | BlockFrequencyInfo |
| BlockFrequencyInfo pass uses BlockFrequencyInfoImpl implementation to estimate IR basic block frequencies. More... | |
| class | BlockFrequencyInfoImpl |
| Shared implementation for block frequency analysis. More... | |
| class | BlockFrequencyInfoImplBase |
| Base class for BlockFrequencyInfoImpl. More... | |
| class | BlockFrequencyInfoWrapperPass |
Legacy analysis pass which computes BlockFrequencyInfo. More... | |
| class | BlockFrequencyPrinterPass |
Printer pass for the BlockFrequencyInfo results. More... | |
| class | BlotMapVector |
| An associative container with fast insertion-order (deterministic) iteration over its elements. More... | |
| struct | BooleanState |
| Simple wrapper for a single bit (boolean) state. More... | |
| struct | BoundsCheckingPass |
| A pass to instrument code and perform run-time bounds checking on loads, stores, and other memory intrinsics. More... | |
| class | BPFCoreSharedInfo |
| class | BPFFrameLowering |
| class | BPFInstPrinter |
| class | BPFInstrInfo |
| class | BPFMCAsmInfo |
| class | BPFMCInstLower |
| struct | BPFRegisterInfo |
| class | BPFSelectionDAGInfo |
| class | BPFSubtarget |
| class | BPFTargetLowering |
| class | BPFTargetMachine |
| struct | BPIPassTrait |
| Simple trait class that provides a mapping between BPI passes and the corresponding BPInfo. More... | |
| struct | BPIPassTrait< LazyBranchProbabilityInfoPass > |
| class | BranchFolder |
| class | BranchInst |
| Conditional or Unconditional Branch instruction. More... | |
| class | BranchProbability |
| class | BranchProbabilityAnalysis |
Analysis pass which computes BranchProbabilityInfo. More... | |
| class | BranchProbabilityInfo |
| Analysis providing branch probability information. More... | |
| class | BranchProbabilityInfoWrapperPass |
Legacy analysis pass which computes BranchProbabilityInfo. More... | |
| class | BranchProbabilityPrinterPass |
Printer pass for the BranchProbabilityAnalysis results. More... | |
| struct | BreakCriticalEdgesPass |
| class | BreakFalseDeps |
| class | BTFDebug |
| Collect and emit BTF information. More... | |
| struct | BTFFieldReloc |
| Represent one field relocation. More... | |
| struct | BTFFuncInfo |
| Represent one func and its type id. More... | |
| class | BTFKindDataSec |
| Handle data sections. More... | |
| class | BTFKindVar |
| Handle variable instances. More... | |
| struct | BTFLineInfo |
| Represent one line info. More... | |
| class | BTFStringTable |
| String table. More... | |
| class | BTFTypeArray |
| Handle array type. More... | |
| class | BTFTypeBase |
| The base class for BTF type generation. More... | |
| class | BTFTypeDerived |
| Handle several derived types include pointer, const, volatile, typedef and restrict. More... | |
| class | BTFTypeEnum |
| Handle enumerate type. More... | |
| class | BTFTypeFunc |
| Handle subprogram. More... | |
| class | BTFTypeFuncProto |
| Handle function pointer. More... | |
| class | BTFTypeFwd |
| Handle struct or union forward declaration. More... | |
| class | BTFTypeInt |
| Handle int type. More... | |
| class | BTFTypeStruct |
| Handle struct/union type. More... | |
| class | buffer_ostream |
| class | BufferByteStreamer |
| class | BuildVectorSDNode |
| A "pseudo-class" with methods for operating on BUILD_VECTORs. More... | |
| class | BumpPtrAllocatorImpl |
| Allocate memory in an ever growing pool, as if by bump-pointer. More... | |
| class | ByteStreamer |
| class | CacheCost |
CacheCost represents the estimated cost of a inner loop as the number of cache lines used by the memory references it contains. More... | |
| class | CachedHashString |
| A container which contains a string, which it owns, plus a precomputed hash. More... | |
| class | CachedHashStringRef |
| A container which contains a StringRef plus a precomputed hash. More... | |
| class | CachedPathResolver |
| Small helper that resolves and caches file paths. More... | |
| struct | CachePruningPolicy |
| Policy for the pruneCache() function. More... | |
| class | CallbackVH |
| Value handle with callbacks on RAUW and destruction. More... | |
| class | CallBase |
| Base class for all callable instructions (InvokeInst and CallInst) Holds everything related to calling a function. More... | |
| class | CallBrInst |
| CallBr instruction, tracking function calls that may not return control but instead transfer it to a third location. More... | |
| class | CalledValuePropagationPass |
| struct | CalleeInfo |
| Class to accumulate and hold information about a callee. More... | |
| class | CalleeSavedInfo |
| The CalleeSavedInfo class tracks the information need to locate where a callee saved register is in the current frame. More... | |
| class | CallEntryPseudoSourceValue |
| class | CallGraph |
The basic data container for the call graph of a Module of IR. More... | |
| class | CallGraphAnalysis |
An analysis pass to compute the CallGraph for a Module. More... | |
| class | CallGraphNode |
| A node in the call graph for a module. More... | |
| class | CallGraphPrinterPass |
Printer pass for the CallGraphAnalysis results. More... | |
| class | CallGraphSCC |
| CallGraphSCC - This is a single SCC that a CallGraphSCCPass is run on. More... | |
| class | CallGraphSCCPass |
| class | CallGraphWrapperPass |
The ModulePass which wraps up a CallGraph and the logic to build it. More... | |
| class | CallInfo |
| class | CallInst |
| This class represents a function call, abstracting a target machine's calling convention. More... | |
| class | CallLowering |
| class | CallSite |
| class | CallSiteBase |
| struct | CallSiteSplittingPass |
| class | CanonicalizeAliasesPass |
| Simple pass that canonicalizes aliases. More... | |
| struct | CaptureTracker |
| This callback is used in conjunction with PointerMayBeCaptured. More... | |
| struct | cast_convert_val |
| struct | cast_convert_val< To, FromTy, FromTy > |
| struct | cast_retty |
| struct | cast_retty_impl |
| struct | cast_retty_impl< To, const From * > |
| struct | cast_retty_impl< To, const From *const > |
| struct | cast_retty_impl< To, const From > |
| struct | cast_retty_impl< To, From * > |
| struct | cast_retty_impl< To, std::unique_ptr< From > > |
| struct | cast_retty_wrap |
| struct | cast_retty_wrap< To, FromTy, FromTy > |
| class | CastInst |
| This is the base class for all instructions that perform data casts. More... | |
| class | CatchPadInst |
| class | CatchReturnInst |
| class | CatchSwitchInst |
| class | CCState |
| CCState - This class holds information needed while lowering arguments and return values. More... | |
| class | CCValAssign |
| CCValAssign - Represent assignment of one arg/retval to a location. More... | |
| class | CFGAnalyses |
| Represents analyses that only rely on functions' control flow. More... | |
| class | CFGMST |
| An union-find based Minimum Spanning Tree for CFG. More... | |
| class | CFGOnlyPrinterPass |
| class | CFGOnlyViewerPass |
| class | CFGPrinterPass |
| class | CFGViewerPass |
| struct | CFGViewPredecessors |
| struct | CFGViewSuccessors |
| class | CFLAndersAA |
| Analysis pass providing a never-invalidated alias analysis result. More... | |
| class | CFLAndersAAResult |
| class | CFLAndersAAWrapperPass |
| Legacy wrapper pass to provide the CFLAndersAAResult object. More... | |
| class | CFLSteensAA |
| Analysis pass providing a never-invalidated alias analysis result. More... | |
| class | CFLSteensAAResult |
| class | CFLSteensAAWrapperPass |
| Legacy wrapper pass to provide the CFLSteensAAResult object. More... | |
| class | CGProfilePass |
| class | CGSCCToFunctionPassAdaptor |
| Adaptor that maps from a SCC to its functions. More... | |
| struct | CGSCCUpdateResult |
| Support structure for SCC passes to communicate updates the call graph back to the CGSCC pass manager infrsatructure. More... | |
| struct | CHIArg |
| class | circular_raw_ostream |
| circular_raw_ostream - A raw_ostream which can save its data to a circular buffer, or can pass it through directly to an underlying stream if specified with a buffer of zero. More... | |
| struct | ClassInfo |
| class | CleanupPadInst |
| class | CleanupReturnInst |
| struct | ClonedCodeInfo |
| This struct can be used to capture information about code being cloned, while it is being cloned. More... | |
| struct | ClrEHUnwindMapEntry |
| class | CmpInst |
| This class is the base class for the comparison instructions. More... | |
| class | CoalescerPair |
| A helper class for register coalescers. More... | |
| class | CodeExtractor |
| Utility class for extracting code into a new function. More... | |
| class | CodeExtractorAnalysisCache |
| A cache for the CodeExtractor analysis. More... | |
| class | CodeGenCoverage |
| class | CodeInit |
| struct | CodeMetrics |
| Utility to calculate the size and a few similar metrics for a set of basic blocks. More... | |
| class | CodeRecTy |
| 'code' - Represent a code fragment More... | |
| class | CodeViewContext |
| Holds state from .cv_file and .cv_loc directives for later emission. More... | |
| class | CodeViewDebug |
| Collects and handles line tables information in a CodeView format. More... | |
| class | Combiner |
| class | CombinerHelper |
| class | CombinerInfo |
| class | Comdat |
| struct | CommonHandleTraits |
| class | CompareConstantExpr |
| class | CompileUnit |
| Stores all information relating to a compile unit, be it in its original instance in the object file to its brand new cloned and generated DIE tree. More... | |
| class | CompositeType |
| Common super class of ArrayType, StructType and VectorType. More... | |
| class | concat_iterator |
| Iterator wrapper that concatenates sequences together. More... | |
| class | ConcreteOperator |
| A helper template for defining operators for individual opcodes. More... | |
| class | CondCodeSDNode |
| class | CondOpInit |
| !cond(condition_1: value1, ... More... | |
| struct | conjunction |
| struct | conjunction< B1 > |
| struct | conjunction< B1, Bn... > |
| class | ConnectedVNInfoEqClasses |
| ConnectedVNInfoEqClasses - Helper class that can divide VNInfos in a LiveInterval into equivalence clases of connected components. More... | |
| struct | const_pointer_or_const_ref |
| struct | const_pointer_or_const_ref< T, typename std::enable_if< std::is_pointer< T >::value >::type > |
| class | const_set_bits_iterator_impl |
| ForwardIterator for the bits that are set. More... | |
| class | Constant |
| This is an important base class in LLVM. More... | |
| class | ConstantAggregate |
| Base class for aggregate constants (with operands). More... | |
| class | ConstantAggregateZero |
| All zero aggregate value. More... | |
| struct | ConstantAggrKeyType |
| class | ConstantArray |
| ConstantArray - Constant Array Declarations. More... | |
| class | ConstantAsMetadata |
| class | ConstantData |
| Base class for constants with no operands. More... | |
| class | ConstantDataArray |
| An array constant whose element type is a simple 1/2/4/8-byte integer or float/double, and whose elements are just simple data values (i.e. More... | |
| struct | ConstantDataArraySlice |
| Represents offset+length into a ConstantDataArray. More... | |
| class | ConstantDataSequential |
| ConstantDataSequential - A vector or array constant whose element type is a simple 1/2/4/8-byte integer or float/double, and whose elements are just simple data values (i.e. More... | |
| class | ConstantDataVector |
| A vector constant whose element type is a simple 1/2/4/8-byte integer or float/double, and whose elements are just simple data values (i.e. More... | |
| class | ConstantExpr |
| A constant value that is initialized with an expression using other constant values. More... | |
| struct | ConstantExprKeyType |
| class | ConstantFolder |
| ConstantFolder - Create constants with minimum, target independent, folding. More... | |
| class | ConstantFoldingMIRBuilder |
| An MIRBuilder which does trivial constant folding of binary ops. More... | |
| class | ConstantFP |
| ConstantFP - Floating Point Values [float, double]. More... | |
| class | ConstantFPSDNode |
| class | ConstantHoistingPass |
| struct | ConstantInfo |
| struct | ConstantInfo< ConstantArray > |
| struct | ConstantInfo< ConstantExpr > |
| struct | ConstantInfo< ConstantStruct > |
| struct | ConstantInfo< ConstantVector > |
| struct | ConstantInfo< InlineAsm > |
| class | ConstantInt |
| This is the shared class of boolean and integer constants. More... | |
| class | ConstantMergePass |
| A pass that merges duplicate global constants into a single constant. More... | |
| class | ConstantPointerNull |
| A constant pointer value that points to null. More... | |
| class | ConstantPool |
| struct | ConstantPoolEntry |
| class | ConstantPoolSDNode |
| class | ConstantRange |
| This class represents a range of values. More... | |
| class | ConstantSDNode |
| class | ConstantStruct |
| class | ConstantTokenNone |
| A constant token which is empty. More... | |
| class | ConstantUniqueMap |
| class | ConstantVector |
| Constant Vector Declarations. More... | |
| class | ConstMIBundleOperands |
| ConstMIBundleOperands - Iterate over all operands in a const bundle of machine instructions. More... | |
| class | ConstrainedFPCmpIntrinsic |
| Constrained floating point compare intrinsics. More... | |
| class | ConstrainedFPIntrinsic |
| This is the common base class for constrained floating point intrinsics. More... | |
| class | ContextAndReplaceableUses |
| Pointer to the context, with optional RAUW support. More... | |
| class | ContextualFoldingSet |
| ContextualFoldingSet - This template class is a further refinement of FoldingSet which provides a context argument when calling Profile on its nodes. More... | |
| struct | ContextualFoldingSetTrait |
| ContextualFoldingSetTrait - Like FoldingSetTrait, but for ContextualFoldingSets. More... | |
| class | ControlHeightReductionPass |
| class | ConvergingVLIWScheduler |
| ConvergingVLIWScheduler shrinks the unscheduled zone using heuristics to balance the schedule. More... | |
| class | CoroAllocaAllocInst |
| This represents the llvm.coro.alloca.alloc instruction. More... | |
| class | CoroAllocaFreeInst |
| This represents the llvm.coro.alloca.free instruction. More... | |
| class | CoroAllocaGetInst |
| This represents the llvm.coro.alloca.get instruction. More... | |
| class | CoroAllocInst |
| This represents the llvm.coro.alloc instruction. More... | |
| class | CoroBeginInst |
| This class represents the llvm.coro.begin instruction. More... | |
| class | CoroEndInst |
| This represents the llvm.coro.end instruction. More... | |
| class | CoroFrameInst |
| This represents the llvm.coro.frame instruction. More... | |
| class | CoroFreeInst |
| This represents the llvm.coro.free instruction. More... | |
| class | CoroIdInst |
| This represents the llvm.coro.id instruction. More... | |
| class | CoroIdRetconInst |
| This represents the llvm.coro.id.retcon instruction. More... | |
| class | CoroIdRetconOnceInst |
| This represents the llvm.coro.id.retcon.once instruction. More... | |
| class | CoroPromiseInst |
| This represents the llvm.coro.promise instruction. More... | |
| class | CoroSaveInst |
| This represents the llvm.coro.save instruction. More... | |
| class | CoroSizeInst |
| This represents the llvm.coro.size instruction. More... | |
| class | CoroSubFnInst |
| This class represents the llvm.coro.subfn.addr instruction. More... | |
| class | CoroSuspendInst |
| This represents the llvm.coro.suspend instruction. More... | |
| class | CoroSuspendRetconInst |
| This represents the llvm.coro.suspend.retcon instruction. More... | |
| struct | CorrelatedValuePropagationPass |
| struct | CostTblEntry |
| Cost Table Entry. More... | |
| struct | CountSumOrPercent |
| class | CrashRecoveryContext |
| Crash recovery helper object. More... | |
| class | CrashRecoveryContextCleanup |
| Abstract base class of cleanup handlers. More... | |
| class | CrashRecoveryContextCleanupBase |
| Base class of cleanup handler that controls recovery of resources of the given type. More... | |
| class | CrashRecoveryContextCleanupRegistrar |
| Helper class for managing resource cleanups. More... | |
| class | CrashRecoveryContextDeleteCleanup |
| Cleanup handler that reclaims resource by calling 'delete' on it. More... | |
| class | CrashRecoveryContextDestructorCleanup |
| Cleanup handler that reclaims resource by calling destructor on it. More... | |
| class | CrashRecoveryContextReleaseRefCleanup |
| Cleanup handler that reclaims resource by calling its method 'Release'. More... | |
| class | CriticalAntiDepBreaker |
| struct | CriticalEdgeSplittingOptions |
| Option class for critical edge splitting. More... | |
| class | CrossDSOCFIPass |
| struct | CryptContextTraits |
| class | CSEConfigBase |
| class | CSEConfigConstantOnly |
| class | CSEConfigFull |
| class | CSEMIRBuilder |
| Defines a builder that does CSE of MachineInstructions using GISelCSEInfo. More... | |
| struct | CxxUnwindMapEntry |
| class | DAGDeltaAlgorithm |
| DAGDeltaAlgorithm - Implements a "delta debugging" algorithm for minimizing directed acyclic graphs using a predicate function. More... | |
| class | DagInit |
| (v a, b) - Represent a DAG tree value. More... | |
| class | DagRecTy |
| 'dag' - Represent a dag fragment More... | |
| class | DAGTypeLegalizer |
| This takes an arbitrary SelectionDAG as input and hacks on it until only value types the target machine can handle are left. More... | |
| class | DataDependenceGraph |
| Data Dependency Graph. More... | |
| class | DataExtractor |
| class | DataLayout |
| A parsed version of the target data layout string in and methods for querying it. More... | |
| struct | DataRegionData |
| class | DbgAddrIntrinsic |
| This represents the llvm.dbg.addr instruction. More... | |
| class | DbgCallSiteParam |
| Used for tracking debug info about call site parameters. More... | |
| class | DbgDeclareInst |
| This represents the llvm.dbg.declare instruction. More... | |
| class | DbgEntity |
| This class is defined as the common parent of DbgVariable and DbgLabel such that it could levarage polymorphism to extract common code for DbgVariable and DbgLabel. More... | |
| class | DbgInfoIntrinsic |
| This is the common base class for debug info intrinsics. More... | |
| class | DbgLabel |
| This class is used to track label information. More... | |
| class | DbgLabelInst |
| This represents the llvm.dbg.label instruction. More... | |
| class | DbgLabelInstrMap |
| For each inlined instance of a source-level label, keep the corresponding DBG_LABEL instruction. More... | |
| class | DbgValueHistoryMap |
| For each user variable, keep a list of instruction ranges where this variable is accessible. More... | |
| class | DbgValueInst |
| This represents the llvm.dbg.value instruction. More... | |
| class | DbgValueLoc |
| A single location or constant. More... | |
| class | DbgVariable |
| This class is used to track local variable information. More... | |
| class | DbgVariableIntrinsic |
| This is the common base class for debug info intrinsics for variables. More... | |
| struct | DbgVariableLocation |
| Represents the location at which a variable is stored. More... | |
| class | DCEPass |
| Basic Dead Code Elimination pass. More... | |
| class | DDGAnalysis |
| Analysis pass that builds the DDG for a loop. More... | |
| class | DDGAnalysisPrinterPass |
| Textual printer pass for the DDG of a loop. More... | |
| class | DDGBuilder |
| Concrete implementation of a pure data dependence graph builder. More... | |
| class | DDGEdge |
| Data Dependency Graph Edge. More... | |
| class | DDGNode |
| Data Dependence Graph Node The graph can represent the following types of nodes: More... | |
| class | DeadArgumentEliminationPass |
| Eliminate dead arguments (and return values) from functions. More... | |
| class | DebugCounter |
| class | DebugEpochBase |
| A base class for data structure classes wishing to make iterators ("handles") pointing into themselves fail-fast. More... | |
| class | DebugHandlerBase |
| Base class for debug information backends. More... | |
| class | DebugInfoFinder |
| Utility to find all debug info in a module. More... | |
| class | DebugLoc |
| A debug info location. More... | |
| class | DebugLocDwarfExpression |
| DwarfExpression implementation for .debug_loc entries. More... | |
| class | DebugLocEntry |
| This struct describes location entries emitted in the .debug_loc section. More... | |
| class | DebugLocStream |
| Byte stream of .debug_loc entries. More... | |
| class | DebugVariable |
| Identifies a unique instance of a variable. More... | |
| struct | decimalInfo |
| struct | DecIntegerState |
| Specialization of the integer state for a decreasing value, hence 0 is the best state and ~0u the worst. More... | |
| class | DeclContext |
| A DeclContext is a named program scope that is used for ODR uniquing of types. More... | |
| class | DeclContextTree |
| This class gives a tree-like API to the DenseMap that stores the DeclContext objects. More... | |
| struct | DeclMapInfo |
| Info type for the DenseMap storing the DeclContext pointers. More... | |
| struct | def_chain_iterator |
| Walks the defining accesses of MemoryDefs. More... | |
| struct | DefaultAnalysisGraphTraits |
| Default traits class for extracting a graph from an analysis pass. More... | |
| struct | DefaultContextualFoldingSetTrait |
| DefaultContextualFoldingSetTrait - Like DefaultFoldingSetTrait, but for ContextualFoldingSets. More... | |
| struct | DefaultDOTGraphTraits |
| DefaultDOTGraphTraits - This class provides the default implementations of all of the DOTGraphTraits methods. More... | |
| struct | DefaultFoldingSetTrait |
| DefaultFoldingSetTrait - This class provides default implementations for FoldingSetTrait implementations. More... | |
| class | DefaultVLIWScheduler |
| class | DefInit |
| AL - Represent a reference to a 'def' in the description. More... | |
| struct | DefsetRecord |
| struct | DelimitedScope |
| class | DeltaAlgorithm |
| DeltaAlgorithm - Implements the delta debugging algorithm (A. More... | |
| class | DemandedBits |
| class | DemandedBitsAnalysis |
An analysis that produces DemandedBits for a function. More... | |
| class | DemandedBitsPrinterPass |
| Printer pass for DemandedBits. More... | |
| class | DemandedBitsWrapperPass |
| class | DenseMap |
| struct | DenseMapAPFloatKeyInfo |
| struct | DenseMapAPIntKeyInfo |
| class | DenseMapBase |
| struct | DenseMapInfo |
| struct | DenseMapInfo< AAMDNodes > |
| struct | DenseMapInfo< ArrayRef< T > > |
| struct | DenseMapInfo< AssertingVH< T > > |
| struct | DenseMapInfo< AttributeList > |
| struct | DenseMapInfo< AttributeSet > |
| struct | DenseMapInfo< BasicBlockEdge > |
| struct | DenseMapInfo< CachedHashString > |
| struct | DenseMapInfo< CachedHashStringRef > |
| struct | DenseMapInfo< CallSite > |
| struct | DenseMapInfo< CallValue > |
| struct | DenseMapInfo< cflaa::InstantiatedValue > |
| struct | DenseMapInfo< char > |
| struct | DenseMapInfo< CIEKey > |
| struct | DenseMapInfo< codeview::GloballyHashedType > |
| struct | DenseMapInfo< codeview::LocallyHashedType > |
| struct | DenseMapInfo< codeview::TypeIndex > |
| struct | DenseMapInfo< const Expression * > |
| struct | DenseMapInfo< coverage::CounterExpression > |
| Provide DenseMapInfo for CounterExpression. More... | |
| struct | DenseMapInfo< DebugVariable > |
| struct | DenseMapInfo< DIExpression::FragmentInfo > |
| struct | DenseMapInfo< DivRemMapKey > |
| struct | DenseMapInfo< ElementCount > |
| struct | DenseMapInfo< FunctionSummary::ConstVCall > |
| struct | DenseMapInfo< FunctionSummary::VFuncId > |
| struct | DenseMapInfo< gsym::FileEntry > |
| struct | DenseMapInfo< GVN::Expression > |
| struct | DenseMapInfo< hash_code > |
| struct | DenseMapInfo< ImmutableList< T > > |
| struct | DenseMapInfo< int > |
| struct | DenseMapInfo< IRPosition > |
| Helper that allows IRPosition as a key in a DenseMap. More... | |
| struct | DenseMapInfo< LLT > |
| struct | DenseMapInfo< LocationSize > |
| struct | DenseMapInfo< long > |
| struct | DenseMapInfo< long long > |
| struct | DenseMapInfo< LoweredPHIRecord > |
| struct | DenseMapInfo< MachineOperand > |
| struct | DenseMapInfo< MCRegister > |
| struct | DenseMapInfo< MemOpKey > |
| struct | DenseMapInfo< MemoryLocation > |
| struct | DenseMapInfo< MemoryLocOrCall > |
| struct | DenseMapInfo< minidump::StreamType > |
| struct | DenseMapInfo< object::SectionRef > |
| struct | DenseMapInfo< OffsetInstantiatedValue > |
| struct | DenseMapInfo< OffsetValue > |
| struct | DenseMapInfo< orc::SymbolStringPtr > |
| struct | DenseMapInfo< PointerEmbeddedInt< IntT, Bits > > |
| struct | DenseMapInfo< PointerIntPair< PointerTy, IntBits, IntType > > |
| struct | DenseMapInfo< PointerSumType< TagT, MemberTs... > > |
| struct | DenseMapInfo< PointerUnion< PTs... > > |
| struct | DenseMapInfo< PoisoningVH< T > > |
| struct | DenseMapInfo< Register > |
| struct | DenseMapInfo< SDValue > |
| struct | DenseMapInfo< short > |
| struct | DenseMapInfo< SimpleValue > |
| struct | DenseMapInfo< std::pair< T, U > > |
| struct | DenseMapInfo< StringRef > |
| struct | DenseMapInfo< SymbolsMapKey > |
| struct | DenseMapInfo< T * > |
| struct | DenseMapInfo< TargetInstrInfo::RegSubRegPair > |
| Provide DenseMapInfo for TargetInstrInfo::RegSubRegPair. More... | |
| struct | DenseMapInfo< unsigned > |
| struct | DenseMapInfo< unsigned char > |
| struct | DenseMapInfo< unsigned long > |
| struct | DenseMapInfo< unsigned long long > |
| struct | DenseMapInfo< unsigned short > |
| struct | DenseMapInfo< ValueInfo > |
| struct | DenseMapInfo< ValueMapCallbackVH< KeyT, ValueT, Config > > |
| struct | DenseMapInfo< VTableSlot > |
| struct | DenseMapInfo< VTableSlotSummary > |
| struct | DenseMapInfo< wasm::WasmGlobalType > |
| struct | DenseMapInfo< wasm::WasmSignature > |
| struct | DenseMapInfo< WeakVH > |
| class | DenseMapIterator |
| class | DenseSet |
| Implements a dense probed hash-table based set. More... | |
| class | Dependence |
| Dependence - This class represents a dependence between two memory memory references in a function. More... | |
| class | DependenceAnalysis |
| AnalysisPass to compute dependence information in a function. More... | |
| struct | DependenceAnalysisPrinterPass |
| Printer pass to dump DA results. More... | |
| class | DependenceAnalysisWrapperPass |
| Legacy pass manager pass to access dependence information. More... | |
| class | DependenceGraphInfo |
| Encapsulate some common data and functionality needed for different variations of data dependence graphs. More... | |
| class | DependenceInfo |
| DependenceInfo - This class is the main dependence-analysis driver. More... | |
| struct | deref |
| Binary functor that adapts to any other binary functor after dereferencing operands. More... | |
| struct | DerefState |
| State for dereferenceable attribute. More... | |
| class | DerivedUser |
| Extension point for the Value hierarchy. More... | |
| struct | DescriptorInfo |
| struct | DestSourcePair |
| class | DetectRoundChange |
| struct | DevirtCallSite |
| A call site that could be devirtualized. More... | |
| class | DevirtSCCRepeatedPass |
| A helper that repeats an SCC pass each time an indirect call is refined to a direct call by that pass. More... | |
| struct | df_ext_iterator |
| class | df_iterator |
| struct | df_iterator_default_set |
| class | df_iterator_storage |
| class | df_iterator_storage< SetType, true > |
| class | DFAPacketizer |
| class | DFCalculateWorkObject |
| class | DGEdge |
| Represent an edge in the directed graph. More... | |
| class | DGNode |
| Represent a node in the directed graph. More... | |
| struct | DiagnosticHandler |
| This is the base class for diagnostic handling in LLVM. More... | |
| class | DiagnosticInfo |
| This is the base abstract class for diagnostic reporting in the backend. More... | |
| class | DiagnosticInfoDebugMetadataVersion |
| Diagnostic information for debug metadata version reporting. More... | |
| class | DiagnosticInfoIgnoringInvalidDebugMetadata |
| Diagnostic information for stripping invalid debug metadata. More... | |
| class | DiagnosticInfoInlineAsm |
| Diagnostic information for inline asm reporting. More... | |
| class | DiagnosticInfoIROptimization |
| Common features for diagnostics dealing with optimization remarks that are used by IR passes. More... | |
| class | DiagnosticInfoISelFallback |
| Diagnostic information for ISel fallback path. More... | |
| class | DiagnosticInfoMIROptimization |
| Common features for diagnostics dealing with optimization remarks that are used by machine passes. More... | |
| class | DiagnosticInfoMIRParser |
| Diagnostic information for machine IR parser. More... | |
| class | DiagnosticInfoMisExpect |
| Diagnostic information for MisExpect analysis. More... | |
| class | DiagnosticInfoOptimizationBase |
| Common features for diagnostics dealing with optimization remarks that are used by both IR and MIR passes. More... | |
| class | DiagnosticInfoOptimizationFailure |
| Diagnostic information for optimization failures. More... | |
| class | DiagnosticInfoPGOProfile |
| Diagnostic information for the PGO profiler. More... | |
| class | DiagnosticInfoResourceLimit |
| Diagnostic information for stack size etc. More... | |
| class | DiagnosticInfoSampleProfile |
| Diagnostic information for the sample profiler. More... | |
| class | DiagnosticInfoStackSize |
| class | DiagnosticInfoUnsupported |
| Diagnostic information for unsupported feature in backend. More... | |
| class | DiagnosticInfoWithLocationBase |
| Common features for diagnostics with an associated location. More... | |
| class | DiagnosticLocation |
| struct | DiagnosticPredicate |
| class | DiagnosticPrinter |
| Interface for custom diagnostic printing. More... | |
| class | DiagnosticPrinterRawOStream |
| Basic diagnostic printer that uses an underlying raw_ostream. More... | |
| class | DIBasicType |
| Basic type, like 'int' or 'float'. More... | |
| class | DIBuilder |
| class | DICommonBlock |
| class | DICompileUnit |
| Compile unit. More... | |
| class | DICompositeType |
| Composite types. More... | |
| class | DIContext |
| class | DIDerivedType |
| Derived types. More... | |
| struct | DIDumpOptions |
| Container for dump options that control which debug information will be dumped. More... | |
| class | DIE |
| A structured debug information entry. More... | |
| class | DIEAbbrev |
| Dwarf abbreviation, describes the organization of a debug information object. More... | |
| class | DIEAbbrevData |
| Dwarf abbreviation data, describes one attribute of a Dwarf abbreviation. More... | |
| class | DIEAbbrevSet |
| Helps unique DIEAbbrev objects and assigns abbreviation numbers. More... | |
| class | DIEBaseTypeRef |
| A BaseTypeRef DIE. More... | |
| class | DIEBlock |
| DIEBlock - Represents a block of values. More... | |
| class | DIEDelta |
| A simple label difference DIE. More... | |
| class | DIEDwarfExpression |
| DwarfExpression implementation for singular DW_AT_location. More... | |
| class | DIEEntry |
| A pointer to another debug information entry. More... | |
| class | DIEExpr |
| An expression DIE. More... | |
| class | DIEHash |
| An object containing the capability of hashing and adding hash attributes onto a DIE. More... | |
| class | DIEInlineString |
| A container for inline string values. More... | |
| class | DIEInteger |
| An integer value DIE. More... | |
| class | DIELabel |
| A label DIE. More... | |
| class | DIELoc |
| DIELoc - Represents an expression location. More... | |
| class | DIELocList |
| Represents a pointer to a location list in the debug_loc section. More... | |
| class | DIEnumerator |
| Enumeration value. More... | |
| class | DIEString |
| A container for string pool string values. More... | |
| class | DIEUnit |
| Represents a compile or type unit. More... | |
| class | DIEValue |
| class | DIEValueList |
| A list of DIE values. More... | |
| class | DIExpression |
| DWARF expression. More... | |
| class | DIExpressionCursor |
| Holds a DIExpression and keeps track of how many operands have been consumed so far. More... | |
| class | DIFile |
| File. More... | |
| struct | DIGlobal |
| Container for description of a global variable. More... | |
| class | DIGlobalVariable |
| Global variables. More... | |
| class | DIGlobalVariableExpression |
| A pair of DIGlobalVariable and DIExpression. More... | |
| class | DIImportedEntity |
| An imported module (C++ using directive or similar). More... | |
| class | DIInliningInfo |
| A format-neutral container for inlined code description. More... | |
| class | DILabel |
| Label. More... | |
| class | DILexicalBlock |
| class | DILexicalBlockBase |
| class | DILexicalBlockFile |
| struct | DILineInfo |
| A format-neutral container for source line information. More... | |
| struct | DILineInfoSpecifier |
| Controls which fields of DILineInfo container should be filled with data. More... | |
| struct | DILocal |
| class | DILocalScope |
| A scope for locals. More... | |
| class | DILocalVariable |
| Local variable. More... | |
| class | DILocation |
| Debug location. More... | |
| class | DIMacro |
| class | DIMacroFile |
| class | DIMacroNode |
| Macro Info DWARF-like metadata node. More... | |
| class | DIModule |
| A (clang) module that has been imported by the compile unit. More... | |
| class | DINamespace |
| class | DINode |
| Tagged DWARF-like metadata node. More... | |
| class | DIObjCProperty |
| class | DirectedGraph |
| Directed graph. More... | |
| class | DIScope |
| Base class for scope-like contexts. More... | |
| class | DistinctMDOperandPlaceholder |
| Placeholder metadata for operands of distinct MDNodes. More... | |
| class | DISubprogram |
| Subprogram description. More... | |
| class | DISubrange |
| Array subrange. More... | |
| class | DISubroutineType |
| Type array for a subprogram. More... | |
| class | DITemplateParameter |
| Base class for template parameters. More... | |
| class | DITemplateTypeParameter |
| class | DITemplateValueParameter |
| class | DIType |
| Base class for types. More... | |
| class | DITypeRefArray |
| class | DIVariable |
| Base class for variables. More... | |
| class | DivergenceAnalysis |
| Generic divergence analysis for reducible CFGs. More... | |
| struct | DivergencePropagator |
| struct | DivRemMapKey |
| struct | DivRemPairsPass |
| Hoist/decompose integer division and remainder instructions to enable CFG improvements and better codegen. More... | |
| struct | DomainValue |
| A DomainValue is a bit like LiveIntervals' ValNo, but it also keeps track of execution domains. More... | |
| class | DominanceFrontier |
| class | DominanceFrontierAnalysis |
Analysis pass which computes a DominanceFrontier. More... | |
| class | DominanceFrontierBase |
| DominanceFrontierBase - Common base class for computing forward and inverse dominance frontiers for a function. More... | |
| class | DominanceFrontierPrinterPass |
Printer pass for the DominanceFrontier. More... | |
| class | DominanceFrontierWrapperPass |
| class | DominatorTree |
| Concrete subclass of DominatorTreeBase that is used to compute a normal dominator tree. More... | |
| class | DominatorTreeAnalysis |
Analysis pass which computes a DominatorTree. More... | |
| class | DominatorTreeBase |
| Core dominator tree base class. More... | |
| class | DominatorTreePrinterPass |
Printer pass for the DominatorTree. More... | |
| struct | DominatorTreeVerifierPass |
Verifier pass for the DominatorTree. More... | |
| class | DominatorTreeWrapperPass |
Legacy analysis pass which computes a DominatorTree. More... | |
| struct | DomTreeGraphTraitsBase |
| class | DomTreeNodeBase |
| Base class for the actual dominator tree node. More... | |
| class | DomTreeUpdater |
| class | DoNothingMemorySSAWalker |
| A MemorySSAWalker that does no alias queries, or anything else. More... | |
| struct | DOTGraphTraits |
| DOTGraphTraits - Template class that can be specialized to customize how graphs are converted to 'dot' graphs. More... | |
| struct | DOTGraphTraits< BlockFrequencyInfo * > |
| struct | DOTGraphTraits< BoUpSLP * > |
| struct | DOTGraphTraits< CallGraph * > |
| struct | DOTGraphTraits< const Function * > |
| struct | DOTGraphTraits< const MachineFunction * > |
| struct | DOTGraphTraits< DominatorTree * > |
| struct | DOTGraphTraits< DomTreeNode * > |
| struct | DOTGraphTraits< MachineBlockFrequencyInfo * > |
| struct | DOTGraphTraits< PGOUseFunc * > |
| struct | DOTGraphTraits< PostDominatorTree * > |
| struct | DOTGraphTraits< RegionInfo * > |
| struct | DOTGraphTraits< RegionNode * > |
| struct | DOTGraphTraits< ScheduleDAG * > |
| struct | DOTGraphTraits< ScheduleDAGMI * > |
| struct | DOTGraphTraits< SelectionDAG * > |
| class | DOTGraphTraitsModulePrinter |
| class | DOTGraphTraitsModuleViewer |
| class | DOTGraphTraitsPrinter |
| class | DOTGraphTraitsViewer |
| class | DSEPass |
| This class implements a trivial dead store elimination. More... | |
| class | DstOp |
| class | DummyCGSCCPass |
| This pass is required by interprocedural register allocation. More... | |
| class | DuplexCandidate |
| class | DWARF5AccelTableData |
| The Data class implementation for DWARF v5 accelerator table. More... | |
| class | DWARF5AccelTableStaticData |
| class | DWARFAbbreviationDeclaration |
| class | DWARFAbbreviationDeclarationSet |
| class | DWARFAcceleratorTable |
| The accelerator tables are designed to allow efficient random access (using a symbol name as a key) into debug info by providing an index of the debug info DIEs. More... | |
| struct | DWARFAddressRange |
| struct | DWARFAttribute |
| Encapsulates a DWARF attribute value and all of the data required to describe the attribute value. More... | |
| class | DwarfCFIException |
| class | DwarfCFIExceptionBase |
| class | DWARFCompileUnit |
| class | DwarfCompileUnit |
| class | DWARFContext |
| DWARFContext This data structure is the top level entity that deals with dwarf debug information parsing. More... | |
| class | DWARFDataExtractor |
| A DataExtractor (typically for an in-memory copy of an object-file section) plus a relocation map for that section, if there is one. More... | |
| class | DwarfDebug |
| Collects and handles dwarf debug information. More... | |
| class | DWARFDebugAbbrev |
| class | DWARFDebugAddrTable |
| A class representing an address table as specified in DWARF v5. More... | |
| class | DWARFDebugAranges |
| class | DWARFDebugArangeSet |
| class | DWARFDebugFrame |
| A parsed .debug_frame or .eh_frame section. More... | |
| class | DWARFDebugInfoEntry |
| DWARFDebugInfoEntry - A DIE with only the minimum required data. More... | |
| class | DWARFDebugLine |
| class | DWARFDebugLoc |
| class | DWARFDebugLoclists |
| class | DWARFDebugMacro |
| class | DWARFDebugNames |
| .debug_names section consists of one or more units. More... | |
| class | DWARFDebugPubTable |
| Represents structure for holding and parsing .debug_pub* tables. More... | |
| class | DWARFDebugRangeList |
| class | DWARFDebugRnglist |
| A class representing a single rangelist. More... | |
| class | DWARFDebugRnglistTable |
| class | DWARFDie |
| Utility class that carries the DWARF compile/type unit and the debug info entry in an object. More... | |
| class | DwarfEmitter |
| DwarfEmitter presents interface to generate all debug info tables. More... | |
| class | DWARFExpression |
| class | DwarfExpression |
| Base class containing the logic for constructing DWARF expressions independently of whether they are emitted into a DIE or into a .debug_loc entry. More... | |
| class | DwarfFile |
| class | DWARFFormValue |
| class | DWARFGdbIndex |
| struct | DWARFListEntryBase |
| A base class for DWARF list entries, such as range or location list entries. More... | |
| class | DWARFListTableBase |
| A class representing a table of lists as specified in the DWARF v5 standard for location lists and range lists. More... | |
| class | DWARFListTableHeader |
| A class representing the header of a list table such as the range list table in the .debug_rnglists section. More... | |
| class | DWARFListType |
| A base class for lists of entries that are extracted from a particular section, such as range lists or location lists. More... | |
| struct | DWARFLocationEntry |
| A single location within a location list. More... | |
| struct | DWARFLocationExpression |
| Represents a single DWARF expression, whose value is location-dependent. More... | |
| class | DWARFLocationTable |
| An abstract base class for various kinds of location tables (.debug_loc, .debug_loclists, and their dwo variants). More... | |
| class | DWARFObject |
| struct | DWARFSection |
| class | DwarfStringPool |
| struct | DwarfStringPoolEntry |
| Data for a string pool entry. More... | |
| class | DwarfStringPoolEntryRef |
| String pool entry reference. More... | |
| class | DWARFTypeUnit |
| class | DwarfTypeUnit |
| class | DWARFUnit |
| class | DwarfUnit |
| This dwarf writer support class manages information associated with a source file. More... | |
| class | DWARFUnitHeader |
| Base class describing the header of any kind of "unit." Some information is specific to certain unit types. More... | |
| class | DWARFUnitIndex |
| class | DWARFUnitVector |
| Describe a collection of units. More... | |
| class | DWARFVerifier |
| A class that verifies DWARF debug information given a DWARF Context. More... | |
| class | early_inc_iterator_impl |
| A pseudo-iterator adaptor that is designed to implement "early increment" style loops. More... | |
| struct | EarlyCSEPass |
| A simple and fast domtree-based CSE pass. More... | |
| class | ECError |
| This class wraps a std::error_code in a Error. More... | |
| class | EdgeBundles |
| class | EHStreamer |
| Emits exception handling directives. More... | |
| class | ElementCount |
| struct | ELFRelocationEntry |
| class | EliminateAvailableExternallyPass |
| A pass that transforms external global definitions into declarations. More... | |
| class | EngineBuilder |
| Builder class for ExecutionEngines. More... | |
| struct | Entry |
| struct | EntryExitInstrumenterPass |
| class | EnumAttributeImpl |
| struct | EnumEntry |
| class | EnumeratedArray |
| class | EquivalenceClasses |
| EquivalenceClasses - This represents a collection of equivalence classes and supports three efficient operations: insert an element into a class of its own, union two classes, and find the class for a given element. More... | |
| class | Error |
| Lightweight error class with error context and mandatory checking. More... | |
| class | ErrorAsOutParameter |
| Helper for Errors used as out-parameters. More... | |
| class | ErrorDiagnostic |
| Class to represent an error holding a diagnostic with location information used when printing it. More... | |
| class | ErrorHandlerTraits |
| Helper for testing applicability of, and applying, handlers for ErrorInfo types. More... | |
| class | ErrorHandlerTraits< Error(&)(ErrT &)> |
| class | ErrorHandlerTraits< Error(&)(std::unique_ptr< ErrT >)> |
| Specialization for functions of the form 'Error (std::unique_ptr<ErrT>)'. More... | |
| class | ErrorHandlerTraits< RetT(C::*)(const ErrT &) const > |
| class | ErrorHandlerTraits< RetT(C::*)(const ErrT &)> |
| class | ErrorHandlerTraits< RetT(C::*)(ErrT &) const > |
| class | ErrorHandlerTraits< RetT(C::*)(ErrT &)> |
| class | ErrorHandlerTraits< RetT(C::*)(std::unique_ptr< ErrT >) const > |
| Specialization for member functions of the form 'RetT (std::unique_ptr<ErrT>) const'. More... | |
| class | ErrorHandlerTraits< RetT(C::*)(std::unique_ptr< ErrT >)> |
| Specialization for member functions of the form 'RetT (std::unique_ptr<ErrT>)'. More... | |
| class | ErrorHandlerTraits< void(&)(ErrT &)> |
| class | ErrorHandlerTraits< void(&)(std::unique_ptr< ErrT >)> |
| Specialization for functions of the form 'void (std::unique_ptr<ErrT>)'. More... | |
| class | ErrorInfo |
| Base class for user error types. More... | |
| class | ErrorInfoBase |
| Base class for error info classes. More... | |
| class | ErrorList |
| Special ErrorInfo subclass representing a list of ErrorInfos. More... | |
| class | ErrorOr |
| Represents either an error or a value T. More... | |
| class | ErrorSuccess |
| Subclass of Error for the sole purpose of identifying the success path in the type system. More... | |
| class | EscapeEnumerator |
| EscapeEnumerator - This is a little algorithm to find all escape points from a function so that "finally"-style code can be inserted. More... | |
| class | Evaluator |
| This class evaluates LLVM IR, producing the Constant representing each SSA instruction. More... | |
| struct | EVT |
| Extended Value Type. More... | |
| struct | ExactEqualsExpression |
| struct | ExecutionContext |
| class | ExecutionDomainFix |
| class | ExecutionEngine |
| Abstract interface for implementation execution of LLVM modules, designed to support both interpreter and just-in-time (JIT) compiler implementations. More... | |
| class | ExecutionEngineState |
| Helper class for helping synchronize access to the global address map table. More... | |
| class | ExitOnError |
| Helper for check-and-exit error handling. More... | |
| class | ExpandReductionsPass |
| class | Expected |
| Tagged union holding either a T or a Error. More... | |
| class | ExpectedAsOutParameter |
| Helper for Expected<T>s used as out-parameters. More... | |
| class | ExpressionAST |
| Base class representing the AST of a given expression. More... | |
| class | ExpressionLiteral |
| Class representing an unsigned literal in the AST of an expression. More... | |
| struct | ExternalAAWrapperPass |
| A wrapper pass for external alias analyses. More... | |
| class | ExternalSymbolPseudoSourceValue |
| A specialized pseudo source value for holding external symbol values. More... | |
| class | ExternalSymbolSDNode |
| class | ExtractElementConstantExpr |
| ExtractElementConstantExpr - This class is private to Constants.cpp, and is used behind the scenes to implement extractelement constant exprs. More... | |
| class | ExtractElementInst |
| This instruction extracts a single (scalar) element from a VectorType value. More... | |
| class | ExtractValueConstantExpr |
| ExtractValueConstantExpr - This class is private to Constants.cpp, and is used behind the scenes to implement extractvalue constant exprs. More... | |
| class | ExtractValueInst |
| This instruction extracts a struct member or array element value from an aggregate value. More... | |
| class | fallible_iterator |
| A wrapper class for fallible iterators. More... | |
| class | FastFoldingSetNode |
| FastFoldingSetNode - This is a subclass of FoldingSetNode which stores a FoldingSetNodeID value rather than requiring the node to recompute it each time it is needed. More... | |
| class | FastISel |
| This is a fast-path instruction selection class that generates poor code and doesn't support illegal types or non-trivial lowering, but runs quickly. More... | |
| class | FastMathFlags |
| Convenience struct for specifying and reasoning about fast-math flags. More... | |
| class | FaultMapParser |
| A parser for the __llvm_faultmaps section generated by the FaultMaps class above. More... | |
| class | FaultMaps |
| class | FCmpInst |
| This instruction compares its operands according to the predicate given to the constructor. More... | |
| class | FeatureBitArray |
| Class used to store the subtarget bits in the tables created by tablegen. More... | |
| class | FeatureBitset |
| Container class for subtarget features. More... | |
| class | FenceInst |
| An instruction for ordering other memory operations. More... | |
| class | FieldInit |
| X.Y - Represent a reference to a subfield of a variable. More... | |
| struct | file_magic |
| file_magic - An "enum class" enumeration of file types based on magic (the first N bytes of the file). More... | |
| class | FileBufferByteStream |
| An implementation of WritableBinaryStream backed by an llvm FileOutputBuffer. More... | |
| class | FileCheck |
| FileCheck class takes the request and exposes various methods that use information from the request. More... | |
| struct | FileCheckDiag |
| class | FileCheckPatternContext |
| Class holding the Pattern global state, shared by all patterns: tables holding values of variables and whether they are defined or not at any given time in the matching process. More... | |
| struct | FileCheckRequest |
| Contains info about various FileCheck options. More... | |
| struct | FileCheckString |
| A check that we found in the input file. More... | |
| class | FileCollector |
| Collects files into a directory and generates a mapping that can be used by the VFS. More... | |
| class | FileError |
| This class wraps a filename and another Error. More... | |
| struct | FileHandleTraits |
| class | FileInfo |
| class | FileOutputBuffer |
| FileOutputBuffer - This interface provides simple way to create an in-memory buffer which will be written to a file. More... | |
| class | FileRemover |
| FileRemover - This class is a simple object meant to be stack allocated. More... | |
| class | filter_iterator_base |
| An iterator adaptor that filters the elements of given inner iterators. More... | |
| class | filter_iterator_impl |
| Specialization of filter_iterator_base for forward iteration only. More... | |
| class | filter_iterator_impl< WrappedIteratorT, PredicateT, std::bidirectional_iterator_tag > |
| Specialization of filter_iterator_base for bidirectional iteration. More... | |
| class | FilteredPassNameParser |
| ===-------------------------------------------------------------------—===// FilteredPassNameParser class - Make use of the pass registration mechanism to automatically add a command line argument to opt for each pass that satisfies a filter criteria. More... | |
| struct | FindHandleTraits |
| class | FixAllFDIVSQRT |
| struct | FixedNumOperandTraits |
| FixedNumOperandTraits - determine the allocation regime of the Use array when it is a prefix to the User object, and the number of Use objects is known at compile time. More... | |
| class | FixedStackPseudoSourceValue |
| A specialized PseudoSourceValue for holding FixedStack values, which must include a frame index. More... | |
| class | FixedStreamArray |
| FixedStreamArray is similar to VarStreamArray, except with each record having a fixed-length. More... | |
| class | FixedStreamArrayIterator |
| class | FlagsOp |
| class | FlatIt |
| Marker class to iterate over the elements of a Region in flat mode. More... | |
| class | Float2IntPass |
| struct | fltSemantics |
| struct | FmtAlign |
| class | FoldingSet |
| FoldingSet - This template class is used to instantiate a specialized implementation of the folding set to the node class T. More... | |
| class | FoldingSetBase |
| FoldingSetBase - Implements the folding set functionality. More... | |
| class | FoldingSetBucketIterator |
| class | FoldingSetBucketIteratorImpl |
| FoldingSetBucketIteratorImpl - This is the common bucket iterator support shared by all folding sets, which knows how to walk a particular bucket of a folding set hash table. More... | |
| class | FoldingSetImpl |
| FoldingSetImpl - An implementation detail that lets us share code between FoldingSet and ContextualFoldingSet. More... | |
| class | FoldingSetIterator |
| class | FoldingSetIteratorImpl |
| FoldingSetIteratorImpl - This is the common iterator support shared by all folding sets, which knows how to walk the folding set hash table. More... | |
| class | FoldingSetNodeID |
| FoldingSetNodeID - This class is used to gather all the unique data bits of a node. More... | |
| class | FoldingSetNodeIDRef |
| FoldingSetNodeIDRef - This class describes a reference to an interned FoldingSetNodeID, which can be a useful to store node id data rather than using plain FoldingSetNodeIDs, since the 32-element SmallVector is often much larger than necessary, and the possibility of heap allocation means it requires a non-trivial destructor call. More... | |
| class | FoldingSetNodeWrapper |
| FoldingSetNodeWrapper - This template class is used to "wrap" arbitrary types in an enclosing object so that they can be inserted into FoldingSets. More... | |
| struct | FoldingSetTrait |
| FoldingSetTrait - This trait class is used to define behavior of how to "profile" (in the FoldingSet parlance) an object of a given type. More... | |
| struct | FoldingSetTrait< SCEV > |
| struct | FoldingSetTrait< SCEVPredicate > |
| struct | FoldingSetTrait< SDVTListNode > |
| Specialize FoldingSetTrait for SDVTListNode to avoid computing temp FoldingSetNodeID and hash value. More... | |
| struct | FoldingSetTrait< std::pair< T1, T2 > > |
| struct | FoldingSetTrait< T * > |
| class | FoldingSetVector |
| FoldingSetVector - This template class combines a FoldingSet and a vector to provide the interface of FoldingSet but with deterministic iteration order based on the insertion order. More... | |
| class | FoldOpInit |
| !foldl (a, b, expr, start, lst) - Fold over a list. More... | |
| struct | ForceFunctionAttrsPass |
| Pass which forces specific function attributes into the IR, primarily as a debugging tool. More... | |
| struct | ForeachLoop |
| ForeachLoop - Record the iteration state associated with a for loop. More... | |
| class | format_object |
| class | format_object_base |
| This is a helper class used for handling formatted output. More... | |
| struct | format_provider |
| struct | format_provider< bool > |
Implementation of format_provider<T> for type bool More... | |
| struct | format_provider< codeview::GloballyHashedType > |
| struct | format_provider< codeview::GUID > |
| struct | format_provider< codeview::LocallyHashedType > |
| struct | format_provider< codeview::TypeIndex > |
| struct | format_provider< Enum, typename std::enable_if< dwarf::EnumTraits< Enum >::value >::type > |
| Dwarf constants format_provider. More... | |
| class | format_provider< llvm::iterator_range< IterT > > |
| Implementation of format_provider<T> for ranges. More... | |
| struct | format_provider< llvm::json::Value > |
| Allow printing json::Value with formatv(). More... | |
| struct | format_provider< pdb::PdbRaw_ImplVer > |
| struct | format_provider< std::chrono::duration< Rep, Period > > |
| struct | format_provider< sys::TimePoint<> > |
| Format provider for TimePoint<> More... | |
| struct | format_provider< T, typename std::enable_if< detail::use_char_formatter< T >::value >::type > |
| Implementation of format_provider<T> for characters. More... | |
| struct | format_provider< T, typename std::enable_if< detail::use_double_formatter< T >::value >::type > |
| Implementation of format_provider<T> for floating point types. More... | |
| struct | format_provider< T, typename std::enable_if< detail::use_integral_formatter< T >::value >::type > |
| Implementation of format_provider<T> for integral arithmetic types. More... | |
| struct | format_provider< T, typename std::enable_if< detail::use_pointer_formatter< T >::value >::type > |
| Implementation of format_provider<T> for integral pointer types. More... | |
| struct | format_provider< T, typename std::enable_if< detail::use_string_formatter< T >::value >::type > |
| Implementation of format_provider<T> for c-style strings and string objects such as std::string and llvm::StringRef. More... | |
| struct | format_provider< Twine > |
| Implementation of format_provider<T> for llvm::Twine. More... | |
| class | FormatAdapter |
| class | formatted_raw_ostream |
| formatted_raw_ostream - A raw_ostream that wraps another one and keeps track of line and column position, allowing padding out to specific column boundaries and querying the number of lines written to the stream. More... | |
| class | FormattedBytes |
| class | FormattedNumber |
| This is a helper class used for format_hex() and format_decimal(). More... | |
| class | FormattedString |
| This is a helper class for left_justify, right_justify, and center_justify. More... | |
| class | formatv_object |
| class | formatv_object_base |
| class | FortifiedLibCallSimplifier |
| This class implements simplifications for calls to fortified library functions (__st*cpy_chk, __memcpy_chk, __memmove_chk, __memset_chk), to, when possible, replace them with their non-checking counterparts. More... | |
| class | ForwardDominanceFrontierBase |
| DominanceFrontier Class - Concrete subclass of DominanceFrontierBase that is used to compute a forward dominator frontiers. More... | |
| struct | ForwardedRegister |
| Describes a register that needs to be forwarded from the prologue to a musttail call. More... | |
| class | FPExtInst |
| This class represents an extension of floating point types. More... | |
| class | FPMathOperator |
| Utility class for floating point operations which can have information about relaxed accuracy requirements attached to them. More... | |
| class | FPPassManager |
| FPPassManager manages BBPassManagers and FunctionPasses. More... | |
| class | FPToSIInst |
| This class represents a cast from floating point to signed integer. More... | |
| class | FPToUIInst |
| This class represents a cast from floating point to unsigned integer. More... | |
| class | FPTruncInst |
| This class represents a truncation of floating point types. More... | |
| class | FrameIndexSDNode |
| struct | FreeDeleter |
| class | FreezeInst |
| This class represents a freeze function that returns random concrete value if an operand is either a poison value or an undef value. More... | |
| class | FullDependence |
| FullDependence - This class represents a dependence between two memory references in a function. More... | |
| class | FuncletPadInst |
| class | Function |
| class | function_ref |
| An efficient, type-erasing, non-owning reference to a callable. More... | |
| class | function_ref< Ret(Params...)> |
| class | FunctionAnalysisManagerCGSCCProxy |
A proxy from a FunctionAnalysisManager to an SCC. More... | |
| class | FunctionCallee |
| A handy container for a FunctionType+Callee-pointer pair, which can be passed around as a single entity. More... | |
| class | FunctionComparator |
| FunctionComparator - Compares two functions to determine whether or not they will generate machine code with the same behaviour. More... | |
| class | FunctionImporter |
| The function importer is automatically importing function from other modules based on the provided summary informations. More... | |
| class | FunctionImportGlobalProcessing |
| Class to handle necessary GlobalValue changes required by ThinLTO function importing, including linkage changes and any necessary renaming. More... | |
| class | FunctionImportPass |
| The function importing pass. More... | |
| class | FunctionLoweringInfo |
| FunctionLoweringInfo - This contains information that is global to a function that is used when lowering a region of the function. More... | |
| class | FunctionPass |
| FunctionPass class - This class is used to implement most global optimizations. More... | |
| struct | FunctionPointerLikeTypeTraits |
| Provide suitable custom traits struct for function pointers. More... | |
| class | FunctionSummary |
| Function summary information to aid decisions and implementation of importing. More... | |
| class | FunctionToLoopPassAdaptor |
| Adaptor that maps from a function to its loops. More... | |
| class | FunctionType |
| Class to represent function types. More... | |
| struct | FunctionTypeKeyInfo |
| class | GCFunctionInfo |
| Garbage collection metadata for a single function. More... | |
| class | GCMetadataPrinter |
| GCMetadataPrinter - Emits GC metadata as assembly code. More... | |
| class | GCModuleInfo |
| An analysis pass which caches information about the entire Module. More... | |
| class | GCNDownwardRPTracker |
| class | GCNHazardRecognizer |
| class | GCNIterativeScheduler |
| class | GCNMaxOccupancySchedStrategy |
| This is a minimal scheduler strategy. More... | |
| struct | GCNRegPressure |
| class | GCNRPTracker |
| class | GCNScheduleDAGMILive |
| class | GCNSubtarget |
| class | GCNTargetMachine |
| class | GCNTTIImpl |
| class | GCNUpwardRPTracker |
| class | GCOVBlock |
| GCOVBlock - Collects block information. More... | |
| class | GCOVBuffer |
| GCOVBuffer - A wrapper around MemoryBuffer to provide GCOV specific read operations. More... | |
| struct | GCOVEdge |
| GCOVEdge - Collects edge information. More... | |
| class | GCOVFile |
| GCOVFile - Collects coverage information for one pair of coverage file (.gcno and .gcda). More... | |
| class | GCOVFunction |
| GCOVFunction - Collects function information. More... | |
| struct | GCOVOptions |
| class | GCOVProfilerPass |
| The gcov-style instrumentation pass. More... | |
| struct | GCPoint |
| GCPoint - Metadata for a collector-safe point in machine code. More... | |
| class | GCProjectionInst |
| Common base class for representing values projected from a statepoint. More... | |
| class | GCRelocateInst |
| Represents calls to the gc.relocate intrinsic. More... | |
| class | GCResultInst |
| Represents calls to the gc.result intrinsic. More... | |
| struct | GCRoot |
| GCRoot - Metadata for a pointer to an object managed by the garbage collector. More... | |
| class | GCStrategy |
| GCStrategy describes a garbage collector algorithm's code generation requirements, and provides overridable hooks for those needs which cannot be abstractly described. More... | |
| class | generic_gep_type_iterator |
| class | GenericDINode |
| Generic tagged DWARF-like metadata node. More... | |
| class | GenericScheduler |
| GenericScheduler shrinks the unscheduled zone using heuristics to balance the schedule. More... | |
| class | GenericSchedulerBase |
| Base class for GenericScheduler. More... | |
| struct | GenericValue |
| class | GEPOperator |
| class | GetElementPtrConstantExpr |
| GetElementPtrConstantExpr - This class is private to Constants.cpp, and is used behind the scenes to implement getelementpr constant exprs. More... | |
| class | GetElementPtrInst |
| an instruction for type-safe pointer arithmetic to access elements of arrays and structs More... | |
| class | GISelChangeObserver |
| Abstract class that contains various methods for clients to notify about changes. More... | |
| class | GISelCSEAnalysisWrapper |
| Simple wrapper that does the following. More... | |
| class | GISelCSEAnalysisWrapperPass |
| The actual analysis pass wrapper. More... | |
| class | GISelCSEInfo |
| The CSE Analysis object. More... | |
| class | GISelInstProfileBuilder |
| class | GISelKnownBits |
| class | GISelKnownBitsAnalysis |
| To use KnownBitsInfo analysis in a pass, KnownBitsInfo &Info = getAnalysis<GISelKnownBitsInfoAnalysis>().get(MF); Add to observer if the Info is caching. More... | |
| class | GISelObserverWrapper |
| Simple wrapper observer that takes several observers, and calls each one for each event. More... | |
| class | GISelWorkList |
| class | GlobalAddressSDNode |
| class | GlobalAlias |
| class | GlobalDCEPass |
| Pass to remove unused function declarations. More... | |
| class | GlobalIFunc |
| class | GlobalIndirectSymbol |
| class | GlobalNumberState |
| GlobalNumberState assigns an integer to each global value in the program, which is used by the comparison routine to order references to globals. More... | |
| class | GlobalObject |
| class | GlobalOptPass |
| Optimize globals that never have their address taken. More... | |
| class | GlobalsAA |
| Analysis pass providing a never-invalidated alias analysis result. More... | |
| class | GlobalsAAResult |
| An alias analysis result set for globals. More... | |
| class | GlobalsAAWrapperPass |
| Legacy wrapper pass to provide the GlobalsAAResult object. More... | |
| class | GlobalsMetadata |
| Frontend-provided metadata for global variables. More... | |
| class | GlobalSplitPass |
| Pass to perform split of global variables. More... | |
| struct | GlobalStatus |
| As we analyze each global, keep track of some information about it. More... | |
| class | GlobalValue |
| class | GlobalValuePseudoSourceValue |
| A specialized pseudo source value for holding GlobalValue values. More... | |
| class | GlobalValueSummary |
| Function and variable summary information to aid decisions and implementation of importing. More... | |
| struct | GlobalValueSummaryInfo |
| class | GlobalVariable |
| class | GlobalVarSummary |
| Global variable summary information to aid decisions and implementation of importing. More... | |
| class | GlobPattern |
| class | GPUDivergenceAnalysis |
| Divergence analysis frontend for GPU kernels. More... | |
| class | GraphDiff |
| struct | GraphTraits |
| struct | GraphTraits< ArgumentGraph * > |
| struct | GraphTraits< ArgumentGraphNode * > |
| struct | GraphTraits< BasicBlock * > |
| struct | GraphTraits< BlockFrequencyInfo * > |
| struct | GraphTraits< BoUpSLP * > |
| struct | GraphTraits< CallGraph * > |
| struct | GraphTraits< CallGraphNode * > |
| struct | GraphTraits< const BasicBlock * > |
| struct | GraphTraits< const CallGraph * > |
| struct | GraphTraits< const CallGraphNode * > |
| struct | GraphTraits< const DataDependenceGraph * > |
| struct | GraphTraits< const DDGNode * > |
| const versions of the grapth trait specializations for DDG More... | |
| struct | GraphTraits< const DomTreeNode * > |
| struct | GraphTraits< const Function * > |
| struct | GraphTraits< const Loop * > |
| struct | GraphTraits< const MachineBasicBlock * > |
| struct | GraphTraits< const MachineDomTreeNode * > |
| struct | GraphTraits< const MachineFunction * > |
| struct | GraphTraits< const MachineLoop * > |
| struct | GraphTraits< const VPBlockBase * > |
| struct | GraphTraits< const VPDomTreeNode * > |
| struct | GraphTraits< const VPRegionBlock * > |
| struct | GraphTraits< DataDependenceGraph * > |
| struct | GraphTraits< DDGNode * > |
| non-const versions of the grapth trait specializations for DDG More... | |
| struct | GraphTraits< DominatorTree * > |
| struct | GraphTraits< DomTreeNode * > |
| struct | GraphTraits< Function * > |
| struct | GraphTraits< Interval * > |
| struct | GraphTraits< Inverse< BasicBlock * > > |
| struct | GraphTraits< Inverse< const BasicBlock * > > |
| struct | GraphTraits< Inverse< const Function * > > |
| struct | GraphTraits< Inverse< const MachineBasicBlock * > > |
| struct | GraphTraits< Inverse< const MachineFunction * > > |
| struct | GraphTraits< Inverse< Function * > > |
| struct | GraphTraits< Inverse< Interval * > > |
| struct | GraphTraits< Inverse< Inverse< T > > > |
| struct | GraphTraits< Inverse< MachineBasicBlock * > > |
| struct | GraphTraits< Inverse< MachineFunction * > > |
| struct | GraphTraits< Inverse< MemoryAccess * > > |
| struct | GraphTraits< Inverse< VPBlockBase * > > |
| struct | GraphTraits< Inverse< VPRegionBlock * > > |
| struct | GraphTraits< IrreducibleGraph > |
| struct | GraphTraits< LazyCallGraph * > |
| struct | GraphTraits< LazyCallGraph::Node * > |
| struct | GraphTraits< Loop * > |
| struct | GraphTraits< MachineBasicBlock * > |
| struct | GraphTraits< MachineBlockFrequencyInfo * > |
| struct | GraphTraits< MachineDominatorTree * > |
| struct | GraphTraits< MachineDomTreeNode * > |
| struct | GraphTraits< MachineFunction * > |
| struct | GraphTraits< MachineLoop * > |
| struct | GraphTraits< MachineRegionInfo * > |
| struct | GraphTraits< MachineRegionInfoPass * > |
| struct | GraphTraits< MemoryAccess * > |
| GraphTraits for a MemoryAccess, which walks defs in the normal case, and uses in the inverse case. More... | |
| struct | GraphTraits< ModuleSummaryIndex * > |
| struct | GraphTraits< PGOUseFunc * > |
| struct | GraphTraits< PostDominatorTree * > |
| struct | GraphTraits< RegionInfo * > |
| struct | GraphTraits< RegionInfoPass * > |
| struct | GraphTraits< ScheduleDAG * > |
| struct | GraphTraits< ScheduleDAGMI * > |
| struct | GraphTraits< SDNode * > |
| struct | GraphTraits< SelectionDAG * > |
| struct | GraphTraits< std::pair< const GraphDiff< BasicBlock *, false > *, BasicBlock * > > |
| struct | GraphTraits< std::pair< const GraphDiff< BasicBlock *, false > *, Inverse< BasicBlock * > > > |
| struct | GraphTraits< std::pair< const GraphDiff< BasicBlock *, true > *, BasicBlock * > > |
| struct | GraphTraits< std::pair< const GraphDiff< BasicBlock *, true > *, Inverse< BasicBlock * > > > |
| struct | GraphTraits< SUnit * > |
| struct | GraphTraits< ValueInfo > |
| GraphTraits definition to build SCC for the index. More... | |
| struct | GraphTraits< VPBlockBase * > |
| struct | GraphTraits< VPDomTreeNode * > |
| Template specializations of GraphTraits for VPDomTreeNode. More... | |
| struct | GraphTraits< VPRegionBlock * > |
| class | GraphWriter |
| struct | GuardWideningPass |
| class | GVMaterializer |
| class | GVN |
| The core GVN pass object. More... | |
| class | GVNHoist |
| class | GVNHoistLegacyPass |
| struct | GVNHoistPass |
| A simple and fast domtree-based GVN pass to hoist common expressions from sibling branches. More... | |
| struct | GVNSinkPass |
| Uses an "inverted" value numbering to decide the similarity of expressions and sinks similar expressions into successors. More... | |
| class | HandleSDNode |
| This class is used to form a handle around another node that is persistent and is updated across invocations of replaceAllUsesWith on its operand. More... | |
| struct | HardwareLoopInfo |
| Attributes of a target dependent hardware loop. More... | |
| struct | has_rbegin |
| Metafunction to determine if T& or T has a member called rbegin(). More... | |
| class | has_rbegin_impl |
| Helper to determine if type T has a member called rbegin(). More... | |
| class | hash_code |
| An opaque object representing a hash code. More... | |
| class | HashingByteStreamer |
| class | HasReferenceResolver |
| Do not resolve anything, but keep track of whether a given variable was referenced. More... | |
| class | HexagonAsmPrinter |
| struct | HexagonBlockRanges |
| class | HexagonCVIResource |
| class | HexagonDAGToDAGISel |
| struct | HexagonEvaluator |
| class | HexagonFrameLowering |
| class | HexagonHazardRecognizer |
| class | HexagonInstPrinter |
| Prints bundles as a newline separated list of individual instructions Duplexes are separated by a vertical tab character A trailing line includes bundle properties such as endloop0/1. More... | |
| class | HexagonInstr |
| class | HexagonInstrInfo |
| class | HexagonMachineFunctionInfo |
| Hexagon target-specific information for each MachineFunction. More... | |
| class | HexagonMCAsmInfo |
| class | HexagonMCChecker |
| Check for a valid bundle. More... | |
| class | HexagonMCCodeEmitter |
| class | HexagonMCELFStreamer |
| class | HexagonMCExpr |
| class | HexagonMCShuffler |
| class | HexagonPacketizerList |
| class | HexagonRegisterInfo |
| class | HexagonResource |
| class | HexagonSelectionDAGInfo |
| class | HexagonShuffler |
| class | HexagonSubtarget |
| class | HexagonTargetLowering |
| class | HexagonTargetMachine |
| class | HexagonTargetObjectFile |
| class | HexagonTargetStreamer |
| class | HexagonTTIImpl |
| struct | HexNumber |
| class | HotColdSplitting |
| class | HotColdSplittingPass |
| Pass to outline cold regions. More... | |
| struct | HungoffOperandTraits |
| HungoffOperandTraits - determine the allocation regime of the Use array when it is not a prefix to the User object, but allocated at an unrelated heap address. More... | |
| struct | HvxSelector |
| class | HWAddressSanitizerPass |
| This is a public interface to the hardware address sanitizer pass for instrumenting code to check for various memory errors at runtime, similar to AddressSanitizer but based on partial hardware assistance. More... | |
| class | ICallPromotionAnalysis |
| class | ICFLoopSafetyInfo |
| This implementation of LoopSafetyInfo use ImplicitControlFlowTracking to give precise answers on "may throw" queries. More... | |
| class | ICmpInst |
| This instruction compares its operands according to the predicate given to the constructor. More... | |
| class | IdentifyingPassPtr |
| Discriminated union of Pass ID types. More... | |
| struct | identity |
| struct | idf_ext_iterator |
| struct | idf_iterator |
| class | IDFCalculator |
| class | IDFCalculatorBase |
| Determine the iterated dominance frontier, given a set of defining blocks, and optionally, a set of live-in blocks. More... | |
| struct | ilist_alloc_traits |
| Use delete by default for iplist and ilist. More... | |
| struct | ilist_alloc_traits< IndexListEntry > |
| struct | ilist_alloc_traits< Instruction > |
| struct | ilist_alloc_traits< MachineBasicBlock > |
| struct | ilist_alloc_traits< MCFragment > |
| struct | ilist_alloc_traits< MemoryAccess > |
| struct | ilist_alloc_traits< SDNode > |
| class | ilist_base |
| Implementations of list algorithms using ilist_node_base. More... | |
| struct | ilist_callback_traits |
| Callbacks do nothing by default in iplist and ilist. More... | |
| struct | ilist_callback_traits< MachineBasicBlock > |
| class | ilist_iterator |
| Iterator for intrusive lists based on ilist_node. More... | |
| struct | ilist_noalloc_traits |
| Custom traits to do nothing on deletion. More... | |
| class | ilist_node |
| class | ilist_node_base |
| Base class for ilist nodes. More... | |
| class | ilist_node_base< false > |
| class | ilist_node_base< true > |
| class | ilist_node_impl |
| Implementation for an ilist node. More... | |
| struct | ilist_node_traits |
| A fragment for template traits for intrusive list that provides default node related operations. More... | |
| class | ilist_node_with_parent |
| An ilist node that can access its parent list. More... | |
| class | ilist_sentinel |
| struct | ilist_sentinel_tracking |
| Option to choose whether to track sentinels. More... | |
| struct | ilist_tag |
| Option to specify a tag for the node type. More... | |
| struct | ilist_traits |
| Template traits for intrusive list. More... | |
| struct | ilist_traits< const Ty > |
| Const traits should never be instantiated. More... | |
| struct | ilist_traits< MachineInstr > |
| struct | ILPValue |
| Represent the ILP of the subDAG rooted at a DAG node. More... | |
| struct | ImmInstrInfo |
| class | ImmutableCallSite |
| Establish a view to a call site for examination. More... | |
| class | ImmutableList |
| ImmutableList - This class represents an immutable (functional) list. More... | |
| class | ImmutableListFactory |
| class | ImmutableListImpl |
| class | ImmutableMap |
| class | ImmutableMapRef |
| class | ImmutablePass |
| ImmutablePass class - This class is used to provide information that does not need to be run. More... | |
| class | ImmutableSet |
| class | ImmutableSetRef |
| class | ImmutableStatepoint |
| A specialization of it's base class for read only access to a gc.statepoint. More... | |
| class | ImplicitControlFlowTracking |
| This class allows to keep track on instructions with implicit control flow. More... | |
| class | ImportedFunctionsInliningStatistics |
| Calculate and dump ThinLTO specific inliner stats. More... | |
| class | ImutAVLFactory |
| class | ImutAVLTree |
| class | ImutAVLTreeGenericIterator |
| class | ImutAVLTreeInOrderIterator |
| struct | ImutAVLValueIterator |
| Generic iterator that wraps a T::TreeTy::iterator and exposes iterator::getValue() on dereference. More... | |
| struct | ImutContainerInfo |
| ImutContainerInfo - Generic definition of comparison operations for elements of immutable containers that defaults to using std::equal_to<> and std::less<> to perform comparison of elements. More... | |
| struct | ImutContainerInfo< T * > |
| ImutContainerInfo - Specialization for pointer values to treat pointers as references to unique objects. More... | |
| class | ImutIntervalAVLFactory |
| struct | ImutKeyValueInfo |
| ImutKeyValueInfo -Traits class used by ImmutableMap. More... | |
| struct | ImutProfileInfo |
| Generic profile template. More... | |
| struct | ImutProfileInfo< bool > |
| Profile traits for booleans. More... | |
| struct | ImutProfileInfo< T * > |
| Generic profile trait for pointer types. More... | |
| struct | ImutProfileInteger |
| Profile traits for integers. More... | |
| struct | IncIntegerState |
| Specialization of the integer state for an increasing value, hence ~0u is the best state and 0 the worst. More... | |
| class | IndexedInstrProfReader |
| Reader for the indexed binary instrprof format. More... | |
| struct | IndexedLoadStoreMatchInfo |
| class | IndexedMap |
| class | IndexedReference |
| Represents a memory reference as a base pointer and a set of indexing operations. More... | |
| class | IndexListEntry |
| This class represents an entry in the slot index list held in the SlotIndexes pass. More... | |
| class | IndirectBrInst |
| Indirect Branch Instruction. More... | |
| struct | IndirectSymbolData |
| class | InductionDescriptor |
| A struct for saving information about induction variables. More... | |
| class | IndVarSimplifyPass |
| struct | InferFunctionAttrsPass |
| A pass which infers function attributes from the names and signatures of function declarations in a module. More... | |
| struct | InformationCache |
| Data structure to hold cached (LLVM-IR) information. More... | |
| class | Init |
| class | InitLLVM |
| class | InjectorIRStrategy |
| Strategy that injects operations into the function. More... | |
| class | InjectTLIMappings |
| class | InjectTLIMappingsLegacy |
| class | InlineAsm |
| struct | InlineAsmIdentifierInfo |
| struct | InlineAsmKeyType |
| class | InlineCost |
| Represents the cost of inlining a function. More... | |
| class | InlineFunctionInfo |
| This class captures the data input to the InlineFunction call, and records the auxiliary results produced by it. More... | |
| struct | InlineParams |
| Thresholds to tune inline cost analysis. More... | |
| struct | InlineResult |
| InlineResult is basically true or false. More... | |
| class | InlinerPass |
| The inliner pass for the new pass manager. More... | |
| class | InnerAnalysisManagerProxy |
| An analysis over an "outer" IR unit that provides access to an analysis manager over an "inner" IR unit. More... | |
| class | InnerLoopUnroller |
| class | InnerLoopVectorizer |
| InnerLoopVectorizer vectorizes loops which contain only one basic block to a specified vectorization factor (VF). More... | |
| class | InsertElementConstantExpr |
| InsertElementConstantExpr - This class is private to Constants.cpp, and is used behind the scenes to implement insertelement constant exprs. More... | |
| class | InsertElementInst |
| This instruction inserts a single (scalar) element into a VectorType value. More... | |
| class | InsertNOPLoad |
| class | InsertPointAnalysis |
| Determines the latest safe point in a block in which we can insert a split, spill or other instruction related with CurLI. More... | |
| class | InsertValueConstantExpr |
| InsertValueConstantExpr - This class is private to Constants.cpp, and is used behind the scenes to implement insertvalue constant exprs. More... | |
| class | InsertValueInst |
| This instruction inserts a struct field of array element value into an aggregate value. More... | |
| class | InsnInfo |
| class | InstCombinePass |
| class | InstCombiner |
| The core instruction combiner logic. More... | |
| class | InstCombineWorklist |
| InstCombineWorklist - This is the worklist management logic for InstCombine. More... | |
| class | InstDeleterIRStrategy |
| class | InstIterator |
| struct | InstrAspect |
| Legalization is decided based on an instruction's opcode, which type slot we're considering, and what the existing type is. More... | |
| class | InstrEmitter |
| struct | InstrInfoQuery |
| InstrInfoQuery provides an interface to query additional information for instructions like metadata or keywords like nsw, which provides conservative results if the users specified it is safe to use. More... | |
| struct | InstrItinerary |
| An itinerary represents the scheduling information for an instruction. More... | |
| class | InstrItineraryData |
| Itinerary data supplied by a subtarget to be used by a target. More... | |
| class | InstrOrderFilePass |
| The instrumentation pass for recording function order. More... | |
| class | InstrProfError |
| class | InstrProfiling |
| Instrumentation based profiling lowering pass. More... | |
| class | InstrProfIncrementInst |
| This represents the llvm.instrprof_increment intrinsic. More... | |
| class | InstrProfIncrementInstStep |
| class | InstrProfIterator |
| A file format agnostic iterator over profiling data. More... | |
| class | InstrProfLookupTrait |
| Trait for lookups into the on-disk hash table for the binary instrprof format. More... | |
| struct | InstrProfOptions |
| Options for the frontend instrumentation based profiling pass. More... | |
| class | InstrProfReader |
| Base class and interface for reading profiling data of any known instrprof format. More... | |
| class | InstrProfReaderIndex |
| struct | InstrProfReaderIndexBase |
| class | InstrProfReaderItaniumRemapper |
| A remapper that applies remappings based on a symbol remapping file. More... | |
| class | InstrProfReaderRemapper |
| Name matcher supporting fuzzy matching of symbol names to names in profiles. More... | |
| struct | InstrProfRecord |
| Profiling information for a single function. More... | |
| class | InstrProfRecordWriterTrait |
| class | InstrProfSummaryBuilder |
| class | InstrProfSymtab |
| A symbol table used for function PGO name look-up with keys (such as pointers, md5hash values) to the function. More... | |
| class | InstrProfValueProfileInst |
| This represents the llvm.instrprof_value_profile intrinsic. More... | |
| struct | InstrProfValueSiteRecord |
| class | InstrProfWriter |
| struct | InstrStage |
| These values represent a non-pipelined step in the execution of an instruction. More... | |
| class | Instruction |
| class | InstructionCombiningPass |
| The legacy pass manager's instcombine pass. More... | |
| class | InstructionPrecedenceTracking |
| class | InstructionSelect |
| This pass is responsible for selecting generic machine instructions to target-specific instructions. More... | |
| class | InstructionSelector |
| Provides the logic to select generic machine instructions. More... | |
| class | InstSimplifyPass |
| Run instruction simplification across each instruction in the function. More... | |
| class | InstVisitor |
| Base class for instruction visitors. More... | |
| class | IntAttributeImpl |
| struct | IntegerRangeState |
| State for an integer range. More... | |
| struct | IntegerStateBase |
| Simple state with integers encoding. More... | |
| class | IntegerType |
| Class to represent integer types. More... | |
| struct | IntelExpr |
| class | IntelJITEventsWrapper |
| class | IntEqClasses |
| class | InterferenceCache |
| class | InterleavedAccessInfo |
| Drive the analysis of interleaved memory accesses in the loop. More... | |
| class | InterleaveGroup |
| The group of interleaved loads/stores sharing the same stride and close to each other. More... | |
| class | InternalizePass |
A pass that internalizes all functions and variables other than those that must be preserved according to MustPreserveGV. More... | |
| class | Interpreter |
| class | Interval |
| Interval Class - An Interval is a set of nodes defined such that every node in the interval has all of its predecessors in the interval (except for the header) More... | |
| class | IntervalIterator |
| class | IntervalMap |
| struct | IntervalMapHalfOpenInfo |
| struct | IntervalMapInfo |
| struct | IntervalMapInfo< SlotIndex > |
| class | IntervalMapOverlaps |
| IntervalMapOverlaps - Iterate over the overlaps of mapped intervals in two IntervalMaps. More... | |
| class | IntervalPartition |
| struct | IntervalPressure |
| RegisterPressure computed within a region of instructions delimited by TopIdx and BottomIdx. More... | |
| class | IntInit |
| '7' - Represent an initialization by a literal integer value. More... | |
| class | IntRecTy |
| 'int' - Represent an integer value of no particular size More... | |
| struct | IntrinsicData |
| class | IntrinsicInst |
| A wrapper class for inspecting calls to intrinsic functions. More... | |
| class | IntrinsicLowering |
| class | IntrusiveBackList |
| struct | IntrusiveBackListBase |
| struct | IntrusiveBackListNode |
| class | IntrusiveRefCntPtr |
| A smart pointer to a reference-counted object that inherits from RefCountedBase or ThreadSafeRefCountedBase. More... | |
| struct | IntrusiveRefCntPtrInfo |
| Class you can specialize to provide custom retain/release functionality for a type. More... | |
| class | IntToPtrInst |
| This class represents a cast from an integer to a pointer. More... | |
| struct | InvalidateAllAnalysesPass |
| A utility pass that does nothing, but preserves no analyses. More... | |
| struct | InvalidateAnalysisPass |
| A no-op pass template which simply forces a specific analysis result to be invalidated. More... | |
| struct | Inverse |
| class | InvokeInst |
| Invoke instruction. More... | |
| class | iplist |
| An intrusive list with ownership and callbacks specified/controlled by ilist_traits, only with API safe for polymorphic types. More... | |
| class | iplist_impl |
| A wrapper around an intrusive list with callbacks and non-intrusive ownership. More... | |
| struct | ipo_ext_iterator |
| struct | ipo_iterator |
| class | IPSCCPPass |
| Pass to perform interprocedural constant propagation. More... | |
| struct | IRAttribute |
| Helper class that provides common functionality to manifest IR attributes. More... | |
| struct | IRAttributeManifest |
| Helper struct necessary as the modular build fails if the virtual method IRAttribute::manifest is defined in the Attributor.cpp. More... | |
| class | IRBuilder |
| This provides a uniform API for creating instructions and inserting them into a basic block: either at the end of a BasicBlock, or at a specific iterator location in a block. More... | |
| class | IRBuilderBase |
| Common base class shared among various IRBuilders. More... | |
| class | IRBuilderCallbackInserter |
| Provides an 'InsertHelper' that calls a user-provided callback after performing the default insertion. More... | |
| class | IRBuilderDefaultInserter |
| This provides the default implementation of the IRBuilder 'InsertHelper' method that is called whenever an instruction is created by IRBuilder and needs to be inserted. More... | |
| class | IRCEPass |
| class | IRMover |
| class | IRMutationStrategy |
| Base class for describing how to mutate a module. More... | |
| class | IRMutator |
| Entry point for configuring and running IR mutations. More... | |
| struct | IRPosition |
| } More... | |
| class | IRTranslator |
| struct | is_bitmask_enum |
| Traits class to determine whether an enum has a LLVM_BITMASK_LARGEST_ENUMERATOR enumerator. More... | |
| struct | is_copy_assignable |
| class | is_integral_or_enum |
| Metafunction that determines whether the given type is either an integral type or an enumeration type, including enum classes. More... | |
| struct | is_move_assignable |
| struct | is_one_of |
| traits class for checking whether type T is one of any of the given types in the variadic list. More... | |
| struct | is_one_of< T, U, Ts... > |
| struct | is_simple_type |
| struct | is_trivially_copy_constructible |
An implementation of std::is_trivially_copy_constructible since we have users with STLs that don't yet include it. More... | |
| struct | is_trivially_copy_constructible< T & > |
| struct | is_trivially_copy_constructible< T && > |
| class | is_trivially_copyable |
| struct | is_trivially_copyable< PointerIntPair< PointerTy, IntBits, IntType, PtrTraits, Info > > |
| class | is_trivially_copyable< T * > |
| struct | is_trivially_move_constructible |
An implementation of std::is_trivially_move_constructible since we have users with STLs that don't yet include it. More... | |
| struct | is_trivially_move_constructible< T & > |
| struct | is_trivially_move_constructible< T && > |
| struct | isa_impl |
| struct | isa_impl< Argument, Value > |
| struct | isa_impl< BasicBlock, Value > |
| struct | isa_impl< Constant, Value > |
| struct | isa_impl< ConstantAggregate, Value > |
| struct | isa_impl< ConstantData, Value > |
| struct | isa_impl< Function, Value > |
| struct | isa_impl< GlobalAlias, Value > |
| struct | isa_impl< GlobalIFunc, Value > |
| struct | isa_impl< GlobalIndirectSymbol, Value > |
| struct | isa_impl< GlobalObject, Value > |
| struct | isa_impl< GlobalValue, Value > |
| struct | isa_impl< GlobalVariable, Value > |
| struct | isa_impl< InlineAsm, Value > |
| struct | isa_impl< Instruction, Value > |
| struct | isa_impl< PointerType, Type > |
| struct | isa_impl< To, From, typename std::enable_if< std::is_base_of< To, From >::value >::type > |
| Always allow upcasts, and perform no dynamic check for them. More... | |
| struct | isa_impl_cl |
| struct | isa_impl_cl< To, const From * > |
| struct | isa_impl_cl< To, const From *const > |
| struct | isa_impl_cl< To, const From > |
| struct | isa_impl_cl< To, const std::unique_ptr< From > > |
| struct | isa_impl_cl< To, From * > |
| struct | isa_impl_cl< To, From *const > |
| struct | isa_impl_wrap |
| struct | isa_impl_wrap< To, FromTy, FromTy > |
| class | IsAOpInit |
| !isa<type>(expr) - Dynamically determine the type of an expression. More... | |
| class | ItaniumManglingCanonicalizer |
| Canonicalizer for mangled names. More... | |
| struct | ItaniumPartialDemangler |
| "Partial" demangler. More... | |
| class | iterator_adaptor_base |
| CRTP base class for adapting an iterator to a different type. More... | |
| class | iterator_facade_base |
| CRTP base class which implements the entire standard iterator facade in terms of a minimal subset of the interface. More... | |
| class | iterator_range |
| A range adaptor for a pair of iterators. More... | |
| class | IVStrideUse |
| IVStrideUse - Keep track of one use of a strided induction variable. More... | |
| class | IVUsers |
| class | IVUsersAnalysis |
Analysis pass that exposes the IVUsers for a loop. More... | |
| class | IVUsersPrinterPass |
Printer pass for the IVUsers for a loop. More... | |
| class | IVUsersWrapperPass |
| class | IVVisitor |
| Interface for visiting interesting IV users that are recognized but not simplified by this utility. More... | |
| class | JamCRC |
| class | JITEvaluatedSymbol |
| Represents a symbol that has been evaluated to an address already. More... | |
| class | JITEventListener |
| JITEventListener - Abstract interface for use by the JIT to notify clients about significant events during compilation. More... | |
| class | JITSymbol |
| Represents a symbol in the JIT. More... | |
| class | JITSymbolFlags |
| Flags for symbols in the JIT. More... | |
| class | JITSymbolResolver |
| Symbol resolution interface. More... | |
| struct | JobHandleTraits |
| class | JumpTableSDNode |
| class | JumpThreadingPass |
| This pass performs 'jump threading', which looks at blocks that have multiple predecessors and multiple successors. More... | |
| struct | KnownBits |
| class | LabelSDNode |
| class | LanaiDisassembler |
| class | LanaiFrameLowering |
| class | LanaiInstPrinter |
| class | LanaiInstrInfo |
| class | LanaiMachineFunctionInfo |
| class | LanaiMCAsmInfo |
| class | LanaiMCExpr |
| class | LanaiMCInstLower |
| struct | LanaiRegisterInfo |
| class | LanaiSelectionDAGInfo |
| class | LanaiSubtarget |
| class | LanaiTargetLowering |
| class | LanaiTargetMachine |
| class | LanaiTargetObjectFile |
| class | LanaiTTIImpl |
| struct | LandingPadInfo |
| This structure is used to retain landing pad info for the current function. More... | |
| class | LandingPadInst |
| The landingpad instruction holds all of the information necessary to generate correct exception handling. More... | |
| struct | LaneBitmask |
| struct | latency_sort |
| Sorting functions for the Available queue. More... | |
| class | LatencyPriorityQueue |
| struct | LatticeKeyInfo |
| A template for translating between LLVM Values and LatticeKeys. More... | |
| struct | LatticeKeyInfo< CVPLatticeKey > |
| A specialization of LatticeKeyInfo for CVPLatticeKeys. More... | |
| struct | LayoutAlignElem |
| Layout alignment element. More... | |
| class | LazyBlockFrequencyInfo |
| Wraps a BFI to allow lazy computation of the block frequencies. More... | |
| class | LazyBlockFrequencyInfoPass |
| This is an alternative analysis pass to BlockFrequencyInfoWrapperPass. More... | |
| class | LazyBranchProbabilityInfoPass |
| This is an alternative analysis pass to BranchProbabilityInfoWrapperPass. More... | |
| class | LazyCallGraph |
| A lazily constructed view of the call graph of a module. More... | |
| class | LazyCallGraphAnalysis |
| An analysis pass which computes the call graph for a module. More... | |
| class | LazyCallGraphDOTPrinterPass |
A pass which prints the call graph as a DOT file to a raw_ostream. More... | |
| class | LazyCallGraphPrinterPass |
A pass which prints the call graph to a raw_ostream. More... | |
| class | LazyMachineBlockFrequencyInfoPass |
| This is an alternative analysis pass to MachineBlockFrequencyInfo. More... | |
| class | LazyValueAnalysis |
| Analysis to compute lazy value information. More... | |
| class | LazyValueInfo |
| This pass computes, caches, and vends lazy value constraint information. More... | |
| class | LazyValueInfoWrapperPass |
| Wrapper around LazyValueInfo. More... | |
| class | LCSSAPass |
| Converts loops into loop-closed SSA form. More... | |
| struct | LCSSAVerificationPass |
| class | LegacyAARGetter |
| This class is a functor to be used in legacy module or SCC passes for computing AA results for a function. More... | |
| class | LegacyDivergenceAnalysis |
| struct | LegacyInlinerBase |
| This class contains all of the helper code which is used to perform the inlining operations that do not depend on the policy. More... | |
| class | LegacyJITSymbolResolver |
| Legacy symbol resolution interface. More... | |
| struct | LegalityQuery |
| The LegalityQuery object bundles together all the information that's needed to decide whether a given operation is legal or not. More... | |
| class | LegalizationArtifactCombiner |
| struct | LegalizeActionStep |
| The result of a query. More... | |
| class | Legalizer |
| class | LegalizerHelper |
| class | LegalizerInfo |
| class | LegalizeRule |
| A single rule in a legalizer info ruleset. More... | |
| class | LegalizeRuleSet |
| class | LEONMachineFunctionPass |
| struct | less_first |
| Function object to check whether the first component of a std::pair compares less than the first component of another std::pair. More... | |
| struct | less_second |
| Function object to check whether the second component of a std::pair compares less than the second component of another std::pair. More... | |
| struct | LessRecord |
| Sorting predicate to sort record pointers by name. More... | |
| struct | LessRecordByID |
| Sorting predicate to sort record pointers by their unique ID. More... | |
| struct | LessRecordFieldName |
| Sorting predicate to sort record pointers by their name field. More... | |
| struct | LessRecordRegister |
| struct | LetRecord |
| class | LexicalScope |
| LexicalScope - This class is used to track scope information. More... | |
| class | LexicalScopes |
| LexicalScopes - This class provides interface to collect and use lexical scoping information from machine instruction. More... | |
| class | LibCallSimplifier |
| LibCallSimplifier - This class implements a collection of optimizations that replace well formed calls to library functions with a more optimal form. More... | |
| class | LibCallsShrinkWrapPass |
| class | LICMPass |
| Performs Loop Invariant Code Motion Pass. More... | |
| class | LifetimeSDNode |
| This SDNode is used for LIFETIME_START/LIFETIME_END values, which indicate the offet and size that are started/ended in the underlying FrameIndex. More... | |
| class | line_iterator |
| A forward iterator which reads text lines from a buffer. More... | |
| class | LineEditor |
| class | LinkDiagnosticInfo |
| class | Linker |
| This class provides the core functionality of linking in LLVM. More... | |
| class | LinkingSymbolResolver |
| class | ListInit |
| [AL, AH, CL] - Represent a list of defs More... | |
| class | ListRecTy |
| 'list<Ty>' - Represent a list of values, all of which must be of the specified type. More... | |
| class | LiveDebugVariables |
| class | LiveInterval |
| LiveInterval - This class represents the liveness of a register, or stack slot. More... | |
| class | LiveIntervals |
| class | LiveIntervalUnion |
| Union of live intervals that are strong candidates for coalescing into a single register (either physical or virtual depending on the context). More... | |
| class | LivePhysRegs |
| A set of physical registers with utility functions to track liveness when walking backward/forward through a basic block. More... | |
| class | LiveQueryResult |
| Result of a LiveRange query. More... | |
| class | LiveRange |
| This class represents the liveness of a register, stack slot, etc. More... | |
| class | LiveRangeCalc |
| class | LiveRangeEdit |
| class | LiveRangeUpdater |
| Helper class for performant LiveRange bulk updates. More... | |
| class | LiveRegMatrix |
| class | LiveRegSet |
| A set of live virtual registers and physical register units. More... | |
| struct | LiveRegUnit |
| class | LiveRegUnits |
| A set of register units used to track register liveness. More... | |
| class | LiveStacks |
| class | LiveVariables |
| class | LLLexer |
| class | LLParser |
| class | LLT |
| struct | llvm_shutdown_obj |
| llvm_shutdown_obj - This is a simple helper class that calls llvm_shutdown() when it is destroyed. More... | |
| class | LLVMContext |
| This is an important class for using LLVM in a threaded context. More... | |
| class | LLVMContextImpl |
| class | LLVMDisasmContext |
| class | LLVMTargetMachine |
| This class describes a target machine that is implemented with the LLVM target-independent code generator. More... | |
| class | LoadAndStorePromoter |
| Helper class for promoting a collection of loads and stores into SSA Form using the SSAUpdater. More... | |
| class | LoadedObjectInfo |
| An inferface for inquiring the load address of a loaded object file to be used by the DIContext implementations when applying relocations on the fly. More... | |
| struct | LoadedObjectInfoHelper |
| struct | LoadImmediateInfo |
| class | LoadInfo |
| class | LoadInst |
| An instruction for reading from memory. More... | |
| class | LoadSDNode |
| This class is used to represent ISD::LOAD nodes. More... | |
| class | LoadStoreVectorizerPass |
| class | LocalAsMetadata |
| class | Localizer |
| This pass implements the localization mechanism described at the top of this file. More... | |
| struct | LocationMetadata |
| Frontend-provided metadata for source location. More... | |
| class | LocationSize |
| class | LockFileManager |
| Class that manages the creation of a lock file to aid implicit coordination between different processes. More... | |
| class | Loop |
| Represents a single loop in the control flow graph. More... | |
| class | LoopAccessAnalysis |
| This analysis provides dependence information for the memory accesses of a loop. More... | |
| class | LoopAccessInfo |
| Drive the analysis of memory accesses in the loop. More... | |
| class | LoopAccessInfoPrinterPass |
Printer pass for the LoopAccessInfo results. More... | |
| class | LoopAccessLegacyAnalysis |
| This analysis provides dependence information for the memory accesses of a loop. More... | |
| class | LoopAnalysis |
Analysis pass that exposes the LoopInfo for a function. More... | |
| class | LoopBase |
| Instances of this class are used to represent loops that are detected in the flow graph. More... | |
| class | LoopBlocksDFS |
| Store the result of a depth first search within basic blocks contained by a single loop. More... | |
| class | LoopBlocksRPO |
| Wrapper class to LoopBlocksDFS that provides a standard begin()/end() interface for the DFS reverse post-order traversal of blocks in a loop body. More... | |
| class | LoopBlocksTraversal |
| Traverse the blocks in a loop using a depth-first search. More... | |
| struct | LoopBodyTraits |
| class | LoopCachePrinterPass |
Printer pass for the CacheCost results. More... | |
| class | LoopDataPrefetchPass |
| An optimization pass inserting data prefetches in loops. More... | |
| class | LoopDeletionPass |
| class | LoopDistributePass |
| class | LoopFullUnrollPass |
| Loop unroll pass that only does full loop unrolling. More... | |
| class | LoopFusePass |
| class | LoopIdiomRecognizePass |
| Performs Loop Idiom Recognize Pass. More... | |
| class | LoopInfo |
| class | LoopInfoBase |
| This class builds and contains all of the top-level loop structures in the specified function. More... | |
| class | LoopInfoWrapperPass |
| The legacy pass manager's analysis pass to compute loop information. More... | |
| class | LoopInstSimplifyPass |
| Performs Loop Inst Simplify Pass. More... | |
| struct | LoopLoadEliminationPass |
| Pass to forward loads in a loop around the backedge to subsequent iterations. More... | |
| class | LoopPass |
| class | LoopPredicationPass |
| Performs Loop Predication Pass. More... | |
| class | LoopPrinterPass |
Printer pass for the LoopAnalysis results. More... | |
| class | LoopRotatePass |
| A simple loop rotation transformation. More... | |
| class | LoopSafetyInfo |
| Captures loop safety information. More... | |
| class | LoopSimplifyCFGPass |
| Performs basic CFG simplifications to assist other loop passes. More... | |
| class | LoopSimplifyPass |
| This pass is responsible for loop canonicalization. More... | |
| class | LoopSinkPass |
| A pass that does profile-guided sinking of instructions into loops. More... | |
| struct | LoopStandardAnalysisResults |
| The adaptor from a function pass to a loop pass computes these analyses and makes them available to the loop passes "for free". More... | |
| class | LoopStrengthReducePass |
| Performs Loop Strength Reduce Pass. More... | |
| class | LoopTraversal |
| This class provides the basic blocks traversal order used by passes like ReachingDefAnalysis and ExecutionDomainFix. More... | |
| class | LoopUnrollAndJamPass |
| A simple loop rotation transformation. More... | |
| struct | LoopUnrollOptions |
| A set of parameters used to control various transforms performed by the LoopUnroll pass. More... | |
| class | LoopUnrollPass |
| Loop unroll pass that will support both full and partial unrolling. More... | |
| class | LoopVectorizationCostModel |
| LoopVectorizationCostModel - estimates the expected speedups due to vectorization. More... | |
| class | LoopVectorizationLegality |
| LoopVectorizationLegality checks if it is legal to vectorize a loop, and to what vectorization factor. More... | |
| class | LoopVectorizationPlanner |
| Planner drives the vectorization process after having passed Legality checks. More... | |
| class | LoopVectorizationRequirements |
| This holds vectorization requirements that must be verified late in the process. More... | |
| class | LoopVectorizeHints |
| Utility class for getting and setting loop vectorizer hints in the form of loop metadata. More... | |
| struct | LoopVectorizeOptions |
| struct | LoopVectorizePass |
| The LoopVectorize Pass. More... | |
| struct | LoopVerifierPass |
Verifier pass for the LoopAnalysis results. More... | |
| class | LoopVersioning |
| This class emits a version of the loop where run-time checks ensure that may-alias pointers can't overlap. More... | |
| class | LowerAtomicPass |
| A pass that lowers atomic intrinsic into non-atomic intrinsics. More... | |
| struct | LowerConstantIntrinsicsPass |
| struct | LowerExpectIntrinsicPass |
| struct | LowerGuardIntrinsicPass |
| class | LowerInvokePass |
| struct | LowerMatrixIntrinsicsPass |
| class | LowerTypeTestsPass |
| struct | LowerWidenableConditionPass |
| class | LPMUpdater |
| This class provides an interface for updating the loop pass manager based on mutations to the loop nest. More... | |
| class | LPPassManager |
| class | LSBaseSDNode |
| Base class for LoadSDNode and StoreSDNode. More... | |
| class | LShrOperator |
| struct | LTOCodeGenerator |
| C++ class which implements the opaque lto_code_gen_t type. More... | |
| struct | LTOModule |
| C++ class which implements the opaque lto_module_t type. More... | |
| class | MachineBasicBlock |
| class | MachineBlockFrequencyInfo |
| MachineBlockFrequencyInfo pass uses BlockFrequencyInfoImpl implementation to estimate machine basic block frequencies. More... | |
| class | MachineBranchProbabilityInfo |
| class | MachineConstantPool |
| The MachineConstantPool class keeps track of constants referenced by a function which must be spilled to memory. More... | |
| class | MachineConstantPoolEntry |
| This class is a data container for one entry in a MachineConstantPool. More... | |
| class | MachineConstantPoolValue |
| Abstract base class for all machine specific constantpool value subclasses. More... | |
| class | MachineDominanceFrontier |
| class | MachineDominatorTree |
| DominatorTree Class - Concrete subclass of DominatorTreeBase that is used to compute a normal dominator tree. More... | |
| struct | MachineDomTreeGraphTraitsBase |
| DominatorTree GraphTraits specialization so the DominatorTree can be iterable by generic graph iterators. More... | |
| class | MachineFrameInfo |
| The MachineFrameInfo class represents an abstract stack frame until prolog/epilog code is inserted. More... | |
| class | MachineFunction |
| struct | MachineFunctionInfo |
| MachineFunctionInfo - This class can be derived from and used by targets to hold private target-specific information for each MachineFunction. More... | |
| class | MachineFunctionPass |
| MachineFunctionPass - This class adapts the FunctionPass interface to allow convenient creation of passes that operate on the MachineFunction representation. More... | |
| class | MachineFunctionProperties |
| Properties which a MachineFunction may have at a given point in time. More... | |
| class | MachineInstr |
| Representation of each machine instruction. More... | |
| class | MachineInstrBuilder |
| class | MachineInstrBundleIterator |
| MachineBasicBlock iterator that automatically skips over MIs that are inside bundles (i.e. More... | |
| struct | MachineInstrBundleIteratorHelper |
| struct | MachineInstrBundleIteratorHelper< false > |
| struct | MachineInstrBundleIteratorHelper< true > |
| struct | MachineInstrBundleIteratorTraits |
| struct | MachineInstrBundleIteratorTraits< const T, false > |
| struct | MachineInstrBundleIteratorTraits< const T, true > |
| struct | MachineInstrBundleIteratorTraits< T, false > |
| struct | MachineInstrBundleIteratorTraits< T, true > |
| struct | MachineInstrExpressionTrait |
| Special DenseMapInfo traits to compare MachineInstr* by value of the instruction rather than by pointer value. More... | |
| class | MachineInstrSpan |
| MachineInstrSpan provides an interface to get an iteration range containing the instruction it was initialized with, along with all those instructions inserted prior to or following that instruction at some point after the MachineInstrSpan is constructed. More... | |
| class | MachineIRBuilder |
| Helper class to build MachineInstr. More... | |
| struct | MachineIRBuilderState |
| Class which stores all the state required in a MachineIRBuilder. More... | |
| struct | MachineJumpTableEntry |
| MachineJumpTableEntry - One jump table in the jump table info. More... | |
| class | MachineJumpTableInfo |
| class | MachineLocation |
| class | MachineLoop |
| class | MachineLoopInfo |
| class | MachineMemOperand |
| A description of a memory reference used in the backend. More... | |
| class | MachineModuleAnalysis |
An analysis that produces MachineInfo for a module. More... | |
| class | MachineModuleInfo |
| This class contains meta information specific to a module. More... | |
| class | MachineModuleInfoCOFF |
| MachineModuleInfoCOFF - This is a MachineModuleInfoImpl implementation for COFF targets. More... | |
| class | MachineModuleInfoELF |
| MachineModuleInfoELF - This is a MachineModuleInfoImpl implementation for ELF targets. More... | |
| class | MachineModuleInfoImpl |
| This class can be derived from and used by targets to hold private target-specific information for each Module. More... | |
| class | MachineModuleInfoMachO |
| MachineModuleInfoMachO - This is a MachineModuleInfoImpl implementation for MachO targets. More... | |
| class | MachineModuleInfoWrapperPass |
| class | MachineOperand |
| MachineOperand class - Representation of each machine instruction operand. More... | |
| class | MachineOptimizationRemark |
| Diagnostic information for applied optimization remarks. More... | |
| class | MachineOptimizationRemarkAnalysis |
| Diagnostic information for optimization analysis remarks. More... | |
| class | MachineOptimizationRemarkEmitter |
| The optimization diagnostic interface. More... | |
| class | MachineOptimizationRemarkEmitterPass |
| The analysis pass. More... | |
| class | MachineOptimizationRemarkMissed |
| Diagnostic information for missed-optimization remarks. More... | |
| class | MachinePassRegistry |
| MachinePassRegistry - Track the registration of machine passes. More... | |
| class | MachinePassRegistryListener |
| MachinePassRegistryListener - Listener to adds and removals of nodes in registration list. More... | |
| class | MachinePassRegistryNode |
| MachinePassRegistryNode - Machine pass node stored in registration list. More... | |
| class | MachinePipeliner |
| The main class in the implementation of the target independent software pipeliner pass. More... | |
| struct | MachinePointerInfo |
| This class contains a discriminated union of information about pointers in memory operands, relating them back to LLVM IR or to virtual locations (such as frame indices) that are exposed during codegen. More... | |
| class | MachinePostDominatorTree |
| MachinePostDominatorTree - an analysis pass wrapper for DominatorTree used to compute the post-dominator tree for MachineFunctions. More... | |
| class | MachineRegion |
| class | MachineRegionInfo |
| class | MachineRegionInfoPass |
| class | MachineRegionNode |
| class | MachineRegisterInfo |
| MachineRegisterInfo - Keep track of information for virtual and physical registers, including vreg register classes, use/def chains for registers, etc. More... | |
| struct | MachineSchedContext |
| MachineSchedContext provides enough context from the MachineScheduler pass for the target to instantiate a scheduler. More... | |
| struct | MachineSchedPolicy |
| Define a generic scheduling policy for targets that don't provide their own MachineSchedStrategy. More... | |
| class | MachineSchedRegistry |
| MachineSchedRegistry provides a selection of available machine instruction schedulers. More... | |
| class | MachineSchedStrategy |
| MachineSchedStrategy - Interface to the scheduling algorithm used by ScheduleDAGMI. More... | |
| class | MachineSDNode |
| An SDNode that represents everything that will be needed to construct a MachineInstr. More... | |
| class | MachineSSAUpdater |
| MachineSSAUpdater - This class updates SSA form for a set of virtual registers defined in multiple blocks. More... | |
| class | MachineTraceMetrics |
| class | MachObjectWriter |
| class | MachORelocation |
| MachORelocation - This struct contains information about each relocation that needs to be emitted to the file. More... | |
| struct | make_const_ptr |
| struct | make_const_ref |
| struct | MakeGuardsExplicitPass |
| class | MallocAllocator |
| class | ManagedStatic |
| ManagedStatic - This transparently changes the behavior of global statics to be lazily constructed on demand (good for reducing startup times of dynamic libraries that link in LLVM components) and for making destruction be explicit through the llvm_shutdown() function call. More... | |
| class | ManagedStaticBase |
| ManagedStaticBase - Common base class for ManagedStatic instances. More... | |
| class | ManagedStringPool |
| ManagedStringPool - The strings allocated from a managed string pool are owned by the string pool and will be deleted together with the managed string pool. More... | |
| class | Mangler |
| class | mapped_iterator |
| class | MapResolver |
| Resolve arbitrary mappings. More... | |
| class | MapVector |
| This class implements a map that also provides access to all stored values in a deterministic order. More... | |
| class | MaskedGatherScatterSDNode |
| This is a base class used to represent MGATHER and MSCATTER nodes. More... | |
| class | MaskedGatherSDNode |
| This class is used to represent an MGATHER node. More... | |
| class | MaskedLoadSDNode |
| This class is used to represent an MLOAD node. More... | |
| class | MaskedLoadStoreSDNode |
| This base class is used to represent MLOAD and MSTORE nodes. More... | |
| class | MaskedScatterSDNode |
| This class is used to represent an MSCATTER node. More... | |
| class | MaskedStoreSDNode |
| This class is used to represent an MSTORE node. More... | |
| class | MaskedTruncSStoreSDNode |
| class | MaskedTruncUSStoreSDNode |
| class | MaximumSpanningTree |
| MaximumSpanningTree - A MST implementation. More... | |
| struct | MaybeAlign |
| This struct is a compact representation of a valid (power of two) or undefined (0) alignment. More... | |
| struct | MBB2NumberFunctor |
| class | MCAlignFragment |
| class | MCAsmBackend |
| Generic interface to target specific assembler backends. More... | |
| class | MCAsmInfo |
| This class is intended to be used as a base class for asm properties and features specific to the target. More... | |
| class | MCAsmInfoCOFF |
| class | MCAsmInfoDarwin |
| class | MCAsmInfoELF |
| class | MCAsmInfoGNUCOFF |
| class | MCAsmInfoMicrosoft |
| class | MCAsmInfoWasm |
| class | MCAsmInfoXCOFF |
| class | MCAsmLayout |
| Encapsulates the layout of an assembly file at a particular point in time. More... | |
| class | MCAsmLexer |
| Generic assembler lexer interface, for use by target specific assembly lexers. More... | |
| struct | MCAsmMacro |
| struct | MCAsmMacroParameter |
| class | MCAsmParser |
| Generic assembler parser interface, for use by target specific assembly parsers. More... | |
| class | MCAsmParserExtension |
| Generic interface for extending the MCAsmParser, which is implemented by target and object file assembly parser implementations. More... | |
| class | MCAsmParserSemaCallback |
| Generic Sema callback for assembly parser. More... | |
| class | MCAssembler |
| class | MCBinaryExpr |
| Binary assembler expressions. More... | |
| class | MCBoundaryAlignFragment |
| Represents required padding such that a particular other set of fragments does not cross a particular power-of-two boundary. More... | |
| class | MCCFIInstruction |
| class | MCCodeEmitter |
| MCCodeEmitter - Generic instruction encoding interface. More... | |
| class | MCCompactEncodedInstFragment |
| This is a compact (memory-size-wise) fragment for holding an encoded instruction (non-relaxable) that has no fixups registered. More... | |
| class | MCConstantExpr |
| class | MCContext |
| Context object for machine code objects. More... | |
| class | MCCVDefRangeFragment |
| Fragment representing the .cv_def_range directive. More... | |
| struct | MCCVFunctionInfo |
| Information describing a function or inlined call site introduced by .cv_func_id or .cv_inline_site_id. More... | |
| class | MCCVInlineLineTableFragment |
| Fragment representing the binary annotations produced by the .cv_inline_linetable directive. More... | |
| class | MCCVLoc |
| Instances of this class represent the information from a .cv_loc directive. More... | |
| class | MCDataFragment |
| Fragment for data and encoded instructions. More... | |
| class | MCDisassembler |
| Superclass for all disassemblers. More... | |
| class | MCDummyFragment |
| class | MCDwarfCallFrameFragment |
| class | MCDwarfDwoLineTable |
| struct | MCDwarfFile |
| Instances of this class represent the name of the dwarf .file directive and its associated dwarf file number in the MC file. More... | |
| class | MCDwarfFrameEmitter |
| struct | MCDwarfFrameInfo |
| class | MCDwarfLineAddr |
| class | MCDwarfLineAddrFragment |
| class | MCDwarfLineEntry |
| Instances of this class represent the line information for the dwarf line table entries. More... | |
| class | MCDwarfLineStr |
| Manage the .debug_line_str section contents, if we use it. More... | |
| class | MCDwarfLineTable |
| struct | MCDwarfLineTableHeader |
| struct | MCDwarfLineTableParams |
| class | MCDwarfLoc |
| Instances of this class represent the information from a dwarf .loc directive. More... | |
| class | MCELFObjectTargetWriter |
| class | MCELFStreamer |
| class | MCEncodedFragment |
| Interface implemented by fragments that contain encoded instructions and/or data. More... | |
| class | MCEncodedFragmentWithContents |
| Interface implemented by fragments that contain encoded instructions and/or data. More... | |
| class | MCEncodedFragmentWithFixups |
| Interface implemented by fragments that contain encoded instructions and/or data and also have fixups registered. More... | |
| class | MCExpr |
| Base class for the full range of assembler expressions which are needed for parsing. More... | |
| class | MCExternalSymbolizer |
| Symbolize using user-provided, C API, callbacks. More... | |
| struct | MCExtraProcessorInfo |
| Provide extra details about the machine processor. More... | |
| class | MCFillFragment |
| class | MCFixup |
| Encode information on a single operation to perform on a byte sequence (e.g., an encoded instruction) which requires assemble- or run- time patching. More... | |
| struct | MCFixupKindInfo |
| Target independent information on a fixup kind. More... | |
| class | MCFragment |
| class | MCGenDwarfInfo |
| class | MCGenDwarfLabelEntry |
| class | MCInst |
| Instances of this class represent a single low-level machine instruction. More... | |
| class | MCInstBuilder |
| class | MCInstPrinter |
| This is an instance of a target assembly language printer that converts an MCInst to valid target assembly syntax. More... | |
| class | MCInstrAnalysis |
| class | MCInstrDesc |
| Describe properties that are true of each instruction in the target description file. More... | |
| class | MCInstrInfo |
| Interface to description of machine instruction set. More... | |
| class | MCJIT |
| class | MCJITMemoryManager |
| class | MCLabel |
| Instances of this class represent a label name in the MC file, and MCLabel are created and uniqued by the MCContext class. More... | |
| class | MCLEBFragment |
| class | MCLineSection |
| Instances of this class represent the line information for a compile unit where machine instructions have been assembled after seeing .loc directives. More... | |
| class | MCLOHContainer |
| class | MCLOHDirective |
| Store Linker Optimization Hint information (LOH). More... | |
| class | MCMachObjectTargetWriter |
| class | MCObjectFileInfo |
| class | MCObjectStreamer |
| Streaming object file generation interface. More... | |
| class | MCObjectTargetWriter |
| Base class for classes that define behaviour that is specific to both the target and the object format. More... | |
| class | MCObjectWriter |
| Defines the object file and target independent interfaces used by the assembler backend to write native file format object files. More... | |
| class | MCOperand |
| Instances of this class represent operands of the MCInst class. More... | |
| class | MCOperandInfo |
| This holds information about one operand of a machine instruction, indicating the register class for register operands, etc. More... | |
| class | MCOrgFragment |
| class | MCParsedAsmOperand |
| MCParsedAsmOperand - This abstract class represents a source-level assembly instruction operand. More... | |
| struct | MCProcResourceDesc |
| Define a kind of processor resource that will be modeled by the scheduler. More... | |
| struct | MCReadAdvanceEntry |
| Specify the number of cycles allowed after instruction issue before a particular use operand reads its registers. More... | |
| class | MCRegAliasIterator |
| MCRegAliasIterator enumerates all registers aliasing Reg. More... | |
| class | MCRegister |
| Wrapper class representing physical registers. Should be passed by value. More... | |
| class | MCRegisterClass |
| MCRegisterClass - Base class of TargetRegisterClass. More... | |
| struct | MCRegisterCostEntry |
| Specify the cost of a register definition in terms of number of physical register allocated at register renaming stage. More... | |
| struct | MCRegisterDesc |
| MCRegisterDesc - This record contains information about a particular register. More... | |
| struct | MCRegisterFileDesc |
| A register file descriptor. More... | |
| class | MCRegisterInfo |
| MCRegisterInfo base class - We assume that the target defines a static array of MCRegisterDesc objects that represent all of the machine registers that the target has. More... | |
| class | MCRegUnitIterator |
| class | MCRegUnitMaskIterator |
| MCRegUnitMaskIterator enumerates a list of register units and their associated lane masks for Reg. More... | |
| class | MCRegUnitRootIterator |
| MCRegUnitRootIterator enumerates the root registers of a register unit. More... | |
| class | MCRelaxableFragment |
| A relaxable fragment holds on to its MCInst, since it may need to be relaxed during the assembler layout and relaxation stage. More... | |
| class | MCRelocationInfo |
| Create MCExprs from relocations found in an object file. More... | |
| struct | MCSchedClassDesc |
| Summarize the scheduling resources required for an instruction of a particular scheduling class. More... | |
| struct | MCSchedModel |
| Machine model for scheduling, bundling, and heuristics. More... | |
| class | MCSection |
| Instances of this class represent a uniqued identifier for a section in the current translation unit. More... | |
| class | MCSectionCOFF |
| This represents a section on Windows. More... | |
| class | MCSectionELF |
| This represents a section on linux, lots of unix variants and some bare metal systems. More... | |
| class | MCSectionMachO |
| This represents a section on a Mach-O system (used by Mac OS X). More... | |
| class | MCSectionWasm |
| This represents a section on wasm. More... | |
| class | MCSectionXCOFF |
| class | MCStreamer |
| Streaming machine code generation interface. More... | |
| class | MCSubRegIndexIterator |
| Iterator that enumerates the sub-registers of a Reg and the associated sub-register indices. More... | |
| class | MCSubRegIterator |
| MCSubRegIterator enumerates all sub-registers of Reg. More... | |
| class | MCSubtargetInfo |
| Generic base class for all target subtargets. More... | |
| class | MCSuperRegIterator |
| MCSuperRegIterator enumerates all super-registers of Reg. More... | |
| class | MCSymbol |
| MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created and uniqued by the MCContext class. More... | |
| class | MCSymbolCOFF |
| class | MCSymbolELF |
| class | MCSymbolIdFragment |
| Represents a symbol table index fragment. More... | |
| class | MCSymbolizer |
| Symbolize and annotate disassembled instructions. More... | |
| class | MCSymbolMachO |
| class | MCSymbolRefExpr |
| Represent a reference to a symbol from inside an expression. More... | |
| class | MCSymbolSDNode |
| class | MCSymbolWasm |
| class | MCSymbolXCOFF |
| class | MCTargetAsmParser |
| MCTargetAsmParser - Generic interface to target specific assembly parsers. More... | |
| class | MCTargetExpr |
| This is an extension point for target-specific MCExpr subclasses to implement. More... | |
| class | MCTargetOptions |
| class | MCTargetStreamer |
| Target specific streamer interface. More... | |
| class | MCUnaryExpr |
| Unary assembler expressions. More... | |
| class | MCValue |
| This represents an "assembler immediate". More... | |
| class | MCWasmObjectTargetWriter |
| class | MCWasmStreamer |
| class | MCWinCOFFObjectTargetWriter |
| class | MCWinCOFFStreamer |
| struct | MCWriteLatencyEntry |
| Specify the latency in cpu cycles for a particular scheduling class and def index. More... | |
| struct | MCWriteProcResEntry |
| Identify one of the processor resource kinds consumed by a particular scheduling class for the specified number of cycles. More... | |
| class | MCXCOFFObjectTargetWriter |
| class | MCXCOFFStreamer |
| class | MD5 |
| class | MDAttachmentMap |
| Map-like storage for metadata attachments. More... | |
| class | MDBuilder |
| class | MDGlobalAttachmentMap |
| Multimap-like storage for metadata attachments for globals. More... | |
| class | MDNode |
| Metadata node. More... | |
| struct | MDNodeInfo |
| DenseMapInfo for MDNode subclasses. More... | |
| struct | MDNodeKeyImpl |
| struct | MDNodeKeyImpl< DIBasicType > |
| struct | MDNodeKeyImpl< DICommonBlock > |
| struct | MDNodeKeyImpl< DICompositeType > |
| struct | MDNodeKeyImpl< DIDerivedType > |
| struct | MDNodeKeyImpl< DIEnumerator > |
| struct | MDNodeKeyImpl< DIExpression > |
| struct | MDNodeKeyImpl< DIFile > |
| struct | MDNodeKeyImpl< DIGlobalVariable > |
| struct | MDNodeKeyImpl< DIGlobalVariableExpression > |
| struct | MDNodeKeyImpl< DIImportedEntity > |
| struct | MDNodeKeyImpl< DILabel > |
| struct | MDNodeKeyImpl< DILexicalBlock > |
| struct | MDNodeKeyImpl< DILexicalBlockFile > |
| struct | MDNodeKeyImpl< DILocalVariable > |
| struct | MDNodeKeyImpl< DILocation > |
| DenseMapInfo for DILocation. More... | |
| struct | MDNodeKeyImpl< DIMacro > |
| struct | MDNodeKeyImpl< DIMacroFile > |
| struct | MDNodeKeyImpl< DIModule > |
| struct | MDNodeKeyImpl< DINamespace > |
| struct | MDNodeKeyImpl< DIObjCProperty > |
| struct | MDNodeKeyImpl< DISubprogram > |
| struct | MDNodeKeyImpl< DISubrange > |
| struct | MDNodeKeyImpl< DISubroutineType > |
| struct | MDNodeKeyImpl< DITemplateTypeParameter > |
| struct | MDNodeKeyImpl< DITemplateValueParameter > |
| struct | MDNodeKeyImpl< GenericDINode > |
| DenseMapInfo for GenericDINode. More... | |
| struct | MDNodeKeyImpl< MDTuple > |
| DenseMapInfo for MDTuple. More... | |
| class | MDNodeOpsKey |
| Structure for hashing arbitrary MDNode operands. More... | |
| class | MDNodeSDNode |
| struct | MDNodeSubsetEqualImpl |
| Configuration point for MDNodeInfo::isEqual(). More... | |
| struct | MDNodeSubsetEqualImpl< DIDerivedType > |
| struct | MDNodeSubsetEqualImpl< DISubprogram > |
| class | MDOperand |
| Tracking metadata reference owned by Metadata. More... | |
| class | MDString |
| A single uniqued string. More... | |
| class | MDTuple |
| Tuple of metadata. More... | |
| class | MDTupleTypedArrayWrapper |
| Typed, array-like tuple of metadata. More... | |
| class | MemCpyInst |
| This class wraps the llvm.memcpy intrinsic. More... | |
| class | MemCpyOptPass |
| class | MemDepResult |
| A memory dependence query can return one of three different answers. More... | |
| class | MemIntrinsic |
| This is the common base class for memset/memcpy/memmove. More... | |
| class | MemIntrinsicBase |
| Common base class for all memory intrinsics. More... | |
| struct | MemIntrinsicInfo |
| Information about a load/store intrinsic defined by the target. More... | |
| class | MemIntrinsicSDNode |
| This SDNode is used for target intrinsics that touch memory and need an associated MachineMemOperand. More... | |
| class | MemMoveInst |
| This class wraps the llvm.memmove intrinsic. More... | |
| class | MemoryAccess |
| class | memoryaccess_def_iterator_base |
| Iterator base class used to implement const and non-const iterators over the defining accesses of a MemoryAccess. More... | |
| class | MemoryBuffer |
| This interface provides simple read-only access to a block of memory, and provides simple methods for reading files and standard input into a memory buffer. More... | |
| class | MemoryBufferByteStream |
| An implementation of BinaryStream whose data is backed by an llvm MemoryBuffer object. More... | |
| class | MemoryBufferRef |
| class | MemoryDef |
| Represents a read-write access to memory, whether it is a must-alias, or a may-alias. More... | |
| class | MemoryDepChecker |
| Checks memory dependences among accesses to the same underlying object to determine whether there vectorization is legal or not (and at which vectorization factor). More... | |
| class | MemoryDependenceAnalysis |
An analysis that produces MemoryDependenceResults for a function. More... | |
| class | MemoryDependenceResults |
| Provides a lazy, caching interface for making common memory aliasing information queries, backed by LLVM's alias analysis passes. More... | |
| class | MemoryDependenceWrapperPass |
A wrapper analysis pass for the legacy pass manager that exposes a MemoryDepnedenceResults instance. More... | |
| class | MemoryLocation |
| Representation for a specific memory location. More... | |
| class | MemoryPhi |
| Represents phi nodes for memory accesses. More... | |
| struct | MemorySanitizerOptions |
| struct | MemorySanitizerPass |
| A function pass for msan instrumentation. More... | |
| class | MemorySSA |
| Encapsulates MemorySSA, including all data associated with memory accesses. More... | |
| class | MemorySSAAnalysis |
An analysis that produces MemorySSA for a function. More... | |
| class | MemorySSAAnnotatedWriter |
| An assembly annotator class to print Memory SSA information in comments. More... | |
| class | MemorySSAPrinterLegacyPass |
| class | MemorySSAPrinterPass |
Printer pass for MemorySSA. More... | |
| class | MemorySSAUpdater |
| class | MemorySSAUtil |
| struct | MemorySSAVerifierPass |
Verifier pass for MemorySSA. More... | |
| class | MemorySSAWalker |
| This is the generic walker interface for walkers of MemorySSA. More... | |
| class | MemorySSAWrapperPass |
Legacy analysis pass which computes MemorySSA. More... | |
| class | MemoryUse |
| Represents read-only accesses to memory. More... | |
| class | MemoryUseOrDef |
| Class that has the common methods + fields of memory uses/defs. More... | |
| class | MemoryWriteTracking |
| class | MemSDNode |
| This is an abstract virtual class for memory operations. More... | |
| class | MemSetBase |
| Common base class for all memset intrinsics. More... | |
| class | MemSetInst |
| This class wraps the llvm.memset intrinsic. More... | |
| class | MemTransferBase |
| Common base class for all memory transfer intrinsics. More... | |
| class | MemTransferInst |
| This class wraps the llvm.memcpy/memmove intrinsics. More... | |
| struct | MergedLoadStoreMotionOptions |
| class | MergedLoadStoreMotionPass |
| class | MergeFunctionsPass |
| Merge identical functions. More... | |
| struct | MergeICmpsPass |
| class | Metadata |
| Root of the metadata hierarchy. More... | |
| class | MetadataAsValue |
| Metadata wrapper in the Value hierarchy. More... | |
| class | MetadataLoader |
| Helper class that handles loading Metadatas and keeping them available. More... | |
| class | MetadataTracking |
| API for tracking metadata references through RAUW and deletion. More... | |
| class | MIBundleBuilder |
| Helper class for constructing bundles of MachineInstrs. More... | |
| class | MIBundleOperandIteratorBase |
| MIBundleOperandIteratorBase - Iterator that visits all operands in a bundle of MachineInstrs. More... | |
| class | MIBundleOperands |
| MIBundleOperands - Iterate over all operands in a bundle of machine instructions. More... | |
| class | MIPrinter |
| This class prints out the machine instructions using the MIR serialization format. More... | |
| class | Mips16DAGToDAGISel |
| class | Mips16FrameLowering |
| class | Mips16InstrInfo |
| class | Mips16RegisterInfo |
| class | Mips16TargetLowering |
| struct | MipsABIFlagsSection |
| class | MipsABIInfo |
| class | MipsAnalyzeImmediate |
| class | MipsAsmBackend |
| class | MipsAsmPrinter |
| class | MipsCallLowering |
| class | MipsCCState |
| class | MipsDAGToDAGISel |
| class | MipsebTargetMachine |
| Mips32/64 big endian target machine. More... | |
| class | MipsELFStreamer |
| class | MipselTargetMachine |
| Mips32/64 little endian target machine. More... | |
| class | MipsFrameLowering |
| class | MipsFunctionInfo |
| MipsFunctionInfo - This class is derived from MachineFunction private Mips target-specific information for each MachineFunction. More... | |
| class | MipsGenRegisterBankInfo |
| class | MipsInstPrinter |
| class | MipsInstrInfo |
| class | MipsLegalizerInfo |
| This class provides legalization strategies. More... | |
| class | MipsMCAsmInfo |
| class | MipsMCCodeEmitter |
| class | MipsMCExpr |
| class | MipsMCInstLower |
| MipsMCInstLower - This class is used to lower an MachineInstr into an MCInst. More... | |
| class | MipsOptionRecord |
| class | MipsRegInfoRecord |
| class | MipsRegisterBankInfo |
| This class provides the information for the target register banks. More... | |
| class | MipsRegisterInfo |
| class | MipsSEDAGToDAGISel |
| class | MipsSEFrameLowering |
| class | MipsSEInstrInfo |
| class | MipsSERegisterInfo |
| class | MipsSETargetLowering |
| class | MipsSubtarget |
| class | MipsTargetAsmStreamer |
| class | MipsTargetELFStreamer |
| class | MipsTargetLowering |
| class | MipsTargetMachine |
| class | MipsTargetObjectFile |
| class | MipsTargetStreamer |
| class | MIRFormatter |
| MIRFormater - Interface to format MIR operand based on target. More... | |
| class | MIRParser |
| This class initializes machine functions by applying the state loaded from a MIR file. More... | |
| class | MIRParserImpl |
| This class implements the parsing of LLVM IR that's embedded inside a MIR file. More... | |
| class | MIRPrinter |
| This class prints out the machine functions using the MIR serialization format. More... | |
| struct | MIToken |
| A token produced by the machine instruction lexer. More... | |
| class | MMIAddrLabelMap |
| class | MMIAddrLabelMapCallbackPtr |
| class | Module |
| A Module instance is used to store all the information related to an LLVM module. More... | |
| class | ModuleAddressSanitizerPass |
| Public interface to the address sanitizer module pass for instrumenting code to check for various memory errors. More... | |
| class | ModulePass |
| ModulePass class - This class is used to implement unstructured interprocedural optimizations and analyses. More... | |
| class | ModuleSanitizerCoveragePass |
| This is the ModuleSanitizerCoverage pass used in the new pass manager. More... | |
| class | ModuleSlotTracker |
| Manage lifetime of a slot tracker for printing IR. More... | |
| class | ModuleSummaryIndex |
| Class to hold module path string table and global value map, and encapsulate methods for operating on them. More... | |
| class | ModuleSummaryIndexAnalysis |
| Analysis pass to provide the ModuleSummaryIndex object. More... | |
| class | ModuleSummaryIndexWrapperPass |
| Legacy wrapper pass to provide the ModuleSummaryIndex object. More... | |
| class | ModuleSymbolTable |
| class | ModuleToFunctionPassAdaptor |
| Trivial adaptor that maps from a module to its functions. More... | |
| class | ModuleToPostOrderCGSCCPassAdaptor |
| The core module pass which does a post-order walk of the SCCs and runs a CGSCC pass over each one. More... | |
| class | ModuloSchedule |
| Represents a schedule for a single-block loop. More... | |
| class | ModuloScheduleExpander |
| The ModuloScheduleExpander takes a ModuloSchedule and expands it in-place, rewriting the old loop and inserting prologs and epilogs as required. More... | |
| class | ModuloScheduleTestAnnotater |
| Expander that simply annotates each scheduled instruction with a post-instr symbol that can be consumed by the ModuloScheduleTest pass. More... | |
| class | MSP430FrameLowering |
| class | MSP430InstPrinter |
| class | MSP430InstrInfo |
| class | MSP430MachineFunctionInfo |
| MSP430MachineFunctionInfo - This class is derived from MachineFunction and contains private MSP430 target-specific information for each MachineFunction. More... | |
| class | MSP430MCAsmInfo |
| class | MSP430MCCodeEmitter |
| class | MSP430MCInstLower |
| MSP430MCInstLower - This class is used to lower an MachineInstr into an MCInst. More... | |
| struct | MSP430RegisterInfo |
| class | MSP430Subtarget |
| class | MSP430TargetELFStreamer |
| class | MSP430TargetLowering |
| class | MSP430TargetMachine |
| MSP430TargetMachine. More... | |
| class | MSVCPError |
| class | MSVCPExpected |
| class | MulOperator |
| struct | MultiClass |
| struct | MustBeExecutedContextExplorer |
| A "must be executed context" for a given program point PP is the set of instructions, potentially before and after PP, that are executed always when PP is reached. More... | |
| struct | MustBeExecutedIterator |
| Must be executed iterators visit stretches of instructions that are guaranteed to be executed together, potentially with other instruction executed in-between. More... | |
| class | MutableArrayRef |
| MutableArrayRef - Represent a mutable reference to an array (0 or more elements consecutively in memory), i.e. More... | |
| class | MutableBinaryByteStream |
| An implementation of BinaryStream which holds its entire data set in a single contiguous buffer. More... | |
| class | MVT |
| Machine Value Type. More... | |
| class | NameAnonGlobalPass |
| Simple pass that provides a name to every anonymous globals. More... | |
| struct | NamedInstrProfRecord |
| class | NamedMDNode |
| A tuple of MDNodes. More... | |
| struct | NamedRegionTimer |
| This class is basically a combination of TimeRegion and Timer. More... | |
| class | NaryReassociatePass |
| class | NearMissInfo |
| struct | negation |
| struct | NewArchiveMember |
| class | NewGVNPass |
| struct | NfaStatePair |
| Forward define the pair type used by the automata transition info tables. More... | |
| class | NodeSet |
| A NodeSet contains a set of SUnit DAG nodes with additional information that assigns a priority to the set. More... | |
| class | NoFolder |
| NoFolder - Create "constants" (actually, instructions) with no folding. More... | |
| class | NonLocalDepEntry |
| This is an entry in the NonLocalDepInfo cache. More... | |
| class | NonLocalDepResult |
| This is a result from a NonLocal dependence query. More... | |
| class | NonRelocatableStringpool |
| A string table that doesn't need relocations. More... | |
| class | NoopStatistic |
| class | NotFoundError |
| class | NumericSubstitution |
| class | NumericVariable |
| Class representing a numeric variable and its associated current value. More... | |
| class | NumericVariableUse |
| Class representing the use of a numeric variable in the AST of an expression. More... | |
| class | NVPTXAsmPrinter |
| class | NVPTXDAGToDAGISel |
| class | NVPTXFloatMCExpr |
| class | NVPTXFrameLowering |
| class | NVPTXGenericMCSymbolRefExpr |
| A wrapper for MCSymbolRefExpr that tells the assembly printer that the symbol should be enclosed by generic(). More... | |
| class | NVPTXInstPrinter |
| class | NVPTXInstrInfo |
| class | NVPTXMachineFunctionInfo |
| class | NVPTXMCAsmInfo |
| class | NVPTXRegisterInfo |
| class | NVPTXSubtarget |
| class | NVPTXTargetLowering |
| class | NVPTXTargetMachine |
| NVPTXTargetMachine. More... | |
| class | NVPTXTargetMachine32 |
| class | NVPTXTargetMachine64 |
| class | NVPTXTargetObjectFile |
| class | NVPTXTargetStreamer |
| Implments NVPTX-specific streamer. More... | |
| class | NVPTXTTIImpl |
| struct | object_creator |
| object_creator - Helper method for ManagedStatic. More... | |
| struct | object_deleter |
| object_deleter - Helper method for ManagedStatic. More... | |
| struct | object_deleter< T[N]> |
| class | ObjectCache |
| This is the base ObjectCache type which can be provided to an ExecutionEngine for the purpose of avoiding compilation for Modules that have already been compiled and an object file is available. More... | |
| class | ObjectSizeOffsetEvaluator |
| Evaluate the size and offset of an object pointed to by a Value*. More... | |
| class | ObjectSizeOffsetVisitor |
| Evaluate the size and offset of an object pointed to by a Value* statically. More... | |
| struct | ObjectSizeOpts |
| Various options to control the behavior of getObjectSize. More... | |
| struct | ObjFileAddressRange |
| Partial address range. More... | |
| struct | OffsetsTag |
| struct | on_first |
| Function object to apply a binary function to the first component of a std::pair. More... | |
| class | OnDiskChainedHashTable |
| Provides lookup on an on disk hash table. More... | |
| class | OnDiskChainedHashTableGenerator |
| Generates an on disk hash table. More... | |
| class | OnDiskIterableChainedHashTable |
| Provides lookup and iteration over an on disk hash table. More... | |
| class | OpenMPIRBuilder |
| An interface to create LLVM-IR for OpenMP directives. More... | |
| class | OperandBundleDefT |
| A container for an operand bundle being viewed as a set of values rather than a set of uses. More... | |
| struct | OperandBundleUse |
| A lightweight accessor for an operand bundle meant to be passed around by value. More... | |
| struct | OperandTraits |
| Compile-time customization of User operands. More... | |
| struct | OperandTraits< AtomicCmpXchgInst > |
| struct | OperandTraits< AtomicRMWInst > |
| struct | OperandTraits< BinaryConstantExpr > |
| struct | OperandTraits< BinaryOperator > |
| struct | OperandTraits< BlockAddress > |
| struct | OperandTraits< BranchInst > |
| struct | OperandTraits< CallBase > |
| struct | OperandTraits< CatchReturnInst > |
| struct | OperandTraits< CatchSwitchInst > |
| struct | OperandTraits< CleanupReturnInst > |
| struct | OperandTraits< CmpInst > |
| struct | OperandTraits< CompareConstantExpr > |
| struct | OperandTraits< ConstantAggregate > |
| struct | OperandTraits< ConstantExpr > |
| struct | OperandTraits< ConstantPlaceHolder > |
| struct | OperandTraits< ExtractElementConstantExpr > |
| struct | OperandTraits< ExtractElementInst > |
| struct | OperandTraits< ExtractValueConstantExpr > |
| struct | OperandTraits< FuncletPadInst > |
| struct | OperandTraits< Function > |
| struct | OperandTraits< GetElementPtrConstantExpr > |
| struct | OperandTraits< GetElementPtrInst > |
| struct | OperandTraits< GlobalIndirectSymbol > |
| struct | OperandTraits< GlobalVariable > |
| struct | OperandTraits< IndirectBrInst > |
| struct | OperandTraits< InsertElementConstantExpr > |
| struct | OperandTraits< InsertElementInst > |
| struct | OperandTraits< InsertValueConstantExpr > |
| struct | OperandTraits< InsertValueInst > |
| struct | OperandTraits< LandingPadInst > |
| struct | OperandTraits< MemoryDef > |
| struct | OperandTraits< MemoryPhi > |
| struct | OperandTraits< MemoryUse > |
| struct | OperandTraits< MemoryUseOrDef > |
| struct | OperandTraits< PHINode > |
| struct | OperandTraits< ResumeInst > |
| struct | OperandTraits< ReturnInst > |
| struct | OperandTraits< SelectConstantExpr > |
| struct | OperandTraits< SelectInst > |
| struct | OperandTraits< ShuffleVectorConstantExpr > |
| struct | OperandTraits< ShuffleVectorInst > |
| struct | OperandTraits< StoreInst > |
| struct | OperandTraits< SwitchInst > |
| struct | OperandTraits< UnaryConstantExpr > |
| struct | OperandTraits< UnaryInstruction > |
| class | Operator |
| This is a utility class that provides an abstraction for the common functionality between Instructions and ConstantExprs. More... | |
| class | OpInit |
| Base class for operators. More... | |
| class | OProfileWrapper |
| class | OptBisect |
| This class implements a mechanism to disable passes and individual optimizations at compile time based on a command line option (-opt-bisect-limit) in order to perform a bisecting search for optimization-related problems. More... | |
| class | OptimizationRemark |
| Diagnostic information for applied optimization remarks. More... | |
| class | OptimizationRemarkAnalysis |
| Diagnostic information for optimization analysis remarks. More... | |
| class | OptimizationRemarkAnalysisAliasing |
| Diagnostic information for optimization analysis remarks related to pointer aliasing. More... | |
| class | OptimizationRemarkAnalysisFPCommute |
| Diagnostic information for optimization analysis remarks related to floating-point non-commutativity. More... | |
| class | OptimizationRemarkEmitter |
| The optimization diagnostic interface. More... | |
| class | OptimizationRemarkEmitterAnalysis |
| class | OptimizationRemarkEmitterWrapperPass |
| OptimizationRemarkEmitter legacy analysis pass. More... | |
| class | OptimizationRemarkMissed |
| Diagnostic information for missed-optimization remarks. More... | |
| class | Optional |
| struct | OptionalOperandTraits |
| OptionalOperandTraits - when the number of operands may change at runtime. More... | |
| class | OptLevelChanger |
| This class is used by SelectionDAGISel to temporarily override the optimization level on a per-function basis. More... | |
| class | OptPassGate |
| Extensions to this class implement mechanisms to disable passes and individual optimizations at compile time. More... | |
| class | OrcCBindingsStack |
| class | OrderedBasicBlock |
| class | OrderedInstructions |
| class | OuterAnalysisManagerProxy |
| An analysis over an "inner" IR unit that provides access to an analysis manager over a "outer" IR unit. More... | |
| class | OverflowingBinaryOperator |
| Utility class for integer operators which may exhibit overflow - Add, Sub, Mul, and Shl. More... | |
| struct | OverlapFuncFilters |
| struct | OverlapStats |
| class | OwningArrayRef |
| This is a MutableArrayRef that owns its array. More... | |
| class | PackedVector |
| Store a vector of values using a specific number of bits for each value. More... | |
| class | PackedVectorBase |
| class | PackedVectorBase< T, BitNum, BitVectorTy, false > |
| class | PackedVectorBase< T, BitNum, BitVectorTy, true > |
| struct | pair_hash |
| struct | ParsedModuleAndIndex |
| Holds the Module and ModuleSummaryIndex returned by the interfaces that parse both. More... | |
| struct | ParseInstructionInfo |
| class | PartialInlinerPass |
| Pass to remove unused function declarations. More... | |
| class | PartiallyInlineLibCallsPass |
| class | Pass |
| Pass interface - Implemented by all 'passes'. More... | |
| class | PassArgFilter |
| ===-------------------------------------------------------------------—===// PassArgFilter - A filter for use with PassNameFilterParser that only accepts a Pass whose Arg matches certain strings. More... | |
| class | PassBuilder |
| This class provides access to building LLVM's passes. More... | |
| class | PassConfigImpl |
| class | PassInfo |
| PassInfo class - An instance of this class exists for every pass known by the system, and can be obtained from a live Pass by calling its getPassInfo() method. More... | |
| struct | PassInfoMixin |
| A CRTP mix-in to automatically provide informational APIs needed for passes. More... | |
| class | PassInstrumentation |
| This class provides instrumentation entry points for the Pass Manager, doing calls to callbacks registered in PassInstrumentationCallbacks. More... | |
| class | PassInstrumentationAnalysis |
Pseudo-analysis pass that exposes the PassInstrumentation to pass managers. More... | |
| class | PassInstrumentationCallbacks |
| This class manages callbacks registration, as well as provides a way for PassInstrumentation to pass control to the registered callbacks. More... | |
| class | PassManager |
| Manages a sequence of passes over a particular unit of IR. More... | |
| class | PassManagerBuilder |
| PassManagerBuilder - This class is used to set up a standard optimization sequence for languages like C and C++, allowing some APIs to customize the pass sequence in various ways. More... | |
| class | PassManagerPrettyStackEntry |
| PassManagerPrettyStackEntry - This is used to print informative information about what pass is running when/if a stack trace is generated. More... | |
| class | PassNameParser |
| class | PassPlugin |
| A loaded pass plugin. More... | |
| struct | PassPluginLibraryInfo |
| Information about the plugin required to load its passes. More... | |
| struct | PassRegistrationListener |
| PassRegistrationListener class - This class is meant to be derived from by clients that are interested in which passes get registered and unregistered at runtime (which can be because of the RegisterPass constructors being run as the program starts up, or may be because a shared object just got loaded). More... | |
| class | PassRegistry |
| PassRegistry - This class manages the registration and intitialization of the pass subsystem as application startup, and assists the PassManager in resolving pass dependencies. More... | |
| struct | PatchLocation |
| class | PatchPointOpers |
| MI-level patchpoint operands. More... | |
| class | Pattern |
| struct | PatternsForOpcode |
| Map from opcode to pattern list by binary search. More... | |
| class | PBQPRAConstraint |
| Abstract base for classes implementing PBQP register allocation constraints (e.g. More... | |
| class | PBQPRAConstraintList |
| PBQP register allocation constraint composer. More... | |
| class | PeelingModuloScheduleExpander |
| A reimplementation of ModuloScheduleExpander. More... | |
| struct | PerFunctionMIParsingState |
| struct | PerTargetMIParsingState |
| class | PGOIndirectCallPromotion |
| The indirect function call promotion pass. More... | |
| struct | PGOIndirectCallVisitor |
| class | PGOInstrumentationGen |
| The instrumentation (profile-instr-gen) pass for IR based PGO. More... | |
| class | PGOInstrumentationGenCreateVar |
| The instrumentation (profile-instr-gen) pass for IR based PGO. More... | |
| class | PGOInstrumentationUse |
| The profile annotation (profile-instr-use) pass for IR based PGO. More... | |
| class | PGOMemOPSizeOpt |
| The profile size based optimization pass for memory intrinsics. More... | |
| struct | PGOOptions |
| A struct capturing PGO tunables. More... | |
| class | PHINode |
| class | PHITransAddr |
| PHITransAddr - An address value which tracks and handles phi translation. More... | |
| class | PhiValues |
| Class for calculating and caching the underlying values of phis in a function. More... | |
| class | PhiValuesAnalysis |
| The analysis pass which yields a PhiValues. More... | |
| class | PhiValuesPrinterPass |
| A pass for printing the PhiValues for a function. More... | |
| class | PhiValuesWrapperPass |
| Wrapper pass for the legacy pass manager. More... | |
| class | PhysicalRegisterUsageInfo |
| struct | PhysRegInfo |
| Information about how a physical register Reg is used by a set of operands. More... | |
| struct | PhysRegSUOper |
| Record a physical register access. More... | |
| class | PiBlockDDGNode |
| Subclass of DDGNode representing a pi-block. More... | |
| class | PipelineTuningOptions |
| Tunable parameters for passes in the default pipelines. More... | |
| struct | PluginLoader |
| class | PMDataManager |
| PMDataManager provides the common place to manage the analysis data used by pass managers. More... | |
| class | PMStack |
| PMStack - This class implements a stack data structure of PMDataManager pointers. More... | |
| class | PMTopLevelManager |
| PMTopLevelManager manages LastUser info and collects common APIs used by top level pass managers. More... | |
| struct | po_ext_iterator |
| class | po_iterator |
| class | po_iterator_storage |
| Default po_iterator_storage implementation with an internal set object. More... | |
| class | po_iterator_storage< LoopBlocksTraversal, true > |
| Specialize po_iterator_storage to record postorder numbers. More... | |
| class | po_iterator_storage< LoopBounds, true > |
| class | po_iterator_storage< SetType, true > |
| Specialization of po_iterator_storage that references an external set. More... | |
| struct | pointee_iterator |
| An iterator type that allows iterating over the pointees via some other iterator. More... | |
| class | pointer_iterator |
| struct | PointerAlignElem |
| Layout pointer alignment element. More... | |
| class | PointerEmbeddedInt |
| Utility to embed an integer into a pointer-like type. More... | |
| class | PointerIntPair |
| PointerIntPair - This class implements a pair of a pointer and small integer. More... | |
| struct | PointerIntPairInfo |
| struct | PointerLikeTypeTraits |
| A traits type that is used to handle pointer types and things that are just wrappers for pointers as a uniform entity. More... | |
| struct | PointerLikeTypeTraits< const T * > |
| struct | PointerLikeTypeTraits< const T > |
| struct | PointerLikeTypeTraits< PointerEmbeddedInt< IntT, Bits > > |
| struct | PointerLikeTypeTraits< PointerIntPair< PointerTy, IntBits, IntType, PtrTraits > > |
| struct | PointerLikeTypeTraits< PointerUnion< PTs... > > |
| struct | PointerLikeTypeTraits< ReturnT(*)(ParamTs...)> |
| Provide a default specialization for function pointers that assumes 4-byte alignment. More... | |
| struct | PointerLikeTypeTraits< T * > |
| struct | PointerLikeTypeTraits< uintptr_t > |
| struct | PointerLikeTypeTraits< void * > |
| class | PointerSumType |
| A sum type over pointer-like types. More... | |
| struct | PointerSumTypeMember |
| A compile time pair of an integer tag and the pointer-like type which it indexes within a sum type. More... | |
| class | PointerType |
| Class to represent pointers. More... | |
| class | PointerUnion |
| A discriminated union of two or more pointer types, with the discriminator in the low bit of the pointer. More... | |
| struct | PointerUnionTypeSelector |
| Get a type based on whether two types are the same or not. More... | |
| struct | PointerUnionTypeSelector< T, T, RET_EQ, RET_NE > |
| struct | PointerUnionTypeSelectorReturn |
| struct | PointerUnionTypeSelectorReturn< PointerUnionTypeSelector< T1, T2, RET_EQ, RET_NE > > |
| struct | PoisonCheckingPass |
| class | PoisoningVH |
| Value handle that poisons itself if the Value is deleted. More... | |
| class | PooledStringPtr |
| PooledStringPtr - A pointer to an interned string. More... | |
| class | PopulateLoopsDFS |
| Populate all loop data in a stable order during a single forward DFS. More... | |
| class | PossiblyExactOperator |
| A udiv or sdiv instruction, which can be marked as "exact", indicating that no bits are destroyed. More... | |
| class | PostDominatorTree |
| PostDominatorTree Class - Concrete subclass of DominatorTree that is used to compute the post-dominator tree. More... | |
| class | PostDominatorTreeAnalysis |
Analysis pass which computes a PostDominatorTree. More... | |
| class | PostDominatorTreePrinterPass |
Printer pass for the PostDominatorTree. More... | |
| struct | PostDominatorTreeWrapperPass |
| class | PostGenericScheduler |
| PostGenericScheduler - Interface to the scheduling algorithm used by ScheduleDAGMI. More... | |
| struct | PostOrderFunctionAttrsPass |
| Computes function attributes in post-order over the call graph. More... | |
| class | PPC64LinuxTargetObjectFile |
| PPC64LinuxTargetObjectFile - This implementation is used for 64-bit PowerPC Linux. More... | |
| class | PPCCCState |
| class | PPCDispatchGroupSBHazardRecognizer |
| PPCDispatchGroupSBHazardRecognizer - This class implements a scoreboard-based hazard recognizer for PPC ooo processors with dispatch-group hazards. More... | |
| class | PPCELFMCAsmInfo |
| class | PPCFrameLowering |
| class | PPCFunctionInfo |
| PPCFunctionInfo - This class is derived from MachineFunction private PowerPC target-specific information for each MachineFunction. More... | |
| class | PPCHazardRecognizer970 |
| PPCHazardRecognizer970 - This class defines a finite state automata that models the dispatch logic on the PowerPC 970 (aka G5) processor. More... | |
| class | PPCInstPrinter |
| class | PPCInstrInfo |
| class | PPCMCCodeEmitter |
| class | PPCMCExpr |
| class | PPCPostRASchedStrategy |
| A MachineSchedStrategy implementation for PowerPC post RA scheduling. More... | |
| class | PPCPreRASchedStrategy |
| A MachineSchedStrategy implementation for PowerPC pre RA scheduling. More... | |
| class | PPCRegisterInfo |
| class | PPCSubtarget |
| class | PPCTargetLowering |
| class | PPCTargetMachine |
| Common code between 32-bit and 64-bit PowerPC targets. More... | |
| class | PPCTargetStreamer |
| class | PPCTTIImpl |
| class | PPCXCOFFMCAsmInfo |
| class | PredicateAssume |
| class | PredicateBase |
| class | PredicateBitsetImpl |
| Container class for CodeGen predicate results. More... | |
| class | PredicateBranch |
| class | PredicatedScalarEvolution |
| An interface layer with SCEV used to manage how we see SCEV expressions for values in the context of existing predicates. More... | |
| class | PredicateInfo |
| Encapsulates PredicateInfo, including all data associated with memory accesses. More... | |
| class | PredicateInfoAnnotatedWriter |
| An assembly annotator class to print PredicateInfo information in comments. More... | |
| class | PredicateInfoPrinterLegacyPass |
| class | PredicateInfoPrinterPass |
Printer pass for PredicateInfo. More... | |
| struct | PredicateInfoVerifierPass |
Verifier pass for PredicateInfo. More... | |
| class | PredicateSwitch |
| class | PredicateWithCondition |
| class | PredicateWithEdge |
| class | PredIterator |
| class | PredIteratorCache |
| PredIteratorCache - This class is an extremely trivial cache for predecessor iterator queries. More... | |
| struct | PreferredTuple |
| struct | PreISelIntrinsicLoweringPass |
| class | PreservedAnalyses |
| A set of analyses that are preserved following a run of a transformation pass. More... | |
| class | PressureChange |
| Capture a change in pressure for a single pressure set. More... | |
| class | PressureDiff |
| List of PressureChanges in order of increasing, unique PSetID. More... | |
| class | PressureDiffs |
| Array of PressureDiffs. More... | |
| class | PrettyStackTraceEntry |
| PrettyStackTraceEntry - This class is used to represent a frame of the "pretty" stack trace that is dumped when a program crashes. More... | |
| class | PrettyStackTraceFormat |
| PrettyStackTraceFormat - This object prints a string (which may use printf-style formatting but should not contain newlines) to the stream as the stack trace when a crash occurs. More... | |
| class | PrettyStackTraceProgram |
| PrettyStackTraceProgram - This object prints a specified program arguments to the stream as the stack trace when a crash occurs. More... | |
| class | PrettyStackTraceString |
| PrettyStackTraceString - This object prints a specified string (which should not contain newlines) to the stream as the stack trace when a crash occurs. More... | |
| class | Printable |
| Simple wrapper around std::function<void(raw_ostream&)>. More... | |
| class | PrintFunctionPass |
| Pass for printing a Function as LLVM's text IR assembly. More... | |
| class | PrintIRInstrumentation |
| Instrumentation to print IR before/after passes. More... | |
| class | PrintLoopPass |
| Pass for printing a loop's contents as textual IR. More... | |
| class | PrintModulePass |
| Pass for printing a Module as LLVM's text IR assembly. More... | |
| class | PriorityQueue |
| PriorityQueue - This class behaves like std::priority_queue and provides a few additional convenience functions. More... | |
| class | PriorityWorklist |
| A FILO worklist that prioritizes on re-insertion without duplication. More... | |
| class | ProfileSummary |
| class | ProfileSummaryAnalysis |
| An analysis pass based on the new PM to deliver ProfileSummaryInfo. More... | |
| class | ProfileSummaryBuilder |
| struct | ProfileSummaryEntry |
| class | ProfileSummaryInfo |
| Analysis providing profile information. More... | |
| class | ProfileSummaryInfoWrapperPass |
| An analysis pass based on legacy pass manager to deliver ProfileSummaryInfo. More... | |
| class | ProfileSummaryPrinterPass |
Printer pass that uses ProfileSummaryAnalysis. More... | |
| class | ProfOStream |
| class | PromotePass |
| class | PSetIterator |
| Iterate over the pressure sets affected by the given physical or virtual register. More... | |
| class | PseudoSourceValue |
| Special value supplied for machine level alias analysis. More... | |
| class | PseudoSourceValueManager |
| Manages creation of pseudo source values. More... | |
| struct | PtrAddChain |
| class | PtrToIntInst |
| This class represents a cast from a pointer to an integer. More... | |
| class | PtrToIntOperator |
| class | PtrUseVisitor |
| A base class for visitors over the uses of a pointer value. More... | |
| class | R600AsmPrinter |
| class | R600FrameLowering |
| class | R600InstPrinter |
| class | R600InstrInfo |
| class | R600MachineFunctionInfo |
| struct | R600RegisterInfo |
| class | R600SchedStrategy |
| class | R600Subtarget |
| class | R600TargetLowering |
| class | R600TargetMachine |
| class | R600TTIImpl |
| class | RAIIDelegateInstaller |
| A simple RAII based CSEInfo installer. More... | |
| struct | RandomIRBuilder |
| class | RandomNumberGenerator |
| A random number generator. More... | |
| struct | RangeListEntry |
| A class representing a single range list entry. More... | |
| struct | RangeSpan |
| struct | RangeSpanList |
| struct | rank |
| Utility type to build an inheritance chain that makes it easy to rank overload candidates. More... | |
| struct | rank< 0 > |
| class | raw_fd_ostream |
| A raw_ostream that writes to a file descriptor. More... | |
| class | raw_null_ostream |
| A raw_ostream that discards all output. More... | |
| class | raw_os_ostream |
| raw_os_ostream - A raw_ostream that writes to an std::ostream. More... | |
| class | raw_ostream |
| This class implements an extremely fast bulk output stream that can only output to a stream. More... | |
| class | raw_pwrite_stream |
| An abstract base class for streams implementations that also support a pwrite operation. More... | |
| class | raw_sha1_ostream |
| A raw_ostream that hash the content using the sha1 algorithm. More... | |
| class | raw_string_ostream |
| A raw_ostream that writes to an std::string. More... | |
| class | raw_svector_ostream |
| A raw_ostream that writes to an SmallVector or SmallString. More... | |
| class | RawInstrProfReader |
| Reader for the raw instrprof binary format from runtime. More... | |
| class | RCToken |
| class | ReachingDefAnalysis |
| This class provides the reaching def analysis. More... | |
| class | ReadyQueue |
| Helpers for implementing custom MachineSchedStrategy classes. More... | |
| class | ReassociatePass |
| Reassociate commutative expressions. More... | |
| class | Record |
| class | RecordKeeper |
| class | RecordRecTy |
| '[classname]' - Type of record values that have zero or more superclasses. More... | |
| class | RecordResolver |
| Resolve all variables from a record except for unset variables. More... | |
| struct | RecordsEntry |
| RecordsEntry - Can be either a record or a foreach loop. More... | |
| class | RecordStreamer |
| class | RecordVal |
| class | RecordValResolver |
| Resolve all references to a specific RecordVal. More... | |
| class | RecTy |
| class | RecurrenceDescriptor |
| The RecurrenceDescriptor is used to identify recurrences variables in a loop. More... | |
| class | Recycler |
| Recycler - This class manages a linked-list of deallocated nodes and facilitates reusing deallocated memory in place of allocating new memory. More... | |
| class | RecyclingAllocator |
| RecyclingAllocator - This class wraps an Allocator, adding the functionality of recycling deleted objects. More... | |
| class | RefCountedBase |
| A CRTP mixin class that adds reference counting to a type. More... | |
| class | RegAllocBase |
| RegAllocBase provides the register allocation driver and interface that can be extended to add interesting heuristics. More... | |
| class | RegBankSelect |
| This pass implements the reg bank selector pass used in the GlobalISel pipeline. More... | |
| struct | RegClassWeight |
| Each TargetRegisterClass has a per register weight, and weight limit which must be less than the limits of its pressure sets. More... | |
| class | Regex |
| struct | RegImmPair |
| Used to describe a register and immediate addition. More... | |
| class | Region |
| class | RegionBase |
| A single entry single exit Region. More... | |
| class | RegionInfo |
| class | RegionInfoAnalysis |
Analysis pass that exposes the RegionInfo for a function. More... | |
| class | RegionInfoBase |
| Analysis that detects all canonical Regions. More... | |
| class | RegionInfoPass |
| class | RegionInfoPrinterPass |
Printer pass for the RegionInfo. More... | |
| struct | RegionInfoVerifierPass |
Verifier pass for the RegionInfo. More... | |
| class | RegionNode |
| class | RegionNodeBase |
| A RegionNode represents a subregion or a BasicBlock that is part of a Region. More... | |
| class | RegionPass |
| A pass that runs on each Region in a function. More... | |
| struct | RegionPressure |
| RegisterPressure computed within a region of instructions delimited by TopPos and BottomPos. More... | |
| struct | RegionTraits |
| struct | RegionTraits< Function > |
| struct | RegionTraits< MachineFunction > |
| class | Register |
| Wrapper class representing virtual and physical registers. More... | |
| class | RegisterAGBase |
| RegisterAnalysisGroup - Register a Pass as a member of an analysis group. More... | |
| struct | RegisterAnalysisGroup |
| class | RegisterBank |
| This class implements the register bank concept. More... | |
| class | RegisterBankInfo |
| Holds all the information related to register banks. More... | |
| class | RegisterClassInfo |
| struct | RegisterMaskPair |
| class | RegisterMaskSDNode |
| class | RegisterOperands |
| List of registers defined and used by a machine instruction. More... | |
| struct | RegisterPass |
| RegisterPass<t> template - This template class is used to notify the system that a Pass is available for use, and registers it into the internal database maintained by the PassManager. More... | |
| class | RegisterPassParser |
| RegisterPassParser class - Handle the addition of new machine passes. More... | |
| struct | RegisterPressure |
| Base class for register pressure results. More... | |
| class | RegisterRegAlloc |
| class | RegisterRegAllocBase |
| RegisterRegAllocBase class - Track the registration of register allocators. More... | |
| class | RegisterScheduler |
| class | RegisterSDNode |
| class | RegisterStandardPasses |
| Registers a function for adding a standard set of passes. More... | |
| class | Registry |
| A global registry used in conjunction with static constructors to make pluggable components (like targets or garbage collectors) "just work" when linked with an executable. More... | |
| struct | RegPressureDelta |
| Store the effects of a change in pressure on things that MI scheduler cares about. More... | |
| class | RegPressureTracker |
| Track the current register pressure at some position in the instruction stream, and remember the high water mark within the region traversed. More... | |
| class | RegScavenger |
| struct | RegsForValue |
| This struct represents the registers (physical or virtual) that a particular set of values is assigned, and the type information about the value. More... | |
| struct | RegTraits |
| struct | RelocAddrEntry |
| RelocAddrEntry contains relocated value and section index. More... | |
| class | RelocationEntry |
| RelocationEntry - used to represent relocations internally in the dynamic linker. More... | |
| class | RelocationValueRef |
| struct | RemarkSetupErrorInfo |
| struct | RemarkSetupFileError |
| struct | RemarkSetupFormatError |
| struct | RemarkSetupPatternError |
| class | RemarkStreamer |
| Streamer for remarks. More... | |
| class | RepeatedPass |
| A utility pass template that simply runs another pass multiple times. More... | |
| class | ReplaceableMetadataImpl |
| Shared implementation of use-lists for replaceable metadata. More... | |
| struct | ReplacementItem |
| struct | RequireAnalysisPass |
| A utility pass template to force an analysis result to be available. More... | |
| struct | RequireAnalysisPass< AnalysisT, LazyCallGraph::SCC, CGSCCAnalysisManager, LazyCallGraph &, CGSCCUpdateResult & > |
| An explicit specialization of the require analysis template pass. More... | |
| struct | RequireAnalysisPass< AnalysisT, Loop, LoopAnalysisManager, LoopStandardAnalysisResults &, LPMUpdater & > |
| A partial specialization of the require analysis template pass to forward the extra parameters from a transformation's run method to the AnalysisManager's getResult. More... | |
| class | ReservoirSampler |
| Randomly selects an item by sampling into a set with an unknown number of elements, which may each be weighted to be more likely choices. More... | |
| class | Resolver |
| Interface for looking up the initializer for a variable name, used by Init::resolveReferences. More... | |
| struct | resource_sort |
| Sorting functions for the Available queue. More... | |
| class | ResourceManager |
| class | ResourcePriorityQueue |
| class | ResumeInst |
| Resume the propagation of an exception. More... | |
| class | ReturnInst |
| Return a value (possibly void), from a function. More... | |
| class | ReversePostOrderFunctionAttrsPass |
| A pass to do RPO deduction and propagation of function attributes. More... | |
| class | ReversePostOrderTraversal |
| struct | RewriteStatepointsForGC |
| class | RewriteSymbolPass |
| class | RGPassManager |
| The pass manager to schedule RegionPasses. More... | |
| class | RISCVAsmBackend |
| class | RISCVCallLowering |
| class | RISCVELFTargetObjectFile |
| This implementation is used for RISCV ELF targets. More... | |
| class | RISCVFrameLowering |
| class | RISCVGenRegisterBankInfo |
| class | RISCVInstPrinter |
| class | RISCVInstrInfo |
| class | RISCVLegalizerInfo |
| This class provides the information for the target register banks. More... | |
| class | RISCVMachineFunctionInfo |
| RISCVMachineFunctionInfo - This class is derived from MachineFunctionInfo and contains private RISCV-specific information for each MachineFunction. More... | |
| class | RISCVMCAsmInfo |
| class | RISCVMCExpr |
| class | RISCVRegisterBankInfo |
| This class provides the information for the target register banks. More... | |
| struct | RISCVRegisterInfo |
| class | RISCVSubtarget |
| class | RISCVTargetAsmStreamer |
| class | RISCVTargetELFStreamer |
| class | RISCVTargetLowering |
| class | RISCVTargetMachine |
| class | RISCVTargetStreamer |
| class | RISCVTTIImpl |
| class | RNSuccIterator |
| Hierarchical RegionNode successor iterator. More... | |
| class | RNSuccIterator< FlatIt< NodeRef >, BlockT, RegionT > |
| Flat RegionNode iterator. More... | |
| class | RootDDGNode |
| Subclass of DDGNode representing the root node of the graph. More... | |
| struct | RoundUpToPowerOfTwo |
| RoundUpToPowerOfTwo - This is a helper template that rounds N up to the next power of two (which means N itself if N is already a power of two). More... | |
| struct | RoundUpToPowerOfTwoH |
| RoundUpToPowerOfTwoH - If N is not a power of two, increase it. More... | |
| struct | RoundUpToPowerOfTwoH< N, false > |
| class | RTDyldMemoryManager |
| class | RuntimeDyld |
| class | RuntimeDyldChecker |
| RuntimeDyld invariant checker for verifying that RuntimeDyld has correctly applied relocations. More... | |
| class | RuntimeDyldCheckerExprEval |
| class | RuntimeDyldCheckerImpl |
| class | RuntimeDyldCOFF |
| class | RuntimeDyldCOFFAArch64 |
| class | RuntimeDyldCOFFI386 |
| class | RuntimeDyldCOFFThumb |
| class | RuntimeDyldCOFFX86_64 |
| class | RuntimeDyldELF |
| class | RuntimeDyldELFMips |
| class | RuntimeDyldError |
| Base class for errors originating in RuntimeDyld, e.g. More... | |
| class | RuntimeDyldImpl |
| class | RuntimeDyldMachO |
| class | RuntimeDyldMachOAArch64 |
| class | RuntimeDyldMachOARM |
| class | RuntimeDyldMachOCRTPBase |
| RuntimeDyldMachOTarget - Templated base class for generic MachO linker algorithms and data structures. More... | |
| class | RuntimeDyldMachOI386 |
| class | RuntimeDyldMachOX86_64 |
| class | RuntimePointerChecking |
| Holds information about the memory runtime legality checks to verify that a group of pointers do not overlap. More... | |
| class | SafepointIRVerifierPass |
| Create an instance of the safepoint verifier pass which can be added to a pass pipeline to check for relocation bugs. More... | |
| struct | SameType |
| class | SampleProfileLoaderPass |
| The sample profiler data loader pass. More... | |
| class | SampleProfileSummaryBuilder |
| struct | SanitizerCoverageOptions |
| struct | SanitizerStatReport |
| class | SaturatingInst |
| Represents a saturating add/sub intrinsic. More... | |
| struct | SaveAndRestore |
| A utility class that uses RAII to save and restore the value of a variable. More... | |
| class | ScalarEvolution |
| The main scalar evolution driver. More... | |
| class | ScalarEvolutionAnalysis |
Analysis pass that exposes the ScalarEvolution for a function. More... | |
| class | ScalarEvolutionPrinterPass |
Printer pass for the ScalarEvolutionAnalysis results. More... | |
| class | ScalarEvolutionVerifierPass |
Verifier pass for the ScalarEvolutionAnalysis results. More... | |
| class | ScalarEvolutionWrapperPass |
| class | ScalarizerPass |
| class | ScaledNumber |
| Simple representation of a scaled number. More... | |
| class | ScaledNumberBase |
| class | scc_iterator |
| Enumerate the SCCs of a directed graph in reverse topological order of the SCC DAG. More... | |
| class | SCCPPass |
| This pass performs function-level constant propagation and merging. More... | |
| class | SCEV |
| This class represents an analyzed expression in the program. More... | |
| class | SCEVAA |
| Analysis pass providing a never-invalidated alias analysis result. More... | |
| class | SCEVAAResult |
| A simple alias analysis implementation that uses ScalarEvolution to answer queries. More... | |
| class | SCEVAAWrapperPass |
| Legacy wrapper pass to provide the SCEVAAResult object. More... | |
| class | SCEVAddExpr |
| This node represents an addition of some number of SCEVs. More... | |
| class | SCEVAddRecExpr |
| This node represents a polynomial recurrence on the trip count of the specified loop. More... | |
| class | SCEVCastExpr |
| This is the base class for unary cast operator classes. More... | |
| class | SCEVCommutativeExpr |
| This node is the base class for n'ary commutative operators. More... | |
| class | SCEVConstant |
| This class represents a constant integer value. More... | |
| struct | SCEVCouldNotCompute |
| An object of this class is returned by queries that could not be answered. More... | |
| class | SCEVEqualPredicate |
| This class represents an assumption that two SCEV expressions are equal, and this can be checked at run-time. More... | |
| class | SCEVExpander |
| This class uses information about analyze scalars to rewrite expressions in canonical form. More... | |
| class | SCEVLoopAddRecRewriter |
| The SCEVLoopAddRecRewriter takes a scalar evolution expression and applies the Map (Loop -> SCEV) to all AddRecExprs. More... | |
| class | SCEVMinMaxExpr |
| This node is the base class min/max selections. More... | |
| class | SCEVMulExpr |
| This node represents multiplication of some number of SCEVs. More... | |
| class | SCEVNAryExpr |
| This node is a base class providing common functionality for n'ary operators. More... | |
| class | SCEVParameterRewriter |
| The SCEVParameterRewriter takes a scalar evolution expression and updates the SCEVUnknown components following the Map (Value -> Value). More... | |
| class | SCEVPredicate |
| This class represents an assumption made using SCEV expressions which can be checked at run-time. More... | |
| class | SCEVRewriteVisitor |
| This visitor recursively visits a SCEV expression and re-writes it. More... | |
| class | SCEVSignExtendExpr |
| This class represents a sign extension of a small integer value to a larger integer value. More... | |
| class | SCEVSMaxExpr |
| This class represents a signed maximum selection. More... | |
| class | SCEVSMinExpr |
| This class represents a signed minimum selection. More... | |
| class | SCEVTraversal |
| Visit all nodes in the expression tree using worklist traversal. More... | |
| class | SCEVTruncateExpr |
| This class represents a truncation of an integer value to a smaller integer value. More... | |
| class | SCEVUDivExpr |
| This class represents a binary unsigned division operation. More... | |
| class | SCEVUMaxExpr |
| This class represents an unsigned maximum selection. More... | |
| class | SCEVUMinExpr |
| This class represents an unsigned minimum selection. More... | |
| class | SCEVUnionPredicate |
| This class represents a composition of other SCEV predicates, and is the class that most clients will interact with. More... | |
| class | SCEVUnknown |
| This means that we are dealing with an entirely unknown SCEV value, and only represent it as its LLVM Value. More... | |
| struct | SCEVVisitor |
| This class defines a simple visitor class that may be used for various SCEV analysis purposes. More... | |
| class | SCEVWrapPredicate |
| This class represents an assumption made on an AddRec expression. More... | |
| class | SCEVZeroExtendExpr |
| This class represents a zero extension of a small integer value to a larger integer value. More... | |
| class | SchedBoundary |
| Each Scheduling boundary is associated with ready queues. More... | |
| class | SchedDFSImpl |
| Internal state used to compute SchedDFSResult. More... | |
| class | SchedDFSResult |
| Compute the values of each DAG node for various metrics during DFS. More... | |
| struct | SchedRemainder |
| Summarize the unscheduled region. More... | |
| class | ScheduleDAG |
| class | ScheduleDAGInstrs |
| A ScheduleDAG for scheduling lists of MachineInstr. More... | |
| class | ScheduleDAGMI |
| ScheduleDAGMI is an implementation of ScheduleDAGInstrs that simply schedules machine instructions according to the given MachineSchedStrategy without much extra book-keeping. More... | |
| class | ScheduleDAGMILive |
| ScheduleDAGMILive is an implementation of ScheduleDAGInstrs that schedules machine instructions while updating LiveIntervals and tracking regpressure. More... | |
| class | ScheduleDAGMutation |
| Mutate the DAG as a postpass after normal DAG building. More... | |
| class | ScheduleDAGSDNodes |
| ScheduleDAGSDNodes - A ScheduleDAG for scheduling SDNode-based DAGs. More... | |
| class | ScheduleDAGTopologicalSort |
| This class can compute a topological ordering for SUnits and provides methods for dynamically updating the ordering as new edges are added. More... | |
| class | ScheduleHazardRecognizer |
| HazardRecognizer - This determines whether or not an instruction can be issued this cycle, and whether or not a noop needs to be inserted to handle the hazard. More... | |
| class | SchedulingPriorityQueue |
| This interface is used to plug different priorities computation algorithms into the list scheduler. More... | |
| struct | ScopedFatalErrorHandler |
| ScopedFatalErrorHandler - This is a simple helper class which just calls install_fatal_error_handler in its constructor and remove_fatal_error_handler in its destructor. More... | |
| class | ScopedHandle |
| class | ScopedHashTable |
| class | ScopedHashTableIterator |
| class | ScopedHashTableScope |
| class | ScopedHashTableVal |
| class | ScopedNoAliasAA |
| Analysis pass providing a never-invalidated alias analysis result. More... | |
| class | ScopedNoAliasAAResult |
| A simple AA result which uses scoped-noalias metadata to answer queries. More... | |
| class | ScopedNoAliasAAWrapperPass |
| Legacy wrapper pass to provide the ScopedNoAliasAAResult object. More... | |
| class | ScopedPrinter |
| class | ScoreboardHazardRecognizer |
| class | SDDbgInfo |
| Keeps track of dbg_value information through SDISel. More... | |
| class | SDDbgLabel |
| Holds the information from a dbg_label node through SDISel. More... | |
| class | SDDbgValue |
| Holds the information from a dbg_value node through SDISel. More... | |
| class | SDep |
| Scheduling dependency. More... | |
| class | SDivOperator |
| class | SDLoc |
| Wrapper class for IR location info (IR ordering and DebugLoc) to be passed into SDNode creation functions. More... | |
| class | SDNode |
| Represents one node in the SelectionDAG. More... | |
| struct | SDNodeFlags |
| These are IR-level optimization flags that may be propagated to SDNodes. More... | |
| class | SDNodeIterator |
| class | SDUse |
| Represents a use of a SDNode. More... | |
| class | SDValue |
| Unlike LLVM values, Selection DAG nodes may return multiple values as the result of a computation. More... | |
| struct | SDVTList |
| This represents a list of ValueType's that has been intern'd by a SelectionDAG. More... | |
| class | SDVTListNode |
| class | SectionEntry |
| SectionEntry - represents a section emitted into memory by the dynamic linker. More... | |
| class | SectionKind |
| SectionKind - This is a simple POD value that classifies the properties of a section. More... | |
| class | SectionMemoryManager |
| This is a simple memory manager which implements the methods called by the RuntimeDyld class to allocate memory for section-based loading of objects, usually those generated by the MCJIT execution engine. More... | |
| struct | SectionName |
| struct | SEHHandler |
| struct | SEHUnwindMapEntry |
| Similar to CxxUnwindMapEntry, but supports SEH filters. More... | |
| class | SelectConstantExpr |
| SelectConstantExpr - This class is private to Constants.cpp, and is used behind the scenes to implement select constant exprs. More... | |
| class | SelectInst |
| This class represents the LLVM 'select' instruction. More... | |
| class | SelectionDAG |
| This is used to represent a portion of an LLVM function in a low-level Data Dependence DAG representation suitable for instruction selection. More... | |
| class | SelectionDAGBuilder |
| SelectionDAGBuilder - This is the common target-independent lowering implementation that is parameterized by a TargetLowering object. More... | |
| class | SelectionDAGISel |
| SelectionDAGISel - This is the common base class used for SelectionDAG-based pattern-matching instruction selectors. More... | |
| class | SelectionDAGTargetInfo |
| Targets can subclass this to parameterize the SelectionDAG lowering and instruction selection process. More... | |
| struct | SelectPatternResult |
| class | SequentialType |
| This is the superclass of the array and vector type classes. More... | |
| class | SetTheory |
| class | SetVector |
| A vector that has set insertion semantics. More... | |
| class | SExtInst |
| This class represents a sign extension of integer types. More... | |
| class | SHA1 |
| A class that wrap the SHA1 algorithm. More... | |
| class | ShadowResolver |
| Delegate resolving to a sub-resolver, but shadow some variable names. More... | |
| class | ShlOperator |
| class | ShuffleVectorConstantExpr |
| ShuffleVectorConstantExpr - This class is private to Constants.cpp, and is used behind the scenes to implement shufflevector constant exprs. More... | |
| class | ShuffleVectorInst |
| This instruction constructs a fixed permutation of two input vectors. More... | |
| class | ShuffleVectorSDNode |
| This SDNode is used to implement the code generator support for the llvm IR shufflevector instruction. More... | |
| class | SIFrameLowering |
| class | SignpostEmitter |
| Manages the emission of signposts into the recording method supported by the OS. More... | |
| class | SIInstrInfo |
| class | SIMachineFunctionInfo |
| This class keeps track of the SPI_SP_INPUT_ADDR config register, which tells the hardware which interpolation parameters to load. More... | |
| class | simple_ilist |
| A simple intrusive list implementation. More... | |
| class | SimpleBitstreamCursor |
| This represents a position within a bitstream. More... | |
| class | SimpleDDGNode |
| Subclass of DDGNode representing single or multi-instruction nodes. More... | |
| class | SimpleLoopSafetyInfo |
| Simple and conservative implementation of LoopSafetyInfo that can give false-positive answers to its queries in order to avoid complicated analysis. More... | |
| class | SimpleLoopUnswitchPass |
| This pass transforms loops that contain branches or switches on loop- invariant conditions to have multiple loops. More... | |
| class | SimpleRegistryEntry |
| A simple registry entry which provides only a name, description, and no-argument constructor. More... | |
| struct | simplify_type |
| struct | simplify_type< const From > |
| struct | simplify_type< const ilist_iterator< OptionsT, false, IsConst > > |
| struct | simplify_type< const IntrusiveRefCntPtr< T > > |
| struct | simplify_type< const MDOperand > |
| struct | simplify_type< const SDValue > |
| struct | simplify_type< const TrackingMDRef > |
| struct | simplify_type< const TypedTrackingMDRef< T > > |
| struct | simplify_type< const Use > |
| struct | simplify_type< const WeakTrackingVH > |
| struct | simplify_type< const WeakVH > |
| struct | simplify_type< ilist_iterator< OptionsT, false, IsConst > > |
| Allow ilist_iterators to convert into pointers to a node automatically when used by the dyn_cast, cast, isa mechanisms... More... | |
| struct | simplify_type< IntrusiveRefCntPtr< T > > |
| struct | simplify_type< MDOperand > |
| struct | simplify_type< SDUse > |
| simplify_type specializations - Allow casting operators to work directly on SDValues as if they were SDNode*'s. More... | |
| struct | simplify_type< SDValue > |
| Allow casting operators to work directly on SDValues as if they were SDNode*'s. More... | |
| struct | simplify_type< TrackingMDRef > |
| struct | simplify_type< TypedTrackingMDRef< T > > |
| struct | simplify_type< Use > |
| Allow clients to treat uses just like values when using casting operators. More... | |
| struct | simplify_type< User::const_op_iterator > |
| struct | simplify_type< User::op_iterator > |
| struct | simplify_type< WeakTrackingVH > |
| struct | simplify_type< WeakVH > |
| struct | SimplifyCFGOptions |
| A set of parameters used to control the transforms in the SimplifyCFG pass. More... | |
| class | SimplifyCFGPass |
| A pass to simplify and canonicalize the CFG of a function. More... | |
| struct | SimplifyQuery |
| struct | SinkAndHoistLICMFlags |
| class | SinkingPass |
| Move instructions into successor blocks when possible. More... | |
| struct | SIProgramInfo |
| Track resource usage for kernels / entry functions. More... | |
| class | SIRegisterInfo |
| class | SIScheduleBlock |
| class | SIScheduleBlockCreator |
| struct | SIScheduleBlockResult |
| struct | SIScheduleBlocks |
| class | SIScheduleBlockScheduler |
| class | SIScheduleDAGMI |
| class | SIScheduler |
| struct | SISchedulerCandidate |
| class | SITargetLowering |
| class | SIToFPInst |
| This class represents a cast from signed integer to floating point. More... | |
| class | SlotIndex |
| SlotIndex - An opaque wrapper around machine indexes. More... | |
| class | SlotIndexes |
| SlotIndexes pass. More... | |
| struct | SlotMapping |
| This struct contains the mappings from the slot numbers to unnamed metadata nodes, global values and types. More... | |
| class | SlotTracker |
| This class provides computation of slot numbers for LLVM Assembly writing. More... | |
| struct | SLPVectorizerPass |
| class | SmallBitVector |
| This is a 'bitvector' (really, a variable-sized bit array), optimized for the case when the array is small. More... | |
| class | SmallDenseMap |
| class | SmallDenseSet |
| Implements a dense probed hash-table based set with some number of buckets stored inline. More... | |
| struct | SmallMapVector |
| A MapVector that performs no allocations if smaller than a certain size. More... | |
| class | SmallPriorityWorklist |
A version of PriorityWorklist that selects small size optimized data structures for the vector and map. More... | |
| class | SmallPtrSet |
| SmallPtrSet - This class implements a set which is optimized for holding SmallSize or less elements. More... | |
| class | SmallPtrSetImpl |
A templated base class for SmallPtrSet which provides the typesafe interface that is common across all small sizes. More... | |
| class | SmallPtrSetImplBase |
| SmallPtrSetImplBase - This is the common code shared among all the SmallPtrSet<>'s, which is almost everything. More... | |
| class | SmallPtrSetIterator |
| SmallPtrSetIterator - This implements a const_iterator for SmallPtrSet. More... | |
| class | SmallPtrSetIteratorImpl |
| SmallPtrSetIteratorImpl - This is the common base class shared between all instances of SmallPtrSetIterator. More... | |
| class | SmallSet |
| SmallSet - This maintains a set of unique values, optimizing for the case when the set is small (less than N). More... | |
| class | SmallSet< PointeeType *, N > |
| If this set is of pointer values, transparently switch over to using SmallPtrSet for performance. More... | |
| class | SmallSetIterator |
| SmallSetIterator - This class implements a const_iterator for SmallSet by delegating to the underlying SmallVector or Set iterators. More... | |
| class | SmallSetVector |
| A SetVector that performs no allocations if smaller than a certain size. More... | |
| class | SmallString |
| SmallString - A SmallString is just a SmallVector with methods and accessors that make it work better as a string (e.g. More... | |
| class | SmallVector |
| This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small. More... | |
| struct | SmallVectorAlignmentAndSize |
| Figure out the offset of the first element. More... | |
| class | SmallVectorBase |
| This is all the non-templated stuff common to all SmallVectors. More... | |
| class | SmallVectorImpl |
| This class consists of common code factored out of the SmallVector class to reduce code duplication based on the SmallVector 'N' template parameter. More... | |
| class | SmallVectorMemoryBuffer |
| SmallVector-backed MemoryBuffer instance. More... | |
| struct | SmallVectorStorage |
| Storage for the SmallVector elements. More... | |
| struct | SmallVectorStorage< T, 0 > |
| We need the storage to be properly aligned even for small-size of 0 so that the pointer math in SmallVectorTemplateCommon::getFirstEl() is well-defined. More... | |
| class | SmallVectorTemplateBase |
| SmallVectorTemplateBase<TriviallyCopyable = false> - This is where we put method implementations that are designed to work with non-POD-like T's. More... | |
| class | SmallVectorTemplateBase< T, true > |
| SmallVectorTemplateBase<TriviallyCopyable = true> - This is where we put method implementations that are designed to work with POD-like T's. More... | |
| class | SmallVectorTemplateCommon |
| This is the part of SmallVectorTemplateBase which does not depend on whether the type T is a POD. More... | |
| class | SMDiagnostic |
| Instances of this class encapsulate one diagnostic report, allowing printing to a raw_ostream as a caret diagnostic. More... | |
| class | SMFixIt |
| Represents a single fixit, a replacement of one range of text with another. More... | |
| class | SMLoc |
| Represents a location in source code. More... | |
| class | SMRange |
| Represents a range in source code. More... | |
| class | SMSchedule |
| This class represents the scheduled code. More... | |
| class | SMTExpr |
| Generic base class for SMT exprs. More... | |
| class | SMTSolver |
| Generic base class for SMT Solvers. More... | |
| class | SMTSort |
| Generic base class for SMT sorts. More... | |
| class | SoftInstrProfErrors |
| class | SourceMgr |
| This owns the files read by a parser, handles include stacks, and handles diagnostic wrangling. More... | |
| class | SparcELFMCAsmInfo |
| class | SparcELFTargetObjectFile |
| class | SparcelTargetMachine |
| class | SparcFrameLowering |
| class | SparcInstPrinter |
| class | SparcInstrInfo |
| class | SparcMachineFunctionInfo |
| class | SparcMCExpr |
| struct | SparcRegisterInfo |
| class | SparcSubtarget |
| class | SparcTargetAsmStreamer |
| class | SparcTargetELFStreamer |
| class | SparcTargetLowering |
| class | SparcTargetMachine |
| class | SparcTargetStreamer |
| class | SparcV8TargetMachine |
| Sparc 32-bit target machine. More... | |
| class | SparcV9TargetMachine |
| Sparc 64-bit target machine. More... | |
| class | SparseBitVector |
| struct | SparseBitVectorElement |
| SparseBitVector is an implementation of a bitvector that is sparse by only storing the elements that have non-zero bits set. More... | |
| class | SparseMultiSet |
| Fast multiset implementation for objects that can be identified by small unsigned keys. More... | |
| class | SparseSet |
| SparseSet - Fast set implmentation for objects that can be identified by small unsigned keys. More... | |
| struct | SparseSetValFunctor |
| SparseSetValFunctor - Helper class for selecting SparseSetValTraits. More... | |
| struct | SparseSetValFunctor< KeyT, KeyT, KeyFunctorT > |
| SparseSetValFunctor<KeyT, KeyT> - Helper class for the common case of identity key/value sets. More... | |
| struct | SparseSetValTraits |
| SparseSetValTraits - Objects in a SparseSet are identified by keys that can be uniquely converted to a small integer less than the set's universe. More... | |
| class | SparseSolver |
| SparseSolver - This class is a general purpose solver for Sparse Conditional Propagation with a programmable lattice function. More... | |
| class | SpecialCaseList |
| class | SpecificBumpPtrAllocator |
| A BumpPtrAllocator that allows only elements of a specific type to be allocated. More... | |
| struct | SpeculateAroundPHIsPass |
| This pass handles simple speculating of instructions around PHIs when doing so is profitable for a particular target despite duplicated instructions. More... | |
| class | SpeculativeExecutionPass |
| class | Spiller |
| Spiller interface. More... | |
| class | SpillPlacement |
| class | SplitAnalysis |
| SplitAnalysis - Analyze a LiveInterval, looking for live range splitting opportunities. More... | |
| class | SplitEditor |
| SplitEditor - Edit machine code and LiveIntervals for live range splitting. More... | |
| class | SrcOp |
| class | SrcValueSDNode |
| An SDNode that holds an arbitrary LLVM IR Value. More... | |
| class | SROA |
| An optimization pass providing Scalar Replacement of Aggregates. More... | |
| class | SSAUpdater |
| Helper class for SSA formation on a set of values defined in multiple blocks. More... | |
| class | SSAUpdaterBulk |
| Helper class for SSA formation on a set of values defined in multiple blocks. More... | |
| class | SSAUpdaterImpl |
| class | SSAUpdaterTraits |
| class | SSAUpdaterTraits< MachineSSAUpdater > |
| class | SSAUpdaterTraits< SSAUpdater > |
| class | StackMapOpers |
| MI-level stackmap operands. More... | |
| class | StackMapParser |
| A parser for the latest stackmap format. At the moment, latest=V3. More... | |
| class | StackMaps |
| class | StackOffset |
| StackOffset is a wrapper around scalable and non-scalable offsets and is used in several functions such as 'isAArch64FrameOffsetLegal' and 'emitFrameOffset()'. More... | |
| class | StackProtector |
| class | StackSafetyAnalysis |
| StackSafetyInfo wrapper for the new pass manager. More... | |
| class | StackSafetyGlobalAnalysis |
| This pass performs the global (interprocedural) stack safety analysis (new pass manager). More... | |
| class | StackSafetyGlobalInfoWrapperPass |
| This pass performs the global (interprocedural) stack safety analysis (legacy pass manager). More... | |
| class | StackSafetyGlobalPrinterPass |
Printer pass for the StackSafetyGlobalAnalysis results. More... | |
| class | StackSafetyInfo |
| Interface to access stack safety analysis results for single function. More... | |
| class | StackSafetyInfoWrapperPass |
| StackSafetyInfo wrapper for the legacy pass manager. More... | |
| class | StackSafetyPrinterPass |
Printer pass for the StackSafetyAnalysis results. More... | |
| class | StandardInstrumentations |
| This class provides an interface to register all the standard pass instrumentations and manages their state (if any). More... | |
| class | Statepoint |
| A specialization of it's base class for read-write access to a gc.statepoint. More... | |
| class | StatepointBase |
| A wrapper around a GC intrinsic call, this provides most of the actual functionality for Statepoint and ImmutableStatepoint. More... | |
| struct | StatepointDirectives |
| Call sites that get wrapped by a gc.statepoint (currently only in RewriteStatepointsForGC and potentially in other passes in the future) can have attributes that describe properties of gc.statepoint call they will be eventually be wrapped in. More... | |
| class | StatepointLoweringState |
| This class tracks both per-statepoint and per-selectiondag information. More... | |
| class | StatepointOpers |
| MI-level Statepoint operands. More... | |
| struct | StateWrapper |
| Helper to tie a abstract state implementation to an abstract attribute. More... | |
| class | StatisticBase |
| class | StoreInfo |
| class | StoreInst |
| An instruction for storing to memory. More... | |
| class | StoreSDNode |
| This class is used to represent ISD::STORE nodes. More... | |
| class | StringAttributeImpl |
| class | StringError |
| This class wraps a string in an Error. More... | |
| class | StringInit |
| "foo" - Represent an initialization by a string value. More... | |
| class | StringLiteral |
| A wrapper around a string literal that serves as a proxy for constructing global tables of StringRefs with the length computed at compile time. More... | |
| class | StringMap |
| StringMap - This is an unconventional map that is specialized for handling keys that are "strings", which are basically ranges of bytes. More... | |
| class | StringMapConstIterator |
| class | StringMapEntry |
| StringMapEntry - This is used to represent one value that is inserted into a StringMap. More... | |
| class | StringMapEntryBase |
| StringMapEntryBase - Shared base class of StringMapEntry instances. More... | |
| class | StringMapEntryStorage |
| StringMapEntryStorage - Holds the value in a StringMapEntry. More... | |
| class | StringMapEntryStorage< NoneType > |
| class | StringMapImpl |
| StringMapImpl - This is the base class of StringMap that is shared among all of its instantiations. More... | |
| class | StringMapIterator |
| class | StringMapIterBase |
| class | StringMapKeyIterator |
| class | StringMatcher |
| Given a list of strings and code to execute when they match, output a simple switch tree to classify the input string. More... | |
| class | StringPool |
| StringPool - An interned string pool. More... | |
| class | StringRecTy |
| 'string' - Represent an string value More... | |
| class | StringRef |
| StringRef - Represent a constant reference to a string, i.e. More... | |
| class | StringSaver |
| Saves strings in the provided stable storage and returns a StringRef with a stable character pointer. More... | |
| class | StringSet |
| StringSet - A wrapper for StringMap that provides set-like functionality. More... | |
| class | StringSubstitution |
| class | StringSwitch |
| A switch()-like statement whose cases are string literals. More... | |
| class | StringTableBuilder |
| Utility for building string tables with deduplicated suffixes. More... | |
| class | StringToOffsetTable |
| StringToOffsetTable - This class uniques a bunch of nul-terminated strings and keeps track of their offset in a massive contiguous string allocation. More... | |
| struct | StripDeadPrototypesPass |
| Pass to remove unused function declarations. More... | |
| struct | StrOffsetsContributionDescriptor |
| Represents base address of the CU. More... | |
| class | StrongType |
| Helper for making strong types. More... | |
| class | StructLayout |
| Used to lazily calculate structure layout information for a target machine, based on the DataLayout structure. More... | |
| class | StructType |
| Class to represent struct types. More... | |
| struct | SubClassReference |
| struct | SubMultiClassReference |
| class | SubOperator |
| class | Substitution |
| Class representing a substitution to perform in the RegExStr string. More... | |
| class | SubsumingPositionIterator |
| A visitor class for IR positions. More... | |
| struct | SubtargetFeatureKV |
| Used to provide key value pairs for feature and CPU bit flags. More... | |
| class | SubtargetFeatures |
| Manages the enabling and disabling of subtarget specific features. More... | |
| struct | SubtargetSubTypeKV |
| Used to provide key value pairs for feature and CPU bit flags. More... | |
| class | SuccIterator |
| class | SUnit |
| Scheduling unit. This is a node in the scheduling DAG. More... | |
| class | SUnitIterator |
| class | SuperRegClassIterator |
| class | SwiftErrorValueTracking |
| class | SwingSchedulerDAG |
| This class builds the dependence graph for the instructions in a loop, and attempts to schedule the instructions using the SMS algorithm. More... | |
| class | SwitchInst |
| Multiway switch. More... | |
| class | SwitchInstProfUpdateWrapper |
| A wrapper class to simplify modification of SwitchInst cases along with their prof branch_weights metadata. More... | |
| struct | SymbolCU |
| Helper used to pair up a symbol and its DWARF compile unit. More... | |
| class | SymbolRemappingParseError |
| class | SymbolRemappingReader |
| Reader for symbol remapping files. More... | |
| struct | SymbolsMapKey |
| class | SymbolTableEntry |
| Symbol info for RuntimeDyld. More... | |
| class | SymbolTableList |
| List that automatically updates parent links and symbol tables. More... | |
| struct | SymbolTableListParentType |
| Template metafunction to get the parent type for a symbol table list. More... | |
| class | SymbolTableListTraits |
| class | SyncDependenceAnalysis |
| Relates points of divergent control to join points in reducible CFGs. More... | |
| class | SyntheticCountsPropagation |
| class | SyntheticCountsUtils |
| Class with methods to propagate synthetic entry counts. More... | |
| struct | SysAlias |
| struct | SysAliasReg |
| class | SystemZAsmPrinter |
| class | SystemZCCState |
| class | SystemZConstantPoolValue |
| A SystemZ-specific constant pool value. More... | |
| class | SystemZFrameLowering |
| class | SystemZHazardRecognizer |
| SystemZHazardRecognizer maintains the state for one MBB during scheduling. More... | |
| class | SystemZInstPrinter |
| class | SystemZInstrInfo |
| class | SystemZMachineFunctionInfo |
| class | SystemZMCAsmInfo |
| class | SystemZMCInstLower |
| class | SystemZPostRASchedStrategy |
| A MachineSchedStrategy implementation for SystemZ post RA scheduling. More... | |
| struct | SystemZRegisterInfo |
| class | SystemZSelectionDAGInfo |
| class | SystemZSubtarget |
| class | SystemZTargetLowering |
| class | SystemZTargetMachine |
| class | SystemZTTIImpl |
| struct | SystemZVectorConstantInfo |
| struct | TailCallElimPass |
| class | TailDuplicator |
| Utility class to perform tail duplication. More... | |
| class | Target |
| Target - Wrapper for Target specific information. More... | |
| class | TargetFolder |
| TargetFolder - Create constants with target dependent folding. More... | |
| class | TargetFrameLowering |
| Information about stack frame layout on the target. More... | |
| struct | TargetIndexLocation |
| This struct describes target specific location. More... | |
| class | TargetIndexSDNode |
| Completely target-dependent object reference. More... | |
| class | TargetInstrInfo |
| TargetInstrInfo - Interface to description of machine instruction set. More... | |
| class | TargetIntrinsicInfo |
| TargetIntrinsicInfo - Interface to description of machine instruction set. More... | |
| class | TargetIRAnalysis |
Analysis pass providing the TargetTransformInfo. More... | |
| class | TargetLibraryAnalysis |
Analysis pass providing the TargetLibraryInfo. More... | |
| class | TargetLibraryInfo |
| Provides information about what library functions are available for the current target. More... | |
| class | TargetLibraryInfoImpl |
| Implementation of the target library information. More... | |
| class | TargetLibraryInfoWrapperPass |
| class | TargetLowering |
| This class defines information used to lower LLVM code to legal SelectionDAG operators that the target instruction selector can accept natively. More... | |
| class | TargetLoweringBase |
| This base class for TargetLowering contains the SelectionDAG-independent parts that can be used from the rest of CodeGen. More... | |
| class | TargetLoweringObjectFile |
| class | TargetLoweringObjectFileCOFF |
| class | TargetLoweringObjectFileELF |
| class | TargetLoweringObjectFileMachO |
| class | TargetLoweringObjectFileWasm |
| class | TargetLoweringObjectFileXCOFF |
| class | TargetMachine |
| Primary interface to the complete machine description for the target machine. More... | |
| struct | TargetMachineBuilder |
| Helper to gather options relevant to the target machine creation. More... | |
| class | TargetOptions |
| class | TargetPassConfig |
| Target-Independent Code Generator Pass Configuration Options. More... | |
| class | TargetRegisterClass |
| class | TargetRegisterInfo |
| TargetRegisterInfo base class - We assume that the target defines a static array of TargetRegisterDesc objects that represent all of the machine registers that the target has. More... | |
| struct | TargetRegisterInfoDesc |
| Extra information, not in MCRegisterDesc, about registers. More... | |
| struct | TargetRegistry |
| TargetRegistry - Generic interface to target specific features. More... | |
| class | TargetSchedModel |
| Provide an instruction scheduling machine model to CodeGen passes. More... | |
| class | TargetSubtargetInfo |
| TargetSubtargetInfo - Generic base class for all target subtargets. More... | |
| class | TargetTransformInfo |
| This pass provides access to the codegen interfaces that are needed for IR-level transformations. More... | |
| class | TargetTransformInfoImplBase |
| Base class for use as a mix-in that aids implementing a TargetTransformInfo-compatible class. More... | |
| class | TargetTransformInfoImplCRTPBase |
| CRTP base class for use as a mix-in that aids implementing a TargetTransformInfo-compatible class. More... | |
| class | TargetTransformInfoWrapperPass |
| Wrapper pass for TargetTransformInfo. More... | |
| class | TarWriter |
| class | TaskQueue |
| TaskQueue executes serialized work on a user-defined Thread Pool. More... | |
| class | TBAAVerifier |
| Verify that the TBAA Metadatas are valid. More... | |
| struct | TempMDNodeDeleter |
| class | TernOpInit |
| !op (X, Y, Z) - Combine two inits. More... | |
| class | TextInstrProfReader |
| Reader for the simple text based instrprof format. More... | |
| class | TGLexer |
| TGLexer - TableGen Lexer class. More... | |
| class | TGLocalVarScope |
| class | TGParser |
| class | ThinLTOBitcodeWriterPass |
| class | ThinLTOCodeGenerator |
| This class define an interface similar to the LTOCodeGenerator, but adapted for ThinLTO processing. More... | |
| class | ThreadPool |
| A ThreadPool for asynchronous parallel execution on a defined number of threads. More... | |
| class | ThreadSafeRefCountedBase |
A thread-safe version of RefCountedBase. More... | |
| struct | ThreadSanitizerPass |
| A function pass for tsan instrumentation. More... | |
| class | Thumb1FrameLowering |
| class | Thumb1InstrInfo |
| class | Thumb2InstrInfo |
| struct | ThumbRegisterInfo |
| class | TimePassesHandler |
| This class implements -time-passes functionality for new pass manager. More... | |
| class | Timer |
| This class is used to track the amount of time spent between invocations of its startTimer()/stopTimer() methods. More... | |
| class | TimeRecord |
| class | TimeRegion |
| The TimeRegion class is used as a helper class to call the startTimer() and stopTimer() methods of the Timer class. More... | |
| class | TimerGroup |
| The TimerGroup class is used to group together related timers into a single report that is printed when the TimerGroup is destroyed. More... | |
| struct | TimeTraceProfiler |
| struct | TimeTraceScope |
| The TimeTraceScope is a helper class to call the begin and end functions of the time trace profiler. More... | |
| class | TinyPtrVector |
| TinyPtrVector - This class is specialized for cases where there are normally 0 or 1 element in a vector, but is general enough to go beyond that when required. More... | |
| class | ToolOutputFile |
| This class contains a raw_fd_ostream and adds a few extra features commonly needed for compiler-like tool output files: More... | |
| class | Trace |
| class | TrackingMDRef |
| Tracking metadata reference. More... | |
| class | TrackingStatistic |
| class | TrackingVH |
| Value handle that tracks a Value across RAUW. More... | |
| class | TrackUnresolvedResolver |
| (Optionally) delegate resolving to a sub-resolver, and keep track whether there were unresolved references. More... | |
| class | TrailingObjects |
| See the file comment for details on the usage of the TrailingObjects type. More... | |
| class | TrigramIndex |
| class | Triple |
| Triple - Helper class for working with autoconf configuration names. More... | |
| class | TruncInst |
| This class represents a truncation of integer types. More... | |
| class | TruncInstCombine |
| class | TruncSStoreSDNode |
| class | TruncUSStoreSDNode |
| class | Twine |
| Twine - A lightweight data structure for efficiently representing the concatenation of temporary values as strings. More... | |
| class | Type |
| The instances of the Type class are immutable: once they are created, they are never changed. More... | |
| class | TypeAttributeImpl |
| class | TypeBasedAA |
| Analysis pass providing a never-invalidated alias analysis result. More... | |
| class | TypeBasedAAResult |
| A simple AA result that uses TBAA metadata to answer queries. More... | |
| class | TypeBasedAAWrapperPass |
| Legacy wrapper pass to provide the TypeBasedAAResult object. More... | |
| struct | TypeConversionCostTblEntry |
| Type Conversion Cost Table. More... | |
| class | TypedInit |
| This is the common super-class of types that have a specific, explicit, type. More... | |
| class | TypedMDOperandIterator |
| Typed iterator through MDNode operands. More... | |
| class | TypedTrackingMDRef |
| Typed tracking ref. More... | |
| class | TypeFinder |
| TypeFinder - Walk over a module, identifying all of the types that are used by the module. More... | |
| struct | TypeIdOffsetVtableInfo |
| The following data structures summarize type metadata information. More... | |
| struct | TypeIdSummary |
| class | TypeSize |
| struct | TypeTestResolution |
| class | UDivOperator |
| struct | Uint24 |
| An auxiliary type to facilitate extraction of 3-byte entities. More... | |
| class | UIToFPInst |
| This class represents a cast unsigned integer to floating point. More... | |
| class | UnaryConstantExpr |
| UnaryConstantExpr - This class is private to Constants.cpp, and is used behind the scenes to implement unary constant exprs. More... | |
| class | UnaryInstruction |
| class | UnaryOperator |
| class | UndefValue |
| 'undef' values are things that do not have specified contents. More... | |
| class | UndefVarError |
| Class to represent an undefined variable error, which quotes that variable's name when printed. More... | |
| struct | UnderlyingObject |
| struct | UnifyFunctionExitNodes |
| class | unique_function |
| class | unique_function< ReturnT(ParamTs...)> |
| class | UniqueMachineInstr |
| A class that wraps MachineInstrs and derives from FoldingSetNode in order to be uniqued in a CSEMap. More... | |
| class | UniqueStringSaver |
| Saves strings in the provided stable storage and returns a StringRef with a stable character pointer. More... | |
| struct | UniqueTag |
| It's very easy to introduce bugs by passing the wrong string pool. More... | |
| class | UniqueVector |
| UniqueVector - This class produces a sequential ID number (base 1) for each unique entry that is added. More... | |
| class | UnOpInit |
| !op (X) - Transform an init. More... | |
| class | UnreachableBlockElimPass |
| class | UnreachableInst |
| This function has undefined behavior. More... | |
| class | UnrolledInstAnalyzer |
| struct | UnrollLoopOptions |
| class | UnsetInit |
| '?' - Represents an uninitialized value More... | |
| class | UnwindOpcodeAssembler |
| class | upward_defs_iterator |
| Provide an iterator that walks defs, giving both the memory access, and the current pointer location, updating the pointer location as it changes due to phi node translation. More... | |
| class | Use |
| A Use represents the edge between a Value definition and its users. More... | |
| struct | UseListOrder |
| Structure to hold a use-list order. More... | |
| class | User |
| class | VAArgInst |
| This class represents the va_arg llvm instruction, which returns an argument of the specified type given a va_list and increments that list. More... | |
| class | VACopyInst |
| This represents the llvm.va_copy intrinsic. More... | |
| class | VAEndInst |
| This represents the llvm.va_end intrinsic. More... | |
| struct | ValID |
| ValID - Represents a reference of a definition of some sort with no type. More... | |
| struct | validate_format_parameters |
| These are templated helper classes used by the format function that capture the object to be formatted and the format string. More... | |
| struct | validate_format_parameters< Arg, Args... > |
| struct | validate_format_parameters<> |
| class | Value |
| LLVM Value Representation. More... | |
| struct | ValueAndVReg |
| Simple struct used to hold a constant integer value and a virtual register. More... | |
| class | ValueAsMetadata |
| Value wrapper in the Metadata hierarchy. More... | |
| struct | ValueDeleter |
| class | ValueEnumerator |
| class | ValueHandleBase |
| This is the common base class of value handles. More... | |
| struct | ValueInfo |
| Struct that holds a reference to a particular GUID in a global value summary. More... | |
| class | ValueLatticeElement |
| class | ValueMap |
| See the file comment. More... | |
| class | ValueMapCallbackVH |
| struct | ValueMapConfig |
| This class defines the default behavior for configurable aspects of ValueMap<>. More... | |
| class | ValueMapConstIterator |
| class | ValueMapIterator |
| class | ValueMapper |
| Context for (re-)mapping values (and metadata). More... | |
| class | ValueMapTypeRemapper |
| This is a class that can be implemented by clients to remap types when cloning constants and instructions. More... | |
| class | ValueMaterializer |
| This is a class that can be implemented by clients to materialize Values on demand. More... | |
| class | ValueProfileCollector |
| Utility analysis that determines what values are worth profiling. More... | |
| class | ValueSymbolTable |
| This class provides a symbol table of name/value pairs. More... | |
| class | VarBitInit |
| Opcode{0} - Represent access to one bit of a variable or field. More... | |
| class | VarDefInit |
| classname<targs...> - Represent an uninstantiated anonymous class instantiation. More... | |
| struct | VariadicOperandTraits |
| VariadicOperandTraits - determine the allocation regime of the Use array when it is a prefix to the User object, and the number of Use objects is only known at allocation time. More... | |
| class | VarInit |
| 'Opcode' - Represent a reference to an entire variable object. More... | |
| class | VarListElementInit |
| List[4] - Represent access to one element of a var or field. More... | |
| class | VarStreamArray |
| struct | VarStreamArrayExtractor |
| VarStreamArrayExtractor is intended to be specialized to provide customized extraction logic. More... | |
| struct | VarStreamArrayExtractor< codeview::CrossModuleImportItem > |
| struct | VarStreamArrayExtractor< codeview::CVRecord< Kind > > |
| struct | VarStreamArrayExtractor< codeview::DebugSubsectionRecord > |
| struct | VarStreamArrayExtractor< codeview::FileChecksumEntry > |
| struct | VarStreamArrayExtractor< codeview::InlineeSourceLine > |
| struct | VarStreamArrayExtractor< pdb::DbiModuleDescriptor > |
| class | VarStreamArrayIterator |
| VarStreamArray represents an array of variable length records backed by a stream. More... | |
| class | VAStartInst |
| This represents the llvm.va_start intrinsic. More... | |
| struct | VecDesc |
| Describes a possible vectorization of a function. More... | |
| struct | VectorizationFactor |
| TODO: The following VectorizationFactor was pulled out of LoopVectorizationCostModel class. More... | |
| struct | VectorizeConfig |
| Vectorize configuration. More... | |
| struct | VectorizerParams |
| Collection of parameters shared beetween the Loop Vectorizer and the Loop Access Analysis. More... | |
| struct | VectorizerValueMap |
| This is a helper struct for maintaining vectorization state. More... | |
| class | VectorType |
| Class to represent vector types. More... | |
| class | VEELFMCAsmInfo |
| class | VEFrameLowering |
| class | VEInstPrinter |
| class | VEInstrInfo |
| struct | VERegisterInfo |
| class | VerifierAnalysis |
| Check a module for errors, and report separate error states for IR and debug info errors. More... | |
| class | VerifierPass |
| Create a verifier pass. More... | |
| struct | VerifierSupport |
| class | VersionTuple |
| Represents a version number in the form major[.minor[.subminor[.build]]]. More... | |
| class | VESubtarget |
| class | VETargetAsmStreamer |
| class | VETargetELFStreamer |
| class | VETargetLowering |
| class | VETargetMachine |
| class | VETargetStreamer |
| class | VETTIImpl |
| struct | VFInfo |
| Holds the VFShape for a specific scalar to vector function mapping. More... | |
| struct | VFParameter |
| Encapsulates information needed to describe a parameter. More... | |
| struct | VFRange |
| A range of powers-of-2 vectorization factors with fixed start and adjustable end. More... | |
| struct | VFShape |
| Contains the information about the kind of vectorization available. More... | |
| struct | VirtFuncOffset |
| The ValueInfo and offset for a function within a vtable definition initializer array. More... | |
| struct | VirtReg2IndexFunctor |
| class | VirtRegAuxInfo |
| Calculate auxiliary information for a virtual register such as its spill weight and allocation hint. More... | |
| struct | VirtRegInfo |
| VirtRegInfo - Information about a virtual register used by a set of operands. More... | |
| class | VirtRegMap |
| class | VLIWMachineScheduler |
| Extend the standard ScheduleDAGMI to provide more context and override the top-level schedule() driver. More... | |
| class | VLIWPacketizerList |
| class | VLIWResourceModel |
| class | VNInfo |
| VNInfo - Value Number Information. More... | |
| class | VPBasicBlock |
| VPBasicBlock serves as the leaf of the Hierarchical Control-Flow Graph. More... | |
| class | VPBlendRecipe |
| A recipe for vectorizing a phi-node as a sequence of mask-based select instructions. More... | |
| class | VPBlockBase |
| VPBlockBase is the building block of the Hierarchical Control-Flow Graph. More... | |
| class | VPBlockUtils |
| Class that provides utilities for VPBlockBases in VPlan. More... | |
| class | VPBranchOnMaskRecipe |
| A recipe for generating conditional branches on the bits of a mask. More... | |
| class | VPBuilder |
| VPlan-based builder utility analogous to IRBuilder. More... | |
| struct | VPCallback |
| This class is used to enable the VPlan to invoke a method of ILV. More... | |
| class | VPInstruction |
| This is a concrete Recipe that models a single VPlan-level instruction. More... | |
| class | VPInterleavedAccessInfo |
| class | VPInterleaveRecipe |
| VPInterleaveRecipe is a recipe for transforming an interleave group of load or stores into one wide load/store and shuffles. More... | |
| struct | VPIteration |
| In what follows, the term "input IR" refers to code that is fed into the vectorizer whereas the term "output IR" refers to code that is generated by the vectorizer. More... | |
| class | VPlan |
| VPlan models a candidate for vectorization, encoding various decisions take to produce efficient output IR, including which branches, basic-blocks and output IR instructions to generate, and their cost. More... | |
| class | VPlanHCFGBuilder |
| Main class to build the VPlan H-CFG for an incoming IR. More... | |
| struct | VPlanIngredient |
| class | VPlanPredicator |
| class | VPlanPrinter |
| VPlanPrinter prints a given VPlan to a given output stream. More... | |
| class | VPlanSlp |
| Class that maps (parts of) an existing VPlan to trees of combined VPInstructions. More... | |
| class | VPlanTransforms |
| class | VPlanVerifier |
| Class with utility functions that can be used to check the consistency and invariants of a VPlan, including the components of its H-CFG. More... | |
| class | VPLoop |
| Hold analysis information for every loop detected by VPLoopInfo. More... | |
| class | VPPredInstPHIRecipe |
| VPPredInstPHIRecipe is a recipe for generating the phi nodes needed when control converges back from a Branch-on-Mask. More... | |
| class | VPRecipeBase |
| VPRecipeBase is a base class modeling a sequence of one or more output IR instructions. More... | |
| class | VPRecipeBuilder |
| Helper class to create VPRecipies from IR instructions. More... | |
| class | VPRegionBlock |
| VPRegionBlock represents a collection of VPBasicBlocks and VPRegionBlocks which form a Single-Entry-Single-Exit subgraph of the output IR CFG. More... | |
| class | VPReplicateRecipe |
| VPReplicateRecipe replicates a given instruction producing multiple scalar copies of the original scalar type, one per lane, instead of producing a single copy of widened type for all lanes. More... | |
| struct | VPTransformState |
| VPTransformState holds information passed down when "executing" a VPlan, needed for generating the output IR. More... | |
| class | VPUser |
| This class augments VPValue with operands which provide the inverse def-use edges from VPValue's users to their defs. More... | |
| class | VPValue |
| class | VPWidenGEPRecipe |
| A recipe for handling GEP instructions. More... | |
| class | VPWidenIntOrFpInductionRecipe |
| A recipe for handling phi nodes of integer and floating-point inductions, producing their vector and scalar values. More... | |
| class | VPWidenMemoryInstructionRecipe |
| A Recipe for widening load/store operations. More... | |
| class | VPWidenPHIRecipe |
| A recipe for handling all phi nodes except for integer and FP inductions. More... | |
| class | VPWidenRecipe |
| VPWidenRecipe is a recipe for producing a copy of vector type for each Instruction in its ingredients independently, in order. More... | |
| struct | VReg2SUnit |
| An individual mapping from virtual register number to SUnit. More... | |
| struct | VReg2SUnitOperIdx |
| Mapping from virtual register to SUnit including an operand index. More... | |
| struct | VRegInfo |
| class | VRegRenamer |
| VRegRenamer - This class is used for renaming vregs in a machine basic block according to semantics of the instruction. More... | |
| struct | VTableSlotSummary |
| class | VTSDNode |
| This class is used to represent EVT's, which are used to parameterize some operations. More... | |
| class | WarnMissedTransformationsPass |
| struct | WasmEHFuncInfo |
| class | WasmException |
| class | WeakTrackingVH |
| Value handle that is nullable, but tries to track the Value. More... | |
| class | WeakVH |
| A nullable Value handle that is nullable. More... | |
| class | WebAssemblyAsmPrinter |
| class | WebAssemblyDebugValueManager |
| class | WebAssemblyException |
| class | WebAssemblyExceptionInfo |
| class | WebAssemblyFrameLowering |
| class | WebAssemblyFunctionInfo |
| This class is derived from MachineFunctionInfo and contains private WebAssembly-specific information for each MachineFunction. More... | |
| class | WebAssemblyInstPrinter |
| class | WebAssemblyInstrInfo |
| class | WebAssemblyMCAsmInfo |
| class | WebAssemblyMCInstLower |
| This class is used to lower an MachineInstr into an MCInst. More... | |
| class | WebAssemblyRegisterInfo |
| class | WebAssemblySelectionDAGInfo |
| class | WebAssemblySubtarget |
| class | WebAssemblyTargetAsmStreamer |
| This part is for ascii assembly output. More... | |
| class | WebAssemblyTargetLowering |
| class | WebAssemblyTargetMachine |
| class | WebAssemblyTargetNullStreamer |
| This part is for null output. More... | |
| class | WebAssemblyTargetObjectFile |
| class | WebAssemblyTargetStreamer |
| WebAssembly-specific streamer interface, to implement support WebAssembly-specific assembly directives. More... | |
| class | WebAssemblyTargetWasmStreamer |
| This part is for Wasm object output. More... | |
| class | WebAssemblyTTIImpl |
| struct | WholeProgramDevirtPass |
| struct | WholeProgramDevirtResolution |
| class | WinCFGuard |
| class | WindowsResourceProcessor |
| struct | WinEHFuncInfo |
| struct | WinEHHandlerType |
| struct | WinEHTryBlockMapEntry |
| class | WinException |
| class | WithColor |
| An RAII object that temporarily switches an output stream to a specific color. More... | |
| class | WithOverflowInst |
| Represents an op.with.overflow intrinsic. More... | |
| class | WrappedPairNodeDataIterator |
| class | WritableBinaryStream |
| A BinaryStream which can be read from as well as written to. More... | |
| class | WritableBinaryStreamRef |
| class | WritableMemoryBuffer |
| This class is an extension of MemoryBuffer, which allows copy-on-write access to the underlying contents. More... | |
| class | WriteThroughMemoryBuffer |
| This class is an extension of MemoryBuffer, which allows write access to the underlying contents and committing those changes to the original source. More... | |
| class | X86_64MachoTargetObjectFile |
| X86_64MachoTargetObjectFile - This TLOF implementation is used for Darwin x86-64. More... | |
| struct | X86_64MCAsmInfoDarwin |
| struct | X86AddressMode |
| X86AddressMode - This struct holds a generalized full x86 address mode. More... | |
| class | X86AsmPrinter |
| class | X86ATTInstPrinter |
| class | X86CallLowering |
| class | X86ELFMCAsmInfo |
| class | X86ELFTargetObjectFile |
| This implemenatation is used for X86 ELF targets that don't have a further specialization. More... | |
| class | X86FrameLowering |
| class | X86FreeBSDTargetObjectFile |
| X86FreeBSDTargetObjectFile - This implementation is used for FreeBSD on x86 and x86-64. More... | |
| class | X86FuchsiaTargetObjectFile |
| This implementation is used for Fuchsia on x86-64. More... | |
| class | X86GenRegisterBankInfo |
| class | X86InstPrinterCommon |
| struct | X86InstrFMA3Group |
| This class is used to group {132, 213, 231} forms of FMA opcodes together. More... | |
| class | X86InstrInfo |
| class | X86IntelInstPrinter |
| class | X86LegalizerInfo |
| This class provides the information for the target register banks. More... | |
| class | X86LinuxNaClTargetObjectFile |
| X86LinuxNaClTargetObjectFile - This implementation is used for linux and Native Client on x86 and x86-64. More... | |
| class | X86MachineFunctionInfo |
| X86MachineFunctionInfo - This class is derived from MachineFunction and contains private X86 target-specific information for each MachineFunction. More... | |
| class | X86MaskedGatherScatterSDNode |
| class | X86MaskedGatherSDNode |
| class | X86MaskedScatterSDNode |
| class | X86MaskedStoreSDNode |
| class | X86MCAsmInfoDarwin |
| class | X86MCAsmInfoGNUCOFF |
| class | X86MCAsmInfoMicrosoft |
| class | X86MCExpr |
| struct | X86MemoryFoldTableEntry |
| struct | X86Operand |
| X86Operand - Instances of this class represent a parsed X86 machine instruction. More... | |
| class | X86RegisterBankInfo |
| This class provides the information for the target register banks. More... | |
| class | X86RegisterInfo |
| class | X86SelectionDAGInfo |
| class | X86SolarisTargetObjectFile |
| This implementation is used for Solaris on x86/x86-64. More... | |
| class | X86StoreSDNode |
| class | X86Subtarget |
| class | X86TargetLowering |
| class | X86TargetMachine |
| class | X86TargetStreamer |
| X86 target streamer implementing x86-only assembly directives. More... | |
| class | X86TTIImpl |
| class | XCoreFrameLowering |
| class | XCoreFunctionInfo |
| XCoreFunctionInfo - This class is derived from MachineFunction private XCore target-specific information for each MachineFunction. More... | |
| class | XCoreInstPrinter |
| class | XCoreInstrInfo |
| class | XCoreMCAsmInfo |
| class | XCoreMCInstLower |
| This class is used to lower an MachineInstr into an MCInst. More... | |
| struct | XCoreRegisterInfo |
| class | XCoreSelectionDAGInfo |
| class | XCoreSubtarget |
| class | XCoreTargetLowering |
| class | XCoreTargetMachine |
| class | XCoreTargetObjectFile |
| class | XCoreTargetStreamer |
| class | XCoreTTIImpl |
| class | ZExtInst |
| This class represents zero extension of integer types. More... | |
| class | ZExtOperator |
Functions | |
| template<typename T > | |
| bool | any_isa (const Any &Value) |
| template<class T > | |
| T | any_cast (const Any &Value) |
| template<class T > | |
| T | any_cast (Any &Value) |
| template<class T > | |
| T | any_cast (Any &&Value) |
| template<class T > | |
| const T * | any_cast (const Any *Value) |
| template<class T > | |
| T * | any_cast (Any *Value) |
| hash_code | hash_value (const APFloat &Arg) |
| See friend declarations above. More... | |
| APFloat | scalbn (APFloat X, int Exp, APFloat::roundingMode RM) |
| APFloat | frexp (const APFloat &X, int &Exp, APFloat::roundingMode RM) |
| Equivalent of C standard library function. More... | |
| APFloat | abs (APFloat X) |
| Returns the absolute value of the argument. More... | |
| APFloat | neg (APFloat X) |
| Returns the negated value of the argument. More... | |
| LLVM_READONLY APFloat | minnum (const APFloat &A, const APFloat &B) |
| Implements IEEE minNum semantics. More... | |
| LLVM_READONLY APFloat | maxnum (const APFloat &A, const APFloat &B) |
| Implements IEEE maxNum semantics. More... | |
| LLVM_READONLY APFloat | minimum (const APFloat &A, const APFloat &B) |
| Implements IEEE 754-2018 minimum semantics. More... | |
| LLVM_READONLY APFloat | maximum (const APFloat &A, const APFloat &B) |
| Implements IEEE 754-2018 maximum semantics. More... | |
| APInt | operator- (APInt) |
| bool | operator== (uint64_t V1, const APInt &V2) |
| bool | operator!= (uint64_t V1, const APInt &V2) |
| APInt | operator~ (APInt v) |
| Unary bitwise complement operator. More... | |
| APInt | operator & (APInt a, const APInt &b) |
| APInt | operator & (const APInt &a, APInt &&b) |
| APInt | operator & (APInt a, uint64_t RHS) |
| APInt | operator & (uint64_t LHS, APInt b) |
| APInt | operator| (APInt a, const APInt &b) |
| APInt | operator| (const APInt &a, APInt &&b) |
| APInt | operator| (APInt a, uint64_t RHS) |
| APInt | operator| (uint64_t LHS, APInt b) |
| APInt | operator^ (APInt a, const APInt &b) |
| APInt | operator^ (const APInt &a, APInt &&b) |
| APInt | operator^ (APInt a, uint64_t RHS) |
| APInt | operator^ (uint64_t LHS, APInt b) |
| raw_ostream & | operator<< (raw_ostream &OS, const APInt &I) |
| APInt | operator+ (APInt a, const APInt &b) |
| APInt | operator+ (const APInt &a, APInt &&b) |
| APInt | operator+ (APInt a, uint64_t RHS) |
| APInt | operator+ (uint64_t LHS, APInt b) |
| APInt | operator- (APInt a, const APInt &b) |
| APInt | operator- (const APInt &a, APInt &&b) |
| APInt | operator- (APInt a, uint64_t RHS) |
| APInt | operator- (uint64_t LHS, APInt b) |
| APInt | operator* (APInt a, uint64_t RHS) |
| APInt | operator* (uint64_t LHS, APInt b) |
| hash_code | hash_value (const APInt &Arg) |
| void | StoreIntToMemory (const APInt &IntVal, uint8_t *Dst, unsigned StoreBytes) |
| StoreIntToMemory - Fills the StoreBytes bytes of memory starting from Dst with the integer held in IntVal. More... | |
| void | LoadIntFromMemory (APInt &IntVal, uint8_t *Src, unsigned LoadBytes) |
| LoadIntFromMemory - Loads the integer stored in the LoadBytes bytes starting from Src into IntVal, which is assumed to be wide enough and to hold zero. More... | |
| bool | operator== (int64_t V1, const APSInt &V2) |
| bool | operator!= (int64_t V1, const APSInt &V2) |
| bool | operator<= (int64_t V1, const APSInt &V2) |
| bool | operator>= (int64_t V1, const APSInt &V2) |
| bool | operator< (int64_t V1, const APSInt &V2) |
| bool | operator> (int64_t V1, const APSInt &V2) |
| raw_ostream & | operator<< (raw_ostream &OS, const APSInt &I) |
| template<typename T > | |
| hash_code | hash_value (ArrayRef< T > S) |
| template<typename To , typename From , typename = typename std::enable_if<sizeof(To) == sizeof(From)>::type> | |
| To | bit_cast (const From &from) noexcept |
| LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE () | |
| size_t | capacity_in_bytes (const BitVector &X) |
| template<class T > | |
| bf_iterator< T > | bf_begin (const T &G) |
| template<class T > | |
| bf_iterator< T > | bf_end (const T &G) |
| template<class T > | |
| iterator_range< bf_iterator< T > > | breadth_first (const T &G) |
| template<typename DerivedT , typename KeyT , typename ValueT , typename KeyInfoT , typename BucketT > | |
| bool | operator== (const DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT > &LHS, const DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT > &RHS) |
| Equality comparison for DenseMap. More... | |
| template<typename DerivedT , typename KeyT , typename ValueT , typename KeyInfoT , typename BucketT > | |
| bool | operator!= (const DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT > &LHS, const DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT > &RHS) |
| Inequality comparison for DenseMap. More... | |
| template<typename KeyT , typename ValueT , typename KeyInfoT > | |
| size_t | capacity_in_bytes (const DenseMap< KeyT, ValueT, KeyInfoT > &X) |
| template<class T > | |
| df_iterator< T > | df_begin (const T &G) |
| template<class T > | |
| df_iterator< T > | df_end (const T &G) |
| template<class T > | |
| iterator_range< df_iterator< T > > | depth_first (const T &G) |
| template<class T , class SetTy > | |
| df_ext_iterator< T, SetTy > | df_ext_begin (const T &G, SetTy &S) |
| template<class T , class SetTy > | |
| df_ext_iterator< T, SetTy > | df_ext_end (const T &G, SetTy &S) |
| template<class T , class SetTy > | |
| iterator_range< df_ext_iterator< T, SetTy > > | depth_first_ext (const T &G, SetTy &S) |
| template<class T > | |
| idf_iterator< T > | idf_begin (const T &G) |
| template<class T > | |
| idf_iterator< T > | idf_end (const T &G) |
| template<class T > | |
| iterator_range< idf_iterator< T > > | inverse_depth_first (const T &G) |
| template<class T , class SetTy > | |
| idf_ext_iterator< T, SetTy > | idf_ext_begin (const T &G, SetTy &S) |
| template<class T , class SetTy > | |
| idf_ext_iterator< T, SetTy > | idf_ext_end (const T &G, SetTy &S) |
| template<class T , class SetTy > | |
| iterator_range< idf_ext_iterator< T, SetTy > > | inverse_depth_first_ext (const T &G, SetTy &S) |
| template<typename T > | |
| unsigned | ComputeEditDistance (ArrayRef< T > FromArray, ArrayRef< T > ToArray, bool AllowReplacements=true, unsigned MaxEditDistance=0) |
| Determine the edit distance between two sequences. More... | |
| template<typename Underlying > | |
| fallible_iterator< Underlying > | make_fallible_itr (Underlying I, Error &Err) |
| Convenience wrapper to make a fallible_iterator value from an instance of an underlying iterator and an Error reference. More... | |
| template<typename Underlying > | |
| fallible_iterator< Underlying > | make_fallible_end (Underlying E) |
| Convenience wrapper to make a fallible_iterator end value from an instance of an underlying iterator. More... | |
| template<typename Underlying > | |
| iterator_range< fallible_iterator< Underlying > > | make_fallible_range (Underlying I, Underlying E, Error &Err) |
| DenormalMode | parseDenormalFPAttribute (StringRef Str) |
| Parse the expected names from the denormal-fp-math attribute. More... | |
| StringRef | denormalModeName (DenormalMode Mode) |
| Return the name used for the denormal handling mode used by the the expected names from the denormal-fp-math attribute. More... | |
| template<class GraphType > | |
| iterator_range< typename GraphTraits< GraphType >::nodes_iterator > | nodes (const GraphType &G) |
| template<class GraphType > | |
| iterator_range< typename GraphTraits< Inverse< GraphType > >::nodes_iterator > | inverse_nodes (const GraphType &G) |
| template<class GraphType > | |
| iterator_range< typename GraphTraits< GraphType >::ChildIteratorType > | children (const typename GraphTraits< GraphType >::NodeRef &G) |
| template<class GraphType > | |
| iterator_range< typename GraphTraits< Inverse< GraphType > >::ChildIteratorType > | inverse_children (const typename GraphTraits< GraphType >::NodeRef &G) |
| template<class GraphType > | |
| iterator_range< typename GraphTraits< GraphType >::ChildEdgeIteratorType > | children_edges (const typename GraphTraits< GraphType >::NodeRef &G) |
| template<typename T > | |
| std::enable_if< is_integral_or_enum< T >::value, hash_code >::type | hash_value (T value) |
| Compute a hash_code for any integer value. More... | |
| template<typename T > | |
| hash_code | hash_value (const T *ptr) |
| Compute a hash_code for a pointer's address. More... | |
| template<typename T , typename U > | |
| hash_code | hash_value (const std::pair< T, U > &arg) |
| Compute a hash_code for a pair of objects. More... | |
| template<typename T > | |
| hash_code | hash_value (const std::basic_string< T > &arg) |
| Compute a hash_code for a standard string. More... | |
| void | set_fixed_execution_hash_seed (uint64_t fixed_value) |
| Override the execution seed with a fixed value. More... | |
| template<typename InputIteratorT > | |
| hash_code | hash_combine_range (InputIteratorT first, InputIteratorT last) |
| Compute a hash_code for a sequence of values. More... | |
| template<typename ... Ts> | |
| hash_code | hash_combine (const Ts &...args) |
| Combine values into a single hash_code. More... | |
| template<class T , class U > | |
| bool | operator== (const IntrusiveRefCntPtr< T > &A, const IntrusiveRefCntPtr< U > &B) |
| template<class T , class U > | |
| bool | operator!= (const IntrusiveRefCntPtr< T > &A, const IntrusiveRefCntPtr< U > &B) |
| template<class T , class U > | |
| bool | operator== (const IntrusiveRefCntPtr< T > &A, U *B) |
| template<class T , class U > | |
| bool | operator!= (const IntrusiveRefCntPtr< T > &A, U *B) |
| template<class T , class U > | |
| bool | operator== (T *A, const IntrusiveRefCntPtr< U > &B) |
| template<class T , class U > | |
| bool | operator!= (T *A, const IntrusiveRefCntPtr< U > &B) |
| template<class T > | |
| bool | operator== (std::nullptr_t A, const IntrusiveRefCntPtr< T > &B) |
| template<class T > | |
| bool | operator== (const IntrusiveRefCntPtr< T > &A, std::nullptr_t B) |
| template<class T > | |
| bool | operator!= (std::nullptr_t A, const IntrusiveRefCntPtr< T > &B) |
| template<class T > | |
| bool | operator!= (const IntrusiveRefCntPtr< T > &A, std::nullptr_t B) |
| template<typename RangeT , typename WrappedIteratorT = decltype(std::begin(std::declval<RangeT>()))> | |
| iterator_range< pointee_iterator< WrappedIteratorT > > | make_pointee_range (RangeT &&Range) |
| template<typename RangeT , typename WrappedIteratorT = decltype(std::begin(std::declval<RangeT>()))> | |
| iterator_range< pointer_iterator< WrappedIteratorT > > | make_pointer_range (RangeT &&Range) |
| template<class T > | |
| iterator_range< T > | make_range (T x, T y) |
| Convenience function for iterating over sub-ranges. More... | |
| template<typename T > | |
| iterator_range< T > | make_range (std::pair< T, T > p) |
| template<typename T , typename U > | |
| bool | operator== (const Optional< T > &X, const Optional< U > &Y) |
| template<typename T , typename U > | |
| bool | operator!= (const Optional< T > &X, const Optional< U > &Y) |
| template<typename T , typename U > | |
| bool | operator< (const Optional< T > &X, const Optional< U > &Y) |
| template<typename T , typename U > | |
| bool | operator<= (const Optional< T > &X, const Optional< U > &Y) |
| template<typename T , typename U > | |
| bool | operator> (const Optional< T > &X, const Optional< U > &Y) |
| template<typename T , typename U > | |
| bool | operator>= (const Optional< T > &X, const Optional< U > &Y) |
| template<typename T > | |
| bool | operator== (const Optional< T > &X, NoneType) |
| template<typename T > | |
| bool | operator== (NoneType, const Optional< T > &X) |
| template<typename T > | |
| bool | operator!= (const Optional< T > &X, NoneType) |
| template<typename T > | |
| bool | operator!= (NoneType, const Optional< T > &X) |
| template<typename T > | |
| bool | operator< (const Optional< T > &X, NoneType) |
| template<typename T > | |
| bool | operator< (NoneType, const Optional< T > &X) |
| template<typename T > | |
| bool | operator<= (const Optional< T > &X, NoneType) |
| template<typename T > | |
| bool | operator<= (NoneType, const Optional< T > &X) |
| template<typename T > | |
| bool | operator> (const Optional< T > &X, NoneType) |
| template<typename T > | |
| bool | operator> (NoneType, const Optional< T > &X) |
| template<typename T > | |
| bool | operator>= (const Optional< T > &X, NoneType) |
| template<typename T > | |
| bool | operator>= (NoneType, const Optional< T > &X) |
| template<typename T > | |
| bool | operator== (const Optional< T > &X, const T &Y) |
| template<typename T > | |
| bool | operator== (const T &X, const Optional< T > &Y) |
| template<typename T > | |
| bool | operator!= (const Optional< T > &X, const T &Y) |
| template<typename T > | |
| bool | operator!= (const T &X, const Optional< T > &Y) |
| template<typename T > | |
| bool | operator< (const Optional< T > &X, const T &Y) |
| template<typename T > | |
| bool | operator< (const T &X, const Optional< T > &Y) |
| template<typename T > | |
| bool | operator<= (const Optional< T > &X, const T &Y) |
| template<typename T > | |
| bool | operator<= (const T &X, const Optional< T > &Y) |
| template<typename T > | |
| bool | operator> (const Optional< T > &X, const T &Y) |
| template<typename T > | |
| bool | operator> (const T &X, const Optional< T > &Y) |
| template<typename T > | |
| bool | operator>= (const Optional< T > &X, const T &Y) |
| template<typename T > | |
| bool | operator>= (const T &X, const Optional< T > &Y) |
| raw_ostream & | operator<< (raw_ostream &OS, NoneType) |
| template<typename T , typename = decltype(std::declval<raw_ostream &>() << std::declval<const T &>())> | |
| raw_ostream & | operator<< (raw_ostream &OS, const Optional< T > &O) |
| template<typename ... PTs> | |
| bool | operator== (PointerUnion< PTs... > lhs, PointerUnion< PTs... > rhs) |
| template<typename ... PTs> | |
| bool | operator!= (PointerUnion< PTs... > lhs, PointerUnion< PTs... > rhs) |
| template<typename ... PTs> | |
| bool | operator< (PointerUnion< PTs... > lhs, PointerUnion< PTs... > rhs) |
| template<class T > | |
| po_iterator< T > | po_begin (const T &G) |
| template<class T > | |
| po_iterator< T > | po_end (const T &G) |
| template<class T > | |
| iterator_range< po_iterator< T > > | post_order (const T &G) |
| template<class T , class SetType > | |
| po_ext_iterator< T, SetType > | po_ext_begin (T G, SetType &S) |
| template<class T , class SetType > | |
| po_ext_iterator< T, SetType > | po_ext_end (T G, SetType &S) |
| template<class T , class SetType > | |
| iterator_range< po_ext_iterator< T, SetType > > | post_order_ext (const T &G, SetType &S) |
| template<class T > | |
| ipo_iterator< T > | ipo_begin (const T &G) |
| template<class T > | |
| ipo_iterator< T > | ipo_end (const T &G) |
| template<class T > | |
| iterator_range< ipo_iterator< T > > | inverse_post_order (const T &G) |
| template<class T , class SetType > | |
| ipo_ext_iterator< T, SetType > | ipo_ext_begin (const T &G, SetType &S) |
| template<class T , class SetType > | |
| ipo_ext_iterator< T, SetType > | ipo_ext_end (const T &G, SetType &S) |
| template<class T , class SetType > | |
| iterator_range< ipo_ext_iterator< T, SetType > > | inverse_post_order_ext (const T &G, SetType &S) |
| template<class T > | |
| scc_iterator< T > | scc_begin (const T &G) |
| Construct the begin iterator for a deduced graph type T. More... | |
| template<class T > | |
| scc_iterator< T > | scc_end (const T &G) |
| Construct the end iterator for a deduced graph type T. More... | |
| template<typename Callable > | |
| LLVM_NODISCARD detail::scope_exit< typename std::decay< Callable >::type > | make_scope_exit (Callable &&F) |
| template<typename ValueT > | |
| iterator_range< detail::value_sequence_iterator< ValueT > > | seq (ValueT Begin, ValueT End) |
| template<class S1Ty , class S2Ty > | |
| bool | set_union (S1Ty &S1, const S2Ty &S2) |
| set_union(A, B) - Compute A := A u B, return whether A changed. More... | |
| template<class S1Ty , class S2Ty > | |
| void | set_intersect (S1Ty &S1, const S2Ty &S2) |
| set_intersect(A, B) - Compute A := A ^ B Identical to set_intersection, except that it works on set<>'s and is nicer to use. More... | |
| template<class S1Ty , class S2Ty > | |
| S1Ty | set_difference (const S1Ty &S1, const S2Ty &S2) |
| set_difference(A, B) - Return A - B More... | |
| template<class S1Ty , class S2Ty > | |
| void | set_subtract (S1Ty &S1, const S2Ty &S2) |
| set_subtract(A, B) - Compute A := A - B More... | |
| SmallBitVector | operator & (const SmallBitVector &LHS, const SmallBitVector &RHS) |
| SmallBitVector | operator| (const SmallBitVector &LHS, const SmallBitVector &RHS) |
| SmallBitVector | operator^ (const SmallBitVector &LHS, const SmallBitVector &RHS) |
| template<typename PtrType > | |
| bool | operator== (const SmallPtrSetImpl< PtrType > &LHS, const SmallPtrSetImpl< PtrType > &RHS) |
| Equality comparison for SmallPtrSet. More... | |
| template<typename PtrType > | |
| bool | operator!= (const SmallPtrSetImpl< PtrType > &LHS, const SmallPtrSetImpl< PtrType > &RHS) |
| Inequality comparison for SmallPtrSet. More... | |
| template<typename T , unsigned LN, unsigned RN, typename C > | |
| bool | operator== (const SmallSet< T, LN, C > &LHS, const SmallSet< T, RN, C > &RHS) |
| Equality comparison for SmallSet. More... | |
| template<typename T , unsigned LN, unsigned RN, typename C > | |
| bool | operator!= (const SmallSet< T, LN, C > &LHS, const SmallSet< T, RN, C > &RHS) |
| Inequality comparison for SmallSet. More... | |
| template<typename T , unsigned N> | |
| size_t | capacity_in_bytes (const SmallVector< T, N > &X) |
| template<unsigned Size, typename R > | |
| SmallVector< typename std::remove_const< typename std::remove_reference< decltype(*std::begin(std::declval< R & >)))>::type >::type, Size > | to_vector (R &&Range) |
| Given a range of type R, iterate the entire range and return a SmallVector with elements of the vector. More... | |
| template<unsigned ElementSize> | |
| bool | operator|= (SparseBitVector< ElementSize > &LHS, const SparseBitVector< ElementSize > *RHS) |
| template<unsigned ElementSize> | |
| bool | operator|= (SparseBitVector< ElementSize > *LHS, const SparseBitVector< ElementSize > &RHS) |
| template<unsigned ElementSize> | |
| bool | operator&= (SparseBitVector< ElementSize > *LHS, const SparseBitVector< ElementSize > &RHS) |
| template<unsigned ElementSize> | |
| bool | operator&= (SparseBitVector< ElementSize > &LHS, const SparseBitVector< ElementSize > *RHS) |
| template<unsigned ElementSize> | |
| SparseBitVector< ElementSize > | operator| (const SparseBitVector< ElementSize > &LHS, const SparseBitVector< ElementSize > &RHS) |
| template<unsigned ElementSize> | |
| SparseBitVector< ElementSize > | operator & (const SparseBitVector< ElementSize > &LHS, const SparseBitVector< ElementSize > &RHS) |
| template<unsigned ElementSize> | |
| SparseBitVector< ElementSize > | operator- (const SparseBitVector< ElementSize > &LHS, const SparseBitVector< ElementSize > &RHS) |
| template<unsigned ElementSize> | |
| void | dump (const SparseBitVector< ElementSize > &LHS, raw_ostream &out) |
| void | EnableStatistics (bool DoPrintOnExit=true) |
| Enable the collection and printing of statistics. More... | |
| bool | AreStatisticsEnabled () |
| Check if statistics are enabled. More... | |
| std::unique_ptr< raw_fd_ostream > | CreateInfoOutputFile () |
| Return a file stream to print our output on. More... | |
| void | PrintStatistics () |
| Print statistics to the file returned by CreateInfoOutputFile(). More... | |
| void | PrintStatistics (raw_ostream &OS) |
| Print statistics to the given output stream. More... | |
| void | PrintStatisticsJSON (raw_ostream &OS) |
| Print statistics in JSON format. More... | |
| const std::vector< std::pair< StringRef, unsigned > > | GetStatistics () |
| Get the statistics. More... | |
| void | ResetStatistics () |
| Reset the statistics. More... | |
| template<class T > | |
| void | deleter (T *Ptr) |
| template<typename ContainerTy > | |
| auto | adl_begin (ContainerTy &&container) -> decltype(adl_detail::adl_begin(std::forward< ContainerTy >(container))) |
| template<typename ContainerTy > | |
| auto | adl_end (ContainerTy &&container) -> decltype(adl_detail::adl_end(std::forward< ContainerTy >(container))) |
| template<typename T > | |
| void | adl_swap (T &&lhs, T &&rhs) noexcept(noexcept(adl_detail::adl_swap(std::declval< T >(), std::declval< T >()))) |
| template<typename T > | |
| constexpr bool | empty (const T &RangeOrContainer) |
Test whether RangeOrContainer is empty. Similar to C++17 std::empty. More... | |
| template<typename T > | |
| auto | drop_begin (T &&RangeOrContainer, size_t N) -> iterator_range< decltype(adl_begin(RangeOrContainer))> |
Return a range covering RangeOrContainer with the first N elements excluded. More... | |
| template<class ItTy , class FuncTy > | |
| mapped_iterator< ItTy, FuncTy > | map_iterator (ItTy I, FuncTy F) |
| template<class ContainerTy , class FuncTy > | |
| auto | map_range (ContainerTy &&C, FuncTy F) -> decltype(make_range(map_iterator(C.begin(), F), map_iterator(C.end(), F))) |
| template<typename ContainerTy > | |
| auto | reverse (ContainerTy &&C, typename std::enable_if< has_rbegin< ContainerTy >::value >::type *=nullptr) -> decltype(make_range(C.rbegin(), C.rend())) |
| template<typename IteratorTy > | |
| std::reverse_iterator< IteratorTy > | make_reverse_iterator (IteratorTy It) |
| template<typename ContainerTy > | |
| auto | reverse (ContainerTy &&C, typename std::enable_if<!has_rbegin< ContainerTy >::value >::type *=nullptr) -> decltype(make_range(llvm::make_reverse_iterator(std::end(C)), llvm::make_reverse_iterator(std::begin(C)))) |
| template<typename RangeT , typename PredicateT > | |
| iterator_range< filter_iterator< detail::IterOfRange< RangeT >, PredicateT > > | make_filter_range (RangeT &&Range, PredicateT Pred) |
| Convenience function that takes a range of elements and a predicate, and return a new filter_iterator range. More... | |
| template<typename RangeT > | |
| iterator_range< early_inc_iterator_impl< detail::IterOfRange< RangeT > > > | make_early_inc_range (RangeT &&Range) |
| Make a range that does early increment to allow mutation of the underlying range without disrupting iteration. More... | |
| template<typename R , typename UnaryPredicate > | |
| bool | all_of (R &&Range, UnaryPredicate P) |
| Provide wrappers to std::all_of which take ranges instead of having to pass begin/end explicitly. More... | |
| template<typename R , typename UnaryPredicate > | |
| bool | any_of (R &&Range, UnaryPredicate P) |
| Provide wrappers to std::any_of which take ranges instead of having to pass begin/end explicitly. More... | |
| template<typename T , typename U , typename... Args> | |
| detail::zippy< detail::zip_shortest, T, U, Args... > | zip (T &&t, U &&u, Args &&... args) |
| zip iterator for two or more iteratable types. More... | |
| template<typename T , typename U , typename... Args> | |
| detail::zippy< detail::zip_first, T, U, Args... > | zip_first (T &&t, U &&u, Args &&... args) |
| zip iterator that, for the sake of efficiency, assumes the first iteratee to be the shortest. More... | |
| template<typename T , typename U , typename... Args> | |
| detail::zip_longest_range< T, U, Args... > | zip_longest (T &&t, U &&u, Args &&... args) |
| Iterate over two or more iterators at the same time. More... | |
| template<typename ValueT , typename... RangeTs> | |
| detail::concat_range< ValueT, RangeTs... > | concat (RangeTs &&... Ranges) |
| Concatenated range across two or more ranges. More... | |
| template<class T , std::size_t N> | |
| constexpr size_t | array_lengthof (T(&)[N]) |
| Find the length of an array. More... | |
| template<typename T > | |
| int | array_pod_sort_comparator (const void *P1, const void *P2) |
| Adapt std::less<T> for array_pod_sort. More... | |
| template<class IteratorTy > | |
| void | array_pod_sort (IteratorTy Start, IteratorTy End) |
| array_pod_sort - This sorts an array with the specified start and end extent. More... | |
| template<class IteratorTy > | |
| void | array_pod_sort (IteratorTy Start, IteratorTy End, int(*Compare)(const typename std::iterator_traits< IteratorTy >::value_type *, const typename std::iterator_traits< IteratorTy >::value_type *)) |
| template<typename IteratorTy > | |
| void | sort (IteratorTy Start, IteratorTy End) |
| template<typename Container > | |
| void | sort (Container &&C) |
| template<typename IteratorTy , typename Compare > | |
| void | sort (IteratorTy Start, IteratorTy End, Compare Comp) |
| template<typename Container , typename Compare > | |
| void | sort (Container &&C, Compare Comp) |
| template<typename Container > | |
| void | DeleteContainerPointers (Container &C) |
| For a container of pointers, deletes the pointers and then clears the container. More... | |
| template<typename Container > | |
| void | DeleteContainerSeconds (Container &C) |
| In a container of pairs (usually a map) whose second element is a pointer, deletes the second elements and then clears the container. More... | |
| template<typename R > | |
| auto | size (R &&Range, typename std::enable_if< std::is_same< typename std::iterator_traits< decltype(Range.begin())>::iterator_category, std::random_access_iterator_tag >::value, void >::type *=nullptr) -> decltype(std::distance(Range.begin(), Range.end())) |
| Get the size of a range. More... | |
| template<typename R , typename UnaryPredicate > | |
| UnaryPredicate | for_each (R &&Range, UnaryPredicate P) |
| Provide wrappers to std::for_each which take ranges instead of having to pass begin/end explicitly. More... | |
| template<typename R , typename UnaryPredicate > | |
| bool | none_of (R &&Range, UnaryPredicate P) |
| Provide wrappers to std::none_of which take ranges instead of having to pass begin/end explicitly. More... | |
| template<typename R , typename T > | |
| auto | find (R &&Range, const T &Val) -> decltype(adl_begin(Range)) |
| Provide wrappers to std::find which take ranges instead of having to pass begin/end explicitly. More... | |
| template<typename R , typename UnaryPredicate > | |
| auto | find_if (R &&Range, UnaryPredicate P) -> decltype(adl_begin(Range)) |
| Provide wrappers to std::find_if which take ranges instead of having to pass begin/end explicitly. More... | |
| template<typename R , typename UnaryPredicate > | |
| auto | find_if_not (R &&Range, UnaryPredicate P) -> decltype(adl_begin(Range)) |
| template<typename R , typename UnaryPredicate > | |
| auto | remove_if (R &&Range, UnaryPredicate P) -> decltype(adl_begin(Range)) |
| Provide wrappers to std::remove_if which take ranges instead of having to pass begin/end explicitly. More... | |
| template<typename R , typename OutputIt , typename UnaryPredicate > | |
| OutputIt | copy_if (R &&Range, OutputIt Out, UnaryPredicate P) |
| Provide wrappers to std::copy_if which take ranges instead of having to pass begin/end explicitly. More... | |
| template<typename R , typename OutputIt > | |
| OutputIt | copy (R &&Range, OutputIt Out) |
| template<typename R , typename E > | |
| bool | is_contained (R &&Range, const E &Element) |
| Wrapper function around std::find to detect if an element exists in a container. More... | |
| template<typename R , typename E > | |
| auto | count (R &&Range, const E &Element) -> typename std::iterator_traits< decltype(adl_begin(Range))>::difference_type |
Wrapper function around std::count to count the number of times an element Element occurs in the given range Range. More... | |
| template<typename R , typename UnaryPredicate > | |
| auto | count_if (R &&Range, UnaryPredicate P) -> typename std::iterator_traits< decltype(adl_begin(Range))>::difference_type |
| Wrapper function around std::count_if to count the number of times an element satisfying a given predicate occurs in a range. More... | |
| template<typename R , typename OutputIt , typename UnaryPredicate > | |
| OutputIt | transform (R &&Range, OutputIt d_first, UnaryPredicate P) |
| Wrapper function around std::transform to apply a function to a range and store the result elsewhere. More... | |
| template<typename R , typename UnaryPredicate > | |
| auto | partition (R &&Range, UnaryPredicate P) -> decltype(adl_begin(Range)) |
| Provide wrappers to std::partition which take ranges instead of having to pass begin/end explicitly. More... | |
| template<typename R , typename T > | |
| auto | lower_bound (R &&Range, T &&Value) -> decltype(adl_begin(Range)) |
| Provide wrappers to std::lower_bound which take ranges instead of having to pass begin/end explicitly. More... | |
| template<typename R , typename T , typename Compare > | |
| auto | lower_bound (R &&Range, T &&Value, Compare C) -> decltype(adl_begin(Range)) |
| template<typename R , typename T > | |
| auto | upper_bound (R &&Range, T &&Value) -> decltype(adl_begin(Range)) |
| Provide wrappers to std::upper_bound which take ranges instead of having to pass begin/end explicitly. More... | |
| template<typename R , typename T , typename Compare > | |
| auto | upper_bound (R &&Range, T &&Value, Compare C) -> decltype(adl_begin(Range)) |
| template<typename R > | |
| void | stable_sort (R &&Range) |
| template<typename R , typename Compare > | |
| void | stable_sort (R &&Range, Compare C) |
| template<typename R , typename Predicate , typename Val = decltype(*adl_begin(std::declval<R>()))> | |
| auto | partition_point (R &&Range, Predicate P) -> decltype(adl_begin(Range)) |
| Binary search for the first iterator in a range where a predicate is false. More... | |
| template<typename R > | |
| bool | is_splat (R &&Range) |
| Wrapper function around std::equal to detect if all elements in a container are same. More... | |
| template<typename Container , typename UnaryPredicate > | |
| void | erase_if (Container &C, UnaryPredicate P) |
Provide a container algorithm similar to C++ Library Fundamentals v2's erase_if which is equivalent to: More... | |
| template<typename Container , typename RandomAccessIterator > | |
| void | replace (Container &Cont, typename Container::iterator ContIt, typename Container::iterator ContEnd, RandomAccessIterator ValIt, RandomAccessIterator ValEnd) |
| Given a sequence container Cont, replace the range [ContIt, ContEnd) with the range [ValIt, ValEnd) (which is not from the same container). More... | |
| template<typename Container , typename Range = std::initializer_list< typename Container::value_type>> | |
| void | replace (Container &Cont, typename Container::iterator ContIt, typename Container::iterator ContEnd, Range R) |
| Given a sequence container Cont, replace the range [ContIt, ContEnd) with the range R. More... | |
| template<typename R > | |
| detail::enumerator< R > | enumerate (R &&TheRange) |
| Given an input range, returns a new range whose values are are pair (A,B) such that A is the 0-based index of the item in the sequence, and B is the value from the original sequence. More... | |
| template<typename F , typename Tuple > | |
| auto | apply_tuple (F &&f, Tuple &&t) -> decltype(detail::apply_tuple_impl(std::forward< F >(f), std::forward< Tuple >(t), std::make_index_sequence< std::tuple_size< typename std::decay< Tuple >::type >::value > |
| Given an input tuple (a1, a2, ..., an), pass the arguments of the tuple variadically to f as if by calling f(a1, a2, ..., an) and return the result. More... | |
| template<typename IterTy > | |
| bool | hasNItems (IterTy &&Begin, IterTy &&End, unsigned N, typename std::enable_if< !std::is_same< typename std::iterator_traits< typename std::remove_reference< decltype(Begin)>::type >::iterator_category, std::random_access_iterator_tag >::value, void >::type *=nullptr) |
| Return true if the sequence [Begin, End) has exactly N items. More... | |
| template<typename IterTy > | |
| bool | hasNItemsOrMore (IterTy &&Begin, IterTy &&End, unsigned N, typename std::enable_if< !std::is_same< typename std::iterator_traits< typename std::remove_reference< decltype(Begin)>::type >::iterator_category, std::random_access_iterator_tag >::value, void >::type *=nullptr) |
| Return true if the sequence [Begin, End) has N or more items. More... | |
| template<class Ptr > | |
| auto | to_address (const Ptr &P) -> decltype(P.operator->()) |
| Returns a raw pointer that represents the same address as the argument. More... | |
| template<class T > | |
| constexpr T * | to_address (T *P) |
| char | hexdigit (unsigned X, bool LowerCase=false) |
hexdigit - Return the hexadecimal character for the given number X (which should be less than 16). More... | |
| std::vector< StringRef > | toStringRefArray (const char *const *Strings) |
| Given an array of c-style strings terminated by a null pointer, construct a vector of StringRefs representing the same strings without the terminating null string. More... | |
| StringRef | toStringRef (bool B) |
| Construct a string ref from a boolean. More... | |
| StringRef | toStringRef (ArrayRef< uint8_t > Input) |
| Construct a string ref from an array ref of unsigned chars. More... | |
| ArrayRef< uint8_t > | arrayRefFromStringRef (StringRef Input) |
| Construct a string ref from an array ref of unsigned chars. More... | |
| unsigned | hexDigitValue (char C) |
Interpret the given character C as a hexadecimal digit and return its value. More... | |
| bool | isDigit (char C) |
Checks if character C is one of the 10 decimal digits. More... | |
| bool | isHexDigit (char C) |
Checks if character C is a hexadecimal numeric character. More... | |
| bool | isAlpha (char C) |
Checks if character C is a valid letter as classified by "C" locale. More... | |
| bool | isAlnum (char C) |
Checks whether character C is either a decimal digit or an uppercase or lowercase letter as classified by "C" locale. More... | |
| bool | isASCII (char C) |
Checks whether character C is valid ASCII (high bit is zero). More... | |
| bool | isASCII (llvm::StringRef S) |
| Checks whether all characters in S are ASCII. More... | |
| bool | isPrint (char C) |
Checks whether character C is printable. More... | |
| char | toLower (char x) |
Returns the corresponding lowercase character if x is uppercase. More... | |
| char | toUpper (char x) |
Returns the corresponding uppercase character if x is lowercase. More... | |
| std::string | utohexstr (uint64_t X, bool LowerCase=false) |
| std::string | toHex (StringRef Input, bool LowerCase=false) |
Convert buffer Input to its hexadecimal representation. More... | |
| std::string | toHex (ArrayRef< uint8_t > Input, bool LowerCase=false) |
| uint8_t | hexFromNibbles (char MSB, char LSB) |
| std::string | fromHex (StringRef Input) |
Convert hexadecimal string Input to its binary representation. More... | |
| template<typename N > | |
| bool | to_integer (StringRef S, N &Num, unsigned Base=0) |
Convert the string S to an integer of the specified type using the radix Base. More... | |
| bool | to_float (const Twine &T, float &Num) |
| bool | to_float (const Twine &T, double &Num) |
| bool | to_float (const Twine &T, long double &Num) |
| std::string | utostr (uint64_t X, bool isNeg=false) |
| std::string | itostr (int64_t X) |
| StringRef::size_type | StrInStrNoCase (StringRef s1, StringRef s2) |
| StrInStrNoCase - Portable version of strcasestr. More... | |
| std::pair< StringRef, StringRef > | getToken (StringRef Source, StringRef Delimiters=" \\\) |
| getToken - This function extracts one token from source, ignoring any leading characters that appear in the Delimiters string, and ending the token at any of the characters that appear in the Delimiters string. More... | |
| void | SplitString (StringRef Source, SmallVectorImpl< StringRef > &OutFragments, StringRef Delimiters=" \\\) |
| SplitString - Split up the specified string according to the specified delimiters, appending the result fragments to the output list. More... | |
| StringRef | getOrdinalSuffix (unsigned Val) |
| Returns the English suffix for an ordinal integer (-st, -nd, -rd, -th). More... | |
| void | printEscapedString (StringRef Name, raw_ostream &Out) |
| Print each character of the specified string, escaping it if it is not printable or if it is an escape char. More... | |
| void | printHTMLEscaped (StringRef String, raw_ostream &Out) |
| Print each character of the specified string, escaping HTML special characters. More... | |
| void | printLowerCase (StringRef String, raw_ostream &Out) |
| printLowerCase - Print each character as lowercase if it is uppercase. More... | |
| template<typename IteratorT > | |
| std::string | join (IteratorT Begin, IteratorT End, StringRef Separator) |
| Joins the strings in the range [Begin, End), adding Separator between the elements. More... | |
| template<typename Range > | |
| std::string | join (Range &&R, StringRef Separator) |
| Joins the strings in the range [R.begin(), R.end()), adding Separator between the elements. More... | |
| template<typename Sep , typename... Args> | |
| std::string | join_items (Sep Separator, Args &&... Items) |
Joins the strings in the parameter pack Items, adding Separator between the elements. More... | |
| bool | getAsUnsignedInteger (StringRef Str, unsigned Radix, unsigned long long &Result) |
| Helper functions for StringRef::getAsInteger. More... | |
| bool | getAsSignedInteger (StringRef Str, unsigned Radix, long long &Result) |
| bool | consumeUnsignedInteger (StringRef &Str, unsigned Radix, unsigned long long &Result) |
| bool | consumeSignedInteger (StringRef &Str, unsigned Radix, long long &Result) |
| LLVM_NODISCARD hash_code | hash_value (StringRef S) |
| Compute a hash_code for a StringRef. More... | |
| raw_ostream & | operator<< (raw_ostream &OS, AliasResult AR) |
| << operator for AliasResult. More... | |
| LLVM_NODISCARD bool | isNoModRef (const ModRefInfo MRI) |
| LLVM_NODISCARD bool | isModOrRefSet (const ModRefInfo MRI) |
| LLVM_NODISCARD bool | isModAndRefSet (const ModRefInfo MRI) |
| LLVM_NODISCARD bool | isModSet (const ModRefInfo MRI) |
| LLVM_NODISCARD bool | isRefSet (const ModRefInfo MRI) |
| LLVM_NODISCARD bool | isMustSet (const ModRefInfo MRI) |
| LLVM_NODISCARD ModRefInfo | setMod (const ModRefInfo MRI) |
| LLVM_NODISCARD ModRefInfo | setRef (const ModRefInfo MRI) |
| LLVM_NODISCARD ModRefInfo | setMust (const ModRefInfo MRI) |
| LLVM_NODISCARD ModRefInfo | setModAndRef (const ModRefInfo MRI) |
| LLVM_NODISCARD ModRefInfo | clearMod (const ModRefInfo MRI) |
| LLVM_NODISCARD ModRefInfo | clearRef (const ModRefInfo MRI) |
| LLVM_NODISCARD ModRefInfo | clearMust (const ModRefInfo MRI) |
| LLVM_NODISCARD ModRefInfo | unionModRef (const ModRefInfo MRI1, const ModRefInfo MRI2) |
| LLVM_NODISCARD ModRefInfo | intersectModRef (const ModRefInfo MRI1, const ModRefInfo MRI2) |
| LLVM_NODISCARD ModRefInfo | createModRefInfo (const FunctionModRefBehavior FMRB) |
| bool | isNoAliasCall (const Value *V) |
| Return true if this pointer is returned by a noalias function. More... | |
| bool | isNoAliasArgument (const Value *V) |
| Return true if this is an argument with the noalias attribute. More... | |
| bool | isIdentifiedObject (const Value *V) |
| Return true if this pointer refers to a distinct and identifiable object. More... | |
| bool | isIdentifiedFunctionLocal (const Value *V) |
| Return true if V is umabigously identified at the function-level. More... | |
| FunctionPass * | createAAResultsWrapperPass () |
| ImmutablePass * | createExternalAAWrapperPass (std::function< void(Pass &, Function &, AAResults &)> Callback) |
| A wrapper pass around a callback which can be used to populate the AAResults in the AAResultsWrapperPass from an external AA. More... | |
| AAResults | createLegacyPMAAResults (Pass &P, Function &F, BasicAAResult &BAR) |
A helper for the legacy pass manager to create a AAResults object populated to the best of our ability for a particular function when inside of a ModulePass or a CallGraphSCCPass. More... | |
| void | getAAResultsAnalysisUsage (AnalysisUsage &AU) |
A helper for the legacy pass manager to populate AU to add uses to make sure the analyses required by createLegacyPMAAResults are available. More... | |
| FunctionPass * | createAAEvalPass () |
| Create a wrapper of the above for the legacy pass manager. More... | |
| raw_ostream & | operator<< (raw_ostream &OS, const AliasSet &AS) |
| raw_ostream & | operator<< (raw_ostream &OS, const AliasSetTracker &AST) |
| FunctionPass * | createBasicAAWrapperPass () |
| BasicAAResult | createLegacyPMBasicAAResult (Pass &P, Function &F) |
A helper for the legacy pass manager to create a BasicAAResult object populated to the best of our ability for a particular function when inside of a ModulePass or a CallGraphSCCPass. More... | |
| uint32_t | getWeightFromBranchProb (const BranchProbability Prob) |
| void | initializeDummyCGSCCPassPass (PassRegistry &) |
| ModulePass * | createCallGraphViewerPass () |
| ModulePass * | createCallGraphDOTPrinterPass () |
| bool | PointerMayBeCaptured (const Value *V, bool ReturnCaptures, bool StoreCaptures, unsigned MaxUsesToExplore=DefaultMaxUsesToExplore) |
| PointerMayBeCaptured - Return true if this pointer value may be captured by the enclosing function (which is required to exist). More... | |
| bool | PointerMayBeCapturedBefore (const Value *V, bool ReturnCaptures, bool StoreCaptures, const Instruction *I, const DominatorTree *DT, bool IncludeI=false, OrderedBasicBlock *OBB=nullptr, unsigned MaxUsesToExplore=DefaultMaxUsesToExplore) |
| PointerMayBeCapturedBefore - Return true if this pointer value may be captured by the enclosing function (which is required to exist). More... | |
| void | PointerMayBeCaptured (const Value *V, CaptureTracker *Tracker, unsigned MaxUsesToExplore=DefaultMaxUsesToExplore) |
| PointerMayBeCaptured - Visit the value and the values derived from it and find values which appear to be capturing the pointer value. More... | |
| void | FindFunctionBackedges (const Function &F, SmallVectorImpl< std::pair< const BasicBlock *, const BasicBlock *> > &Result) |
| Analyze the specified function to find all of the loop backedges in the function and return them. More... | |
| unsigned | GetSuccessorNumber (const BasicBlock *BB, const BasicBlock *Succ) |
| Search for the specified successor of basic block BB and return its position in the terminator instruction's list of successors. More... | |
| bool | isCriticalEdge (const Instruction *TI, unsigned SuccNum, bool AllowIdenticalEdges=false) |
| Return true if the specified edge is a critical edge. More... | |
| bool | isCriticalEdge (const Instruction *TI, const BasicBlock *Succ, bool AllowIdenticalEdges=false) |
| bool | isPotentiallyReachable (const Instruction *From, const Instruction *To, const SmallPtrSetImpl< BasicBlock *> *ExclusionSet=nullptr, const DominatorTree *DT=nullptr, const LoopInfo *LI=nullptr) |
| Determine whether instruction 'To' is reachable from 'From', without passing through any blocks in ExclusionSet, returning true if uncertain. More... | |
| bool | isPotentiallyReachable (const BasicBlock *From, const BasicBlock *To, const DominatorTree *DT=nullptr, const LoopInfo *LI=nullptr) |
| Determine whether block 'To' is reachable from 'From', returning true if uncertain. More... | |
| bool | isPotentiallyReachableFromMany (SmallVectorImpl< BasicBlock *> &Worklist, BasicBlock *StopBB, const DominatorTree *DT=nullptr, const LoopInfo *LI=nullptr) |
| Determine whether there is at least one path from a block in 'Worklist' to 'StopBB', returning true if uncertain. More... | |
| bool | isPotentiallyReachableFromMany (SmallVectorImpl< BasicBlock *> &Worklist, BasicBlock *StopBB, const SmallPtrSetImpl< BasicBlock *> *ExclusionSet, const DominatorTree *DT=nullptr, const LoopInfo *LI=nullptr) |
| Determine whether there is at least one path from a block in 'Worklist' to 'StopBB' without passing through any blocks in 'ExclusionSet', returning true if uncertain. More... | |
| template<class NodeT , class RPOTraversalT , class LoopInfoT , class GT = GraphTraits<NodeT>> | |
| bool | containsIrreducibleCFG (RPOTraversalT &RPOTraversal, const LoopInfoT &LI) |
Return true if the control flow in RPOTraversal is irreducible. More... | |
| FunctionPass * | createCFGPrinterLegacyPassPass () |
| FunctionPass * | createCFGOnlyPrinterLegacyPassPass () |
| ImmutablePass * | createCFLAndersAAWrapperPass () |
| ImmutablePass * | createCFLSteensAAWrapperPass () |
| template<typename CGSCCPassT > | |
| ModuleToPostOrderCGSCCPassAdaptor< CGSCCPassT > | createModuleToPostOrderCGSCCPassAdaptor (CGSCCPassT Pass) |
| A function to deduce a function pass type and wrap it in the templated adaptor. More... | |
| LazyCallGraph::SCC & | updateCGAndAnalysisManagerForFunctionPass (LazyCallGraph &G, LazyCallGraph::SCC &C, LazyCallGraph::Node &N, CGSCCAnalysisManager &AM, CGSCCUpdateResult &UR) |
| Helper to update the call graph after running a function pass. More... | |
| template<typename FunctionPassT > | |
| CGSCCToFunctionPassAdaptor< FunctionPassT > | createCGSCCToFunctionPassAdaptor (FunctionPassT Pass) |
| A function to deduce a function pass type and wrap it in the templated adaptor. More... | |
| template<typename PassT > | |
| DevirtSCCRepeatedPass< PassT > | createDevirtSCCRepeatedPass (PassT Pass, int MaxIterations) |
| A function to deduce a function pass type and wrap it in the templated adaptor. More... | |
| unsigned | getICmpCode (const ICmpInst *ICI, bool InvertPred=false) |
| Encode a icmp predicate into a three bit mask. More... | |
| Constant * | getPredForICmpCode (unsigned Code, bool Sign, Type *OpTy, CmpInst::Predicate &Pred) |
| This is the complement of getICmpCode. More... | |
| bool | predicatesFoldable (CmpInst::Predicate P1, CmpInst::Predicate P2) |
| Return true if both predicates match sign or if at least one of them is an equality comparison (which is signless). More... | |
| bool | decomposeBitTestICmp (Value *LHS, Value *RHS, CmpInst::Predicate &Pred, Value *&X, APInt &Mask, bool LookThroughTrunc=true) |
| Decompose an icmp into the form ((X & Mask) pred 0) if possible. More... | |
| bool | IsConstantOffsetFromGlobal (Constant *C, GlobalValue *&GV, APInt &Offset, const DataLayout &DL) |
| If this constant is a constant offset from a global, return the global and the constant. More... | |
| Constant * | ConstantFoldInstruction (Instruction *I, const DataLayout &DL, const TargetLibraryInfo *TLI=nullptr) |
| ConstantFoldInstruction - Try to constant fold the specified instruction. More... | |
| Constant * | ConstantFoldConstant (const Constant *C, const DataLayout &DL, const TargetLibraryInfo *TLI=nullptr) |
| ConstantFoldConstant - Attempt to fold the constant using the specified DataLayout. More... | |
| Constant * | ConstantFoldInstOperands (Instruction *I, ArrayRef< Constant *> Ops, const DataLayout &DL, const TargetLibraryInfo *TLI=nullptr) |
| ConstantFoldInstOperands - Attempt to constant fold an instruction with the specified operands. More... | |
| Constant * | ConstantFoldCompareInstOperands (unsigned Predicate, Constant *LHS, Constant *RHS, const DataLayout &DL, const TargetLibraryInfo *TLI=nullptr) |
| ConstantFoldCompareInstOperands - Attempt to constant fold a compare instruction (icmp/fcmp) with the specified operands. More... | |
| Constant * | ConstantFoldUnaryOpOperand (unsigned Opcode, Constant *Op, const DataLayout &DL) |
| Attempt to constant fold a unary operation with the specified operand. More... | |
| Constant * | ConstantFoldBinaryOpOperands (unsigned Opcode, Constant *LHS, Constant *RHS, const DataLayout &DL) |
| Attempt to constant fold a binary operation with the specified operands. More... | |
| Constant * | ConstantFoldSelectInstruction (Constant *Cond, Constant *V1, Constant *V2) |
| Attempt to constant fold a select instruction with the specified operands. More... | |
| Constant * | ConstantFoldCastOperand (unsigned Opcode, Constant *C, Type *DestTy, const DataLayout &DL) |
| Attempt to constant fold a cast with the specified operand. More... | |
| Constant * | ConstantFoldInsertValueInstruction (Constant *Agg, Constant *Val, ArrayRef< unsigned > Idxs) |
| ConstantFoldInsertValueInstruction - Attempt to constant fold an insertvalue instruction with the specified operands and indices. More... | |
| Constant * | ConstantFoldExtractValueInstruction (Constant *Agg, ArrayRef< unsigned > Idxs) |
| Attempt to constant fold an extractvalue instruction with the specified operands and indices. More... | |
| Constant * | ConstantFoldInsertElementInstruction (Constant *Val, Constant *Elt, Constant *Idx) |
| Attempt to constant fold an insertelement instruction with the specified operands and indices. More... | |
| Constant * | ConstantFoldExtractElementInstruction (Constant *Val, Constant *Idx) |
| Attempt to constant fold an extractelement instruction with the specified operands and indices. More... | |
| Constant * | ConstantFoldShuffleVectorInstruction (Constant *V1, Constant *V2, Constant *Mask) |
| Attempt to constant fold a shufflevector instruction with the specified operands and indices. More... | |
| Constant * | ConstantFoldLoadFromConstPtr (Constant *C, Type *Ty, const DataLayout &DL) |
| ConstantFoldLoadFromConstPtr - Return the value that a load from C would produce if it is constant and determinable. More... | |
| Constant * | ConstantFoldLoadThroughGEPConstantExpr (Constant *C, ConstantExpr *CE) |
| ConstantFoldLoadThroughGEPConstantExpr - Given a constant and a getelementptr constantexpr, return the constant value being addressed by the constant expression, or null if something is funny and we can't decide. More... | |
| Constant * | ConstantFoldLoadThroughGEPIndices (Constant *C, ArrayRef< Constant *> Indices) |
| ConstantFoldLoadThroughGEPIndices - Given a constant and getelementptr indices (with an implied zero pointer index that is not in the list), return the constant value being addressed by a virtual load, or null if something is funny and we can't decide. More... | |
| bool | canConstantFoldCallTo (const CallBase *Call, const Function *F) |
| canConstantFoldCallTo - Return true if its even possible to fold a call to the specified function. More... | |
| Constant * | ConstantFoldCall (const CallBase *Call, Function *F, ArrayRef< Constant *> Operands, const TargetLibraryInfo *TLI=nullptr) |
| ConstantFoldCall - Attempt to constant fold a call to the specified function with the specified arguments, returning null if unsuccessful. More... | |
| Constant * | ConstantFoldLoadThroughBitcast (Constant *C, Type *DestTy, const DataLayout &DL) |
| ConstantFoldLoadThroughBitcast - try to cast constant to destination type returning null if unsuccessful. More... | |
| bool | isMathLibCallNoop (const CallBase *Call, const TargetLibraryInfo *TLI) |
| Check whether the given call has no side-effects. More... | |
| raw_ostream & | operator<< (raw_ostream &OS, const DDGNode &N) |
| raw_ostream & | operator<< (raw_ostream &OS, const DDGNode::NodeKind K) |
| raw_ostream & | operator<< (raw_ostream &OS, const DDGEdge &E) |
| raw_ostream & | operator<< (raw_ostream &OS, const DDGEdge::EdgeKind K) |
| raw_ostream & | operator<< (raw_ostream &OS, const DataDependenceGraph &G) |
| FunctionPass * | createDemandedBitsWrapperPass () |
| Create a demanded bits analysis pass. More... | |
| FunctionPass * | createDependenceAnalysisWrapperPass () |
| createDependenceAnalysisPass - This creates an instance of the DependenceAnalysis wrapper pass. More... | |
| FunctionPass * | createDomPrinterPass () |
| FunctionPass * | createDomOnlyPrinterPass () |
| FunctionPass * | createDomViewerPass () |
| FunctionPass * | createDomOnlyViewerPass () |
| FunctionPass * | createPostDomPrinterPass () |
| FunctionPass * | createPostDomOnlyPrinterPass () |
| FunctionPass * | createPostDomViewerPass () |
| FunctionPass * | createPostDomOnlyViewerPass () |
| EHPersonality | classifyEHPersonality (const Value *Pers) |
| See if the given exception handling personality function is one that we understand. More... | |
| StringRef | getEHPersonalityName (EHPersonality Pers) |
| EHPersonality | getDefaultEHPersonality (const Triple &T) |
| bool | isAsynchronousEHPersonality (EHPersonality Pers) |
| Returns true if this personality function catches asynchronous exceptions. More... | |
| bool | isFuncletEHPersonality (EHPersonality Pers) |
| Returns true if this is a personality function that invokes handler funclets (which must return to it). More... | |
| bool | isScopedEHPersonality (EHPersonality Pers) |
| Returns true if this personality uses scope-style EH IR instructions: catchswitch, catchpad/ret, and cleanuppad/ret. More... | |
| bool | isNoOpWithoutInvoke (EHPersonality Pers) |
| Return true if this personality may be safely removed if there are no invoke instructions remaining in the current function. More... | |
| bool | canSimplifyInvokeNoUnwind (const Function *F) |
| DenseMap< BasicBlock *, ColorVector > | colorEHFunclets (Function &F) |
| If an EH funclet personality is in use (see isFuncletEHPersonality), this will recompute which blocks are in which funclet. More... | |
| ModulePass * | createGlobalsAAWrapperPass () |
| bool | isGuard (const User *U) |
Returns true iff U has semantics of a guard expressed in a form of call of llvm.experimental.guard intrinsic. More... | |
| bool | isWidenableBranch (const User *U) |
Returns true iff U is a widenable branch (that is, parseWidenableBranch returns true). More... | |
| bool | isGuardAsWidenableBranch (const User *U) |
Returns true iff U has semantics of a guard expressed in a form of a widenable conditional branch to deopt block. More... | |
| bool | parseWidenableBranch (const User *U, Value *&Condition, Value *&WidenableCondition, BasicBlock *&IfTrueBB, BasicBlock *&IfFalseBB) |
| If U is widenable branch looking like: cond = ... More... | |
| bool | parseWidenableBranch (User *U, Use *&Cond, Use *&WC, BasicBlock *&IfTrueBB, BasicBlock *&IfFalseBB) |
| Analgous to the above, but return the Uses so that that they can be modified. More... | |
| std::vector< Instruction * > | findIndirectCalls (Function &F) |
| InlineParams | getInlineParams () |
| Generate the parameters to tune the inline cost analysis based only on the commandline options. More... | |
| InlineParams | getInlineParams (int Threshold) |
| Generate the parameters to tune the inline cost analysis based on command line options. More... | |
| InlineParams | getInlineParams (unsigned OptLevel, unsigned SizeOptLevel) |
| Generate the parameters to tune the inline cost analysis based on command line options. More... | |
| int | getCallsiteCost (CallBase &Call, const DataLayout &DL) |
| Return the cost associated with a callsite, including parameter passing and the call/return instruction. More... | |
| InlineCost | getInlineCost (CallBase &Call, const InlineParams &Params, TargetTransformInfo &CalleeTTI, std::function< AssumptionCache &(Function &)> &GetAssumptionCache, Optional< function_ref< BlockFrequencyInfo &(Function &)>> GetBFI, ProfileSummaryInfo *PSI, OptimizationRemarkEmitter *ORE=nullptr) |
| Get an InlineCost object representing the cost of inlining this callsite. More... | |
| InlineCost | getInlineCost (CallBase &Call, Function *Callee, const InlineParams &Params, TargetTransformInfo &CalleeTTI, std::function< AssumptionCache &(Function &)> &GetAssumptionCache, Optional< function_ref< BlockFrequencyInfo &(Function &)>> GetBFI, ProfileSummaryInfo *PSI, OptimizationRemarkEmitter *ORE) |
| Get an InlineCost with the callee explicitly specified. More... | |
| InlineResult | isInlineViable (Function &Callee) |
| Minimal filter to detect invalid constructs for inlining. More... | |
| Value * | SimplifyFNegInst (Value *Op, FastMathFlags FMF, const SimplifyQuery &Q) |
| Given operand for an FNeg, fold the result or return null. More... | |
| Value * | SimplifyAddInst (Value *LHS, Value *RHS, bool isNSW, bool isNUW, const SimplifyQuery &Q) |
| Given operands for an Add, fold the result or return null. More... | |
| Value * | SimplifySubInst (Value *LHS, Value *RHS, bool isNSW, bool isNUW, const SimplifyQuery &Q) |
| Given operands for a Sub, fold the result or return null. More... | |
| Value * | SimplifyFAddInst (Value *LHS, Value *RHS, FastMathFlags FMF, const SimplifyQuery &Q) |
| Given operands for an FAdd, fold the result or return null. More... | |
| Value * | SimplifyFSubInst (Value *LHS, Value *RHS, FastMathFlags FMF, const SimplifyQuery &Q) |
| Given operands for an FSub, fold the result or return null. More... | |
| Value * | SimplifyFMulInst (Value *LHS, Value *RHS, FastMathFlags FMF, const SimplifyQuery &Q) |
| Given operands for an FMul, fold the result or return null. More... | |
| Value * | SimplifyFMAFMul (Value *LHS, Value *RHS, FastMathFlags FMF, const SimplifyQuery &Q) |
| Given operands for the multiplication of a FMA, fold the result or return null. More... | |
| Value * | SimplifyMulInst (Value *LHS, Value *RHS, const SimplifyQuery &Q) |
| Given operands for a Mul, fold the result or return null. More... | |
| Value * | SimplifySDivInst (Value *LHS, Value *RHS, const SimplifyQuery &Q) |
| Given operands for an SDiv, fold the result or return null. More... | |
| Value * | SimplifyUDivInst (Value *LHS, Value *RHS, const SimplifyQuery &Q) |
| Given operands for a UDiv, fold the result or return null. More... | |
| Value * | SimplifyFDivInst (Value *LHS, Value *RHS, FastMathFlags FMF, const SimplifyQuery &Q) |
| Given operands for an FDiv, fold the result or return null. More... | |
| Value * | SimplifySRemInst (Value *LHS, Value *RHS, const SimplifyQuery &Q) |
| Given operands for an SRem, fold the result or return null. More... | |
| Value * | SimplifyURemInst (Value *LHS, Value *RHS, const SimplifyQuery &Q) |
| Given operands for a URem, fold the result or return null. More... | |
| Value * | SimplifyFRemInst (Value *LHS, Value *RHS, FastMathFlags FMF, const SimplifyQuery &Q) |
| Given operands for an FRem, fold the result or return null. More... | |
| Value * | SimplifyShlInst (Value *Op0, Value *Op1, bool isNSW, bool isNUW, const SimplifyQuery &Q) |
| Given operands for a Shl, fold the result or return null. More... | |
| Value * | SimplifyLShrInst (Value *Op0, Value *Op1, bool isExact, const SimplifyQuery &Q) |
| Given operands for a LShr, fold the result or return null. More... | |
| Value * | SimplifyAShrInst (Value *Op0, Value *Op1, bool isExact, const SimplifyQuery &Q) |
| Given operands for a AShr, fold the result or return nulll. More... | |
| Value * | SimplifyAndInst (Value *LHS, Value *RHS, const SimplifyQuery &Q) |
| Given operands for an And, fold the result or return null. More... | |
| Value * | SimplifyOrInst (Value *LHS, Value *RHS, const SimplifyQuery &Q) |
| Given operands for an Or, fold the result or return null. More... | |
| Value * | SimplifyXorInst (Value *LHS, Value *RHS, const SimplifyQuery &Q) |
| Given operands for an Xor, fold the result or return null. More... | |
| Value * | SimplifyICmpInst (unsigned Predicate, Value *LHS, Value *RHS, const SimplifyQuery &Q) |
| Given operands for an ICmpInst, fold the result or return null. More... | |
| Value * | SimplifyFCmpInst (unsigned Predicate, Value *LHS, Value *RHS, FastMathFlags FMF, const SimplifyQuery &Q) |
| Given operands for an FCmpInst, fold the result or return null. More... | |
| Value * | SimplifySelectInst (Value *Cond, Value *TrueVal, Value *FalseVal, const SimplifyQuery &Q) |
| Given operands for a SelectInst, fold the result or return null. More... | |
| Value * | SimplifyGEPInst (Type *SrcTy, ArrayRef< Value *> Ops, const SimplifyQuery &Q) |
| Given operands for a GetElementPtrInst, fold the result or return null. More... | |
| Value * | SimplifyInsertValueInst (Value *Agg, Value *Val, ArrayRef< unsigned > Idxs, const SimplifyQuery &Q) |
| Given operands for an InsertValueInst, fold the result or return null. More... | |
| Value * | SimplifyInsertElementInst (Value *Vec, Value *Elt, Value *Idx, const SimplifyQuery &Q) |
| Given operands for an InsertElement, fold the result or return null. More... | |
| Value * | SimplifyExtractValueInst (Value *Agg, ArrayRef< unsigned > Idxs, const SimplifyQuery &Q) |
| Given operands for an ExtractValueInst, fold the result or return null. More... | |
| Value * | SimplifyExtractElementInst (Value *Vec, Value *Idx, const SimplifyQuery &Q) |
| Given operands for an ExtractElementInst, fold the result or return null. More... | |
| Value * | SimplifyCastInst (unsigned CastOpc, Value *Op, Type *Ty, const SimplifyQuery &Q) |
| Given operands for a CastInst, fold the result or return null. More... | |
| Value * | SimplifyShuffleVectorInst (Value *Op0, Value *Op1, Constant *Mask, Type *RetTy, const SimplifyQuery &Q) |
| Given operands for a ShuffleVectorInst, fold the result or return null. More... | |
| Value * | SimplifyCmpInst (unsigned Predicate, Value *LHS, Value *RHS, const SimplifyQuery &Q) |
| Given operands for a CmpInst, fold the result or return null. More... | |
| Value * | SimplifyUnOp (unsigned Opcode, Value *Op, const SimplifyQuery &Q) |
| Given operand for a UnaryOperator, fold the result or return null. More... | |
| Value * | SimplifyUnOp (unsigned Opcode, Value *Op, FastMathFlags FMF, const SimplifyQuery &Q) |
| Given operand for a UnaryOperator, fold the result or return null. More... | |
| Value * | SimplifyBinOp (unsigned Opcode, Value *LHS, Value *RHS, const SimplifyQuery &Q) |
| Given operands for a BinaryOperator, fold the result or return null. More... | |
| Value * | SimplifyBinOp (unsigned Opcode, Value *LHS, Value *RHS, FastMathFlags FMF, const SimplifyQuery &Q) |
| Given operands for a BinaryOperator, fold the result or return null. More... | |
| Value * | SimplifyCall (CallBase *Call, const SimplifyQuery &Q) |
| Given a callsite, fold the result or return null. More... | |
| Value * | SimplifyFreezeInst (Value *Op, const SimplifyQuery &Q) |
| Given an operand for a Freeze, see if we can fold the result. More... | |
| Value * | SimplifyInstruction (Instruction *I, const SimplifyQuery &Q, OptimizationRemarkEmitter *ORE=nullptr) |
| See if we can compute a simplified version of this instruction. More... | |
| bool | replaceAndRecursivelySimplify (Instruction *I, Value *SimpleV, const TargetLibraryInfo *TLI=nullptr, const DominatorTree *DT=nullptr, AssumptionCache *AC=nullptr, SmallSetVector< Instruction *, 8 > *UnsimplifiedUsers=nullptr) |
| Replace all uses of 'I' with 'SimpleV' and simplify the uses recursively. More... | |
| bool | recursivelySimplifyInstruction (Instruction *I, const TargetLibraryInfo *TLI=nullptr, const DominatorTree *DT=nullptr, AssumptionCache *AC=nullptr) |
| Recursively attempt to simplify an instruction. More... | |
| const SimplifyQuery | getBestSimplifyQuery (Pass &, Function &) |
| template<class T , class... TArgs> | |
| const SimplifyQuery | getBestSimplifyQuery (AnalysisManager< T, TArgs... > &, Function &) |
| const SimplifyQuery | getBestSimplifyQuery (LoopStandardAnalysisResults &, const DataLayout &) |
| Interval::succ_iterator | succ_begin (Interval *I) |
| succ_begin/succ_end - define methods so that Intervals may be used just like BasicBlocks can with the succ_* functions, and *succ_iterator. More... | |
| Interval::succ_iterator | succ_end (Interval *I) |
| Interval::pred_iterator | pred_begin (Interval *I) |
| pred_begin/pred_end - define methods so that Intervals may be used just like BasicBlocks can with the pred_* functions, and *pred_iterator. More... | |
| Interval::pred_iterator | pred_end (Interval *I) |
| BasicBlock * | getNodeHeader (BasicBlock *BB) |
| BasicBlock * | getNodeHeader (Interval *I) |
| BasicBlock * | getSourceGraphNode (Function *, BasicBlock *BB) |
| Interval * | getSourceGraphNode (IntervalPartition *IP, BasicBlock *BB) |
| void | addNodeToInterval (Interval *Int, BasicBlock *BB) |
| void | addNodeToInterval (Interval *Int, Interval *I) |
| function_interval_iterator | intervals_begin (Function *F, bool DeleteInts=true) |
| function_interval_iterator | intervals_end (Function *) |
| interval_part_interval_iterator | intervals_begin (IntervalPartition &IP, bool DeleteIntervals=true) |
| interval_part_interval_iterator | intervals_end (IntervalPartition &IP) |
| Pass * | createIVUsersPass () |
| void | initializeLazyBFIPassPass (PassRegistry &Registry) |
| Helper for client passes to initialize dependent passes for LBFI. More... | |
| void | initializeLazyBPIPassPass (PassRegistry &Registry) |
| Helper for client passes to initialize dependent passes for LBPI. More... | |
| FunctionPass * | createLintPass () |
| Create a lint pass. More... | |
| void | lintModule (const Module &M) |
| Check a module. More... | |
| void | lintFunction (const Function &F) |
| lintFunction - Check a function for errors, printing messages on stderr. More... | |
| bool | isDereferenceablePointer (const Value *V, Type *Ty, const DataLayout &DL, const Instruction *CtxI=nullptr, const DominatorTree *DT=nullptr) |
| Return true if this is always a dereferenceable pointer. More... | |
| bool | isDereferenceableAndAlignedPointer (const Value *V, Type *Ty, MaybeAlign Alignment, const DataLayout &DL, const Instruction *CtxI=nullptr, const DominatorTree *DT=nullptr) |
| Returns true if V is always a dereferenceable pointer with alignment greater or equal than requested. More... | |
| bool | isDereferenceableAndAlignedPointer (const Value *V, Align Alignment, const APInt &Size, const DataLayout &DL, const Instruction *CtxI=nullptr, const DominatorTree *DT=nullptr) |
| Returns true if V is always dereferenceable for Size byte with alignment greater or equal than requested. More... | |
| bool | isSafeToLoadUnconditionally (Value *V, MaybeAlign Alignment, APInt &Size, const DataLayout &DL, Instruction *ScanFrom=nullptr, const DominatorTree *DT=nullptr) |
| Return true if we know that executing a load from this value cannot trap. More... | |
| bool | isDereferenceableAndAlignedInLoop (LoadInst *LI, Loop *L, ScalarEvolution &SE, DominatorTree &DT) |
| Return true if we can prove that the given load (which is assumed to be within the specified loop) would access only dereferenceable memory, and be properly aligned on every iteration of the specified loop regardless of its placement within the loop. More... | |
| bool | isSafeToLoadUnconditionally (Value *V, Type *Ty, MaybeAlign Alignment, const DataLayout &DL, Instruction *ScanFrom=nullptr, const DominatorTree *DT=nullptr) |
| Return true if we know that executing a load from this value cannot trap. More... | |
| Value * | FindAvailableLoadedValue (LoadInst *Load, BasicBlock *ScanBB, BasicBlock::iterator &ScanFrom, unsigned MaxInstsToScan=DefMaxInstsToScan, AliasAnalysis *AA=nullptr, bool *IsLoadCSE=nullptr, unsigned *NumScanedInst=nullptr) |
| Scan backwards to see if we have the value of the given load available locally within a small number of instructions. More... | |
| Value * | FindAvailablePtrLoadStore (Value *Ptr, Type *AccessTy, bool AtLeastAtomic, BasicBlock *ScanBB, BasicBlock::iterator &ScanFrom, unsigned MaxInstsToScan, AliasAnalysis *AA, bool *IsLoad, unsigned *NumScanedInst) |
| Scan backwards to see if we have the value of the given pointer available locally within a small number of instructions. More... | |
| Value * | stripIntegerCast (Value *V) |
| const SCEV * | replaceSymbolicStrideSCEV (PredicatedScalarEvolution &PSE, const ValueToValueMap &PtrToStride, Value *Ptr, Value *OrigPtr=nullptr) |
Return the SCEV corresponding to a pointer with the symbolic stride replaced with constant one, assuming the SCEV predicate associated with PSE is true. More... | |
| int64_t | getPtrStride (PredicatedScalarEvolution &PSE, Value *Ptr, const Loop *Lp, const ValueToValueMap &StridesMap=ValueToValueMap(), bool Assume=false, bool ShouldCheckWrap=true) |
| If the pointer has a constant stride return it in units of its element size. More... | |
| bool | sortPtrAccesses (ArrayRef< Value *> VL, const DataLayout &DL, ScalarEvolution &SE, SmallVectorImpl< unsigned > &SortedIndices) |
Attempt to sort the pointers in VL and return the sorted indices in SortedIndices, if reordering is required. More... | |
| bool | isConsecutiveAccess (Value *A, Value *B, const DataLayout &DL, ScalarEvolution &SE, bool CheckType=true) |
Returns true if the memory operations A and B are consecutive. More... | |
| PreservedAnalyses | getLoopPassPreservedAnalyses () |
| Returns the minimum set of Analyses that all loop passes must preserve. More... | |
| raw_ostream & | operator<< (raw_ostream &OS, const IndexedReference &R) |
| raw_ostream & | operator<< (raw_ostream &OS, const CacheCost &CC) |
| template<class BlockT , class LoopT > | |
| raw_ostream & | operator<< (raw_ostream &OS, const LoopBase< BlockT, LoopT > &Loop) |
| void | printLoop (Loop &L, raw_ostream &OS, const std::string &Banner="") |
| Function to print a loop's contents as LLVM's text IR assembly. More... | |
| MDNode * | findOptionMDForLoopID (MDNode *LoopID, StringRef Name) |
Find and return the loop attribute node for the attribute Name in LoopID. More... | |
| MDNode * | findOptionMDForLoop (const Loop *TheLoop, StringRef Name) |
| Find string metadata for a loop. More... | |
| bool | isValidAsAccessGroup (MDNode *AccGroup) |
| Return whether an MDNode might represent an access group. More... | |
| llvm::MDNode * | makePostTransformationMetadata (llvm::LLVMContext &Context, MDNode *OrigLoopID, llvm::ArrayRef< llvm::StringRef > RemovePrefixes, llvm::ArrayRef< llvm::MDNode *> AddAttrs) |
| Create a new LoopID after the loop has been transformed. More... | |
| template<class BlockT , class LoopT , typename PredicateT > | |
| void | getUniqueExitBlocksHelper (const LoopT *L, SmallVectorImpl< BlockT *> &ExitBlocks, PredicateT Pred) |
| template<class BlockT , class LoopT > | |
| static void | discoverAndMapSubloop (LoopT *L, ArrayRef< BlockT *> Backedges, LoopInfoBase< BlockT, LoopT > *LI, const DomTreeBase< BlockT > &DomTree) |
| Stable LoopInfo Analysis - Build a loop tree using stable iterators so the result does / not depend on use list (block predecessor) order. More... | |
| template<typename T > | |
| bool | compareVectors (std::vector< T > &BB1, std::vector< T > &BB2) |
| template<class BlockT , class LoopT > | |
| void | addInnerLoopsToHeadersMap (DenseMap< BlockT *, const LoopT *> &LoopHeaders, const LoopInfoBase< BlockT, LoopT > &LI, const LoopT &L) |
| template<class BlockT , class LoopT > | |
| static void | compareLoops (const LoopT *L, const LoopT *OtherL, DenseMap< BlockT *, const LoopT *> &OtherLoopHeaders) |
| bool | isAllocationFn (const Value *V, const TargetLibraryInfo *TLI, bool LookThroughBitCast=false) |
| Tests if a value is a call or invoke to a library function that allocates or reallocates memory (either malloc, calloc, realloc, or strdup like). More... | |
| bool | isAllocationFn (const Value *V, function_ref< const TargetLibraryInfo &(Function &)> GetTLI, bool LookThroughBitCast=false) |
| bool | isNoAliasFn (const Value *V, const TargetLibraryInfo *TLI, bool LookThroughBitCast=false) |
| Tests if a value is a call or invoke to a function that returns a NoAlias pointer (including malloc/calloc/realloc/strdup-like functions). More... | |
| bool | isMallocLikeFn (const Value *V, const TargetLibraryInfo *TLI, bool LookThroughBitCast=false) |
| Tests if a value is a call or invoke to a library function that allocates uninitialized memory (such as malloc). More... | |
| bool | isMallocLikeFn (const Value *V, function_ref< const TargetLibraryInfo &(Function &)> GetTLI, bool LookThroughBitCast=false) |
| bool | isCallocLikeFn (const Value *V, const TargetLibraryInfo *TLI, bool LookThroughBitCast=false) |
| Tests if a value is a call or invoke to a library function that allocates zero-filled memory (such as calloc). More... | |
| bool | isMallocOrCallocLikeFn (const Value *V, const TargetLibraryInfo *TLI, bool LookThroughBitCast=false) |
| Tests if a value is a call or invoke to a library function that allocates memory similar to malloc or calloc. More... | |
| bool | isAllocLikeFn (const Value *V, const TargetLibraryInfo *TLI, bool LookThroughBitCast=false) |
| Tests if a value is a call or invoke to a library function that allocates memory (either malloc, calloc, or strdup like). More... | |
| bool | isReallocLikeFn (const Value *V, const TargetLibraryInfo *TLI, bool LookThroughBitCast=false) |
| Tests if a value is a call or invoke to a library function that reallocates memory (e.g., realloc). More... | |
| bool | isReallocLikeFn (const Function *F, const TargetLibraryInfo *TLI) |
| Tests if a function is a call or invoke to a library function that reallocates memory (e.g., realloc). More... | |
| bool | isOpNewLikeFn (const Value *V, const TargetLibraryInfo *TLI, bool LookThroughBitCast=false) |
| Tests if a value is a call or invoke to a library function that allocates memory and throws if an allocation failed (e.g., new). More... | |
| bool | isStrdupLikeFn (const Value *V, const TargetLibraryInfo *TLI, bool LookThroughBitCast=false) |
| Tests if a value is a call or invoke to a library function that allocates memory (strdup, strndup). More... | |
| const CallInst * | extractMallocCall (const Value *I, function_ref< const TargetLibraryInfo &(Function &)> GetTLI) |
| extractMallocCall - Returns the corresponding CallInst if the instruction is a malloc call. More... | |
| CallInst * | extractMallocCall (Value *I, function_ref< const TargetLibraryInfo &(Function &)> GetTLI) |
| PointerType * | getMallocType (const CallInst *CI, const TargetLibraryInfo *TLI) |
| getMallocType - Returns the PointerType resulting from the malloc call. More... | |
| Type * | getMallocAllocatedType (const CallInst *CI, const TargetLibraryInfo *TLI) |
| getMallocAllocatedType - Returns the Type allocated by malloc call. More... | |
| Value * | getMallocArraySize (CallInst *CI, const DataLayout &DL, const TargetLibraryInfo *TLI, bool LookThroughSExt=false) |
| getMallocArraySize - Returns the array size of a malloc call. More... | |
| const CallInst * | extractCallocCall (const Value *I, const TargetLibraryInfo *TLI) |
| extractCallocCall - Returns the corresponding CallInst if the instruction is a calloc call. More... | |
| CallInst * | extractCallocCall (Value *I, const TargetLibraryInfo *TLI) |
| bool | isLibFreeFunction (const Function *F, const LibFunc TLIFn) |
| isLibFreeFunction - Returns true if the function is a builtin free() More... | |
| const CallInst * | isFreeCall (const Value *I, const TargetLibraryInfo *TLI) |
| isFreeCall - Returns non-null if the value is a call to the builtin free() More... | |
| CallInst * | isFreeCall (Value *I, const TargetLibraryInfo *TLI) |
| bool | getObjectSize (const Value *Ptr, uint64_t &Size, const DataLayout &DL, const TargetLibraryInfo *TLI, ObjectSizeOpts Opts={}) |
| Compute the size of the object pointed by Ptr. More... | |
| Value * | lowerObjectSizeCall (IntrinsicInst *ObjectSize, const DataLayout &DL, const TargetLibraryInfo *TLI, bool MustSucceed) |
| Try to turn a call to @llvm.objectsize into an integer value of the given Type. More... | |
| raw_ostream & | operator<< (raw_ostream &OS, LocationSize Size) |
| raw_ostream & | operator<< (raw_ostream &OS, const MemoryAccess &MA) |
| upward_defs_iterator | upward_defs_begin (const MemoryAccessPair &Pair) |
| upward_defs_iterator | upward_defs_end () |
| iterator_range< upward_defs_iterator > | upward_defs (const MemoryAccessPair &Pair) |
| template<class T > | |
| iterator_range< def_chain_iterator< T > > | def_chain (T MA, MemoryAccess *UpTo=nullptr) |
| template<class T > | |
| iterator_range< def_chain_iterator< T, true > > | optimized_def_chain (T MA) |
| ModuleSummaryIndex | buildModuleSummaryIndex (const Module &M, std::function< BlockFrequencyInfo *(const Function &F)> GetBFICallback, ProfileSummaryInfo *PSI) |
Direct function to compute a ModuleSummaryIndex from a given module. More... | |
| ModulePass * | createModuleSummaryIndexWrapperPass () |
| ImmutablePass * | createObjCARCAAWrapperPass () |
| FunctionPass * | createPAEvalPass () |
| FunctionPass * | createLazyValueInfoPass () |
| createLazyValueInfoPass - This creates an instance of the LazyValueInfo pass. More... | |
| FunctionPass * | createCostModelAnalysisPass () |
| FunctionPass * | createDelinearizationPass () |
| FunctionPass * | createLegacyDivergenceAnalysisPass () |
| FunctionPass * | createInstCountPass () |
| FunctionPass * | createRegionInfoPass () |
| ModulePass * | createModuleDebugInfoPrinterPass () |
| FunctionPass * | createMemDepPrinter () |
| FunctionPass * | createMemDerefPrinter () |
| FunctionPass * | createMustExecutePrinter () |
| ModulePass * | createMustBeExecutedContextPrinter () |
| FunctionPass * | createPostDomTree () |
| template<class Tr > | |
| raw_ostream & | operator<< (raw_ostream &OS, const RegionNodeBase< Tr > &Node) |
| Print a RegionNode. More... | |
| template<class NodeRef , class BlockT , class RegionT > | |
| RNSuccIterator< NodeRef, BlockT, RegionT > | succ_begin (NodeRef Node) |
| template<class NodeRef , class BlockT , class RegionT > | |
| RNSuccIterator< NodeRef, BlockT, RegionT > | succ_end (NodeRef Node) |
| RegionNodeGraphTraits (RegionNode, BasicBlock, Region) | |
| RegionGraphTraits (Region, RegionNode) | |
| FunctionPass * | createRegionViewerPass () |
| FunctionPass * | createRegionOnlyViewerPass () |
| FunctionPass * | createRegionPrinterPass () |
| FunctionPass * | createRegionOnlyPrinterPass () |
| void | viewRegion (llvm::RegionInfo *RI) |
| Open a viewer to display the GraphViz vizualization of the analysis result. More... | |
| void | viewRegion (const llvm::Function *F) |
| Analyze the regions of a function and open its GraphViz visualization in a viewer. More... | |
| void | viewRegionOnly (llvm::RegionInfo *RI) |
| Open a viewer to display the GraphViz vizualization of the analysis result. More... | |
| void | viewRegionOnly (const llvm::Function *F) |
| Analyze the regions of a function and open its GraphViz visualization in a viewer. More... | |
| raw_ostream & | operator<< (raw_ostream &OS, const SCEV &S) |
| raw_ostream & | operator<< (raw_ostream &OS, const SCEVPredicate &P) |
| FunctionPass * | createSCEVAAWrapperPass () |
Creates an instance of SCEVAAWrapperPass. More... | |
| bool | isSafeToExpand (const SCEV *S, ScalarEvolution &SE) |
| Return true if the given expression is safe to expand in the sense that all materialized values are safe to speculate anywhere their operands are defined. More... | |
| bool | isSafeToExpandAt (const SCEV *S, const Instruction *InsertionPoint, ScalarEvolution &SE) |
| Return true if the given expression is safe to expand in the sense that all materialized values are defined and safe to speculate at the specified location and their operands are defined at this location. More... | |
| static unsigned short | computeExpressionSize (ArrayRef< const SCEV *> Args) |
| template<typename SV > | |
| void | visitAll (const SCEV *Root, SV &Visitor) |
| Use SCEVTraversal to visit all nodes in the given expression tree. More... | |
| template<typename PredTy > | |
| bool | SCEVExprContains (const SCEV *Root, PredTy Pred) |
Return true if any node in Root satisfies the predicate Pred. More... | |
| const SCEV * | normalizeForPostIncUse (const SCEV *S, const PostIncLoopSet &Loops, ScalarEvolution &SE) |
Normalize S to be post-increment for all loops present in Loops. More... | |
| const SCEV * | normalizeForPostIncUseIf (const SCEV *S, NormalizePredTy Pred, ScalarEvolution &SE) |
Normalize S for all add recurrence sub-expressions for which Pred returns true. More... | |
| const SCEV * | denormalizeForPostIncUse (const SCEV *S, const PostIncLoopSet &Loops, ScalarEvolution &SE) |
Denormalize S to be post-increment for all loops present in Loops. More... | |
| ImmutablePass * | createScopedNoAliasAAWrapperPass () |
| ImmutablePass * | createTargetTransformInfoWrapperPass (TargetIRAnalysis TIRA) |
| Create an analysis pass wrapper around a TTI object. More... | |
| ImmutablePass * | createTypeBasedAAWrapperPass () |
| void | findDevirtualizableCallsForTypeTest (SmallVectorImpl< DevirtCallSite > &DevirtCalls, SmallVectorImpl< CallInst *> &Assumes, const CallInst *CI, DominatorTree &DT) |
| Given a call to the intrinsic @llvm.type.test, find all devirtualizable call sites based on the call and return them in DevirtCalls. More... | |
| void | findDevirtualizableCallsForTypeCheckedLoad (SmallVectorImpl< DevirtCallSite > &DevirtCalls, SmallVectorImpl< Instruction *> &LoadedPtrs, SmallVectorImpl< Instruction *> &Preds, bool &HasNonCallUses, const CallInst *CI, DominatorTree &DT) |
| Given a call to the intrinsic @llvm.type.checked.load, find all devirtualizable call sites based on the call and return them in DevirtCalls. More... | |
| Constant * | getPointerAtOffset (Constant *I, uint64_t Offset, Module &M) |
| template<typename IRBuilderTy > | |
| Value * | EmitGEPOffset (IRBuilderTy *Builder, const DataLayout &DL, User *GEP, bool NoAssumptions=false) |
| Given a getelementptr instruction/constantexpr, emit the code necessary to compute the offset from the base pointer (without adding in the base pointer). More... | |
| raw_ostream & | operator<< (raw_ostream &OS, const ValueLatticeElement &Val) |
| bool | canTrackArgumentsInterprocedurally (Function *F) |
| Determine if the values of the given function's arguments can be tracked interprocedurally. More... | |
| bool | canTrackReturnsInterprocedurally (Function *F) |
| Determine if the values of the given function's returns can be tracked interprocedurally. More... | |
| bool | canTrackGlobalVariableInterprocedurally (GlobalVariable *GV) |
| Determine if the value maintained in the given global variable can be tracked interprocedurally. More... | |
| void | computeKnownBits (const Value *V, KnownBits &Known, const DataLayout &DL, unsigned Depth=0, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr, const DominatorTree *DT=nullptr, OptimizationRemarkEmitter *ORE=nullptr, bool UseInstrInfo=true) |
| Determine which bits of V are known to be either zero or one and return them in the KnownZero/KnownOne bit sets. More... | |
| KnownBits | computeKnownBits (const Value *V, const DataLayout &DL, unsigned Depth=0, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr, const DominatorTree *DT=nullptr, OptimizationRemarkEmitter *ORE=nullptr, bool UseInstrInfo=true) |
| Returns the known bits rather than passing by reference. More... | |
| void | computeKnownBitsFromRangeMetadata (const MDNode &Ranges, KnownBits &Known) |
| Compute known bits from the range metadata. More... | |
| bool | haveNoCommonBitsSet (const Value *LHS, const Value *RHS, const DataLayout &DL, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr, const DominatorTree *DT=nullptr, bool UseInstrInfo=true) |
| Return true if LHS and RHS have no common bits set. More... | |
| bool | isKnownToBeAPowerOfTwo (const Value *V, const DataLayout &DL, bool OrZero=false, unsigned Depth=0, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr, const DominatorTree *DT=nullptr, bool UseInstrInfo=true) |
| Return true if the given value is known to have exactly one bit set when defined. More... | |
| bool | isOnlyUsedInZeroEqualityComparison (const Instruction *CxtI) |
| bool | isKnownNonZero (const Value *V, const DataLayout &DL, unsigned Depth=0, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr, const DominatorTree *DT=nullptr, bool UseInstrInfo=true) |
| Return true if the given value is known to be non-zero when defined. More... | |
| bool | isKnownNegation (const Value *X, const Value *Y, bool NeedNSW=false) |
| Return true if the two given values are negation. More... | |
| bool | isKnownNonNegative (const Value *V, const DataLayout &DL, unsigned Depth=0, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr, const DominatorTree *DT=nullptr, bool UseInstrInfo=true) |
| Returns true if the give value is known to be non-negative. More... | |
| bool | isKnownPositive (const Value *V, const DataLayout &DL, unsigned Depth=0, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr, const DominatorTree *DT=nullptr, bool UseInstrInfo=true) |
| Returns true if the given value is known be positive (i.e. More... | |
| bool | isKnownNegative (const Value *V, const DataLayout &DL, unsigned Depth=0, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr, const DominatorTree *DT=nullptr, bool UseInstrInfo=true) |
| Returns true if the given value is known be negative (i.e. More... | |
| bool | isKnownNonEqual (const Value *V1, const Value *V2, const DataLayout &DL, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr, const DominatorTree *DT=nullptr, bool UseInstrInfo=true) |
| Return true if the given values are known to be non-equal when defined. More... | |
| bool | MaskedValueIsZero (const Value *V, const APInt &Mask, const DataLayout &DL, unsigned Depth=0, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr, const DominatorTree *DT=nullptr, bool UseInstrInfo=true) |
| Return true if 'V & Mask' is known to be zero. More... | |
| unsigned | ComputeNumSignBits (const Value *Op, const DataLayout &DL, unsigned Depth=0, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr, const DominatorTree *DT=nullptr, bool UseInstrInfo=true) |
| Return the number of times the sign bit of the register is replicated into the other bits. More... | |
| bool | ComputeMultiple (Value *V, unsigned Base, Value *&Multiple, bool LookThroughSExt=false, unsigned Depth=0) |
| This function computes the integer multiple of Base that equals V. More... | |
| Intrinsic::ID | getIntrinsicForCallSite (ImmutableCallSite ICS, const TargetLibraryInfo *TLI) |
| Map a call instruction to an intrinsic ID. More... | |
| bool | CannotBeNegativeZero (const Value *V, const TargetLibraryInfo *TLI, unsigned Depth=0) |
| Return true if we can prove that the specified FP value is never equal to -0.0. More... | |
| bool | CannotBeOrderedLessThanZero (const Value *V, const TargetLibraryInfo *TLI) |
| Return true if we can prove that the specified FP value is either NaN or never less than -0.0. More... | |
| bool | isKnownNeverInfinity (const Value *V, const TargetLibraryInfo *TLI, unsigned Depth=0) |
| Return true if the floating-point scalar value is not an infinity or if the floating-point vector value has no infinities. More... | |
| bool | isKnownNeverNaN (const Value *V, const TargetLibraryInfo *TLI, unsigned Depth=0) |
| Return true if the floating-point scalar value is not a NaN or if the floating-point vector value has no NaN elements. More... | |
| bool | SignBitMustBeZero (const Value *V, const TargetLibraryInfo *TLI) |
| Return true if we can prove that the specified FP value's sign bit is 0. More... | |
| Value * | isBytewiseValue (Value *V, const DataLayout &DL) |
| If the specified value can be set by repeating the same byte in memory, return the i8 value that it is represented with. More... | |
| Value * | FindInsertedValue (Value *V, ArrayRef< unsigned > idx_range, Instruction *InsertBefore=nullptr) |
| Given an aggregate and an sequence of indices, see if the scalar value indexed is already around as a register, for example if it were inserted directly into the aggregate. More... | |
| Value * | GetPointerBaseWithConstantOffset (Value *Ptr, int64_t &Offset, const DataLayout &DL, bool AllowNonInbounds=true) |
| Analyze the specified pointer to see if it can be expressed as a base pointer plus a constant offset. More... | |
| const Value * | GetPointerBaseWithConstantOffset (const Value *Ptr, int64_t &Offset, const DataLayout &DL, bool AllowNonInbounds=true) |
| bool | isGEPBasedOnPointerToString (const GEPOperator *GEP, unsigned CharSize=8) |
| Returns true if the GEP is based on a pointer to a string (array of. More... | |
| bool | getConstantDataArrayInfo (const Value *V, ConstantDataArraySlice &Slice, unsigned ElementSize, uint64_t Offset=0) |
Returns true if the value V is a pointer into a ConstantDataArray. More... | |
| bool | getConstantStringInfo (const Value *V, StringRef &Str, uint64_t Offset=0, bool TrimAtNul=true) |
| This function computes the length of a null-terminated C string pointed to by V. More... | |
| uint64_t | GetStringLength (const Value *V, unsigned CharSize=8) |
| If we can compute the length of the string pointed to by the specified pointer, return 'len+1'. More... | |
| const Value * | getArgumentAliasingToReturnedPointer (const CallBase *Call, bool MustPreserveNullness) |
| This function returns call pointer argument that is considered the same by aliasing rules. More... | |
| Value * | getArgumentAliasingToReturnedPointer (CallBase *Call, bool MustPreserveNullness) |
| bool | isIntrinsicReturningPointerAliasingArgumentWithoutCapturing (const CallBase *Call, bool MustPreserveNullness) |
| {launder,strip}.invariant.group returns pointer that aliases its argument, and it only captures pointer by returning it. More... | |
| Value * | GetUnderlyingObject (Value *V, const DataLayout &DL, unsigned MaxLookup=6) |
| This method strips off any GEP address adjustments and pointer casts from the specified value, returning the original object being addressed. More... | |
| const Value * | GetUnderlyingObject (const Value *V, const DataLayout &DL, unsigned MaxLookup=6) |
| void | GetUnderlyingObjects (const Value *V, SmallVectorImpl< const Value *> &Objects, const DataLayout &DL, LoopInfo *LI=nullptr, unsigned MaxLookup=6) |
| This method is similar to GetUnderlyingObject except that it can look through phi and select instructions and return multiple objects. More... | |
| bool | getUnderlyingObjectsForCodeGen (const Value *V, SmallVectorImpl< Value *> &Objects, const DataLayout &DL) |
| This is a wrapper around GetUnderlyingObjects and adds support for basic ptrtoint+arithmetic+inttoptr sequences. More... | |
| bool | onlyUsedByLifetimeMarkers (const Value *V) |
| Return true if the only users of this pointer are lifetime markers. More... | |
| bool | mustSuppressSpeculation (const LoadInst &LI) |
| Return true if speculation of the given load must be suppressed to avoid ordering or interfering with an active sanitizer. More... | |
| bool | isSafeToSpeculativelyExecute (const Value *V, const Instruction *CtxI=nullptr, const DominatorTree *DT=nullptr) |
| Return true if the instruction does not have any effects besides calculating the result and does not have undefined behavior. More... | |
| bool | mayBeMemoryDependent (const Instruction &I) |
Returns true if the result or effects of the given instructions I depend on or influence global memory. More... | |
| bool | isAssumeLikeIntrinsic (const Instruction *I) |
| Return true if it is an intrinsic that cannot be speculated but also cannot trap. More... | |
| bool | isValidAssumeForContext (const Instruction *I, const Instruction *CxtI, const DominatorTree *DT=nullptr) |
| Return true if it is valid to use the assumptions provided by an assume intrinsic, I, at the point in the control-flow identified by the context instruction, CxtI. More... | |
| OverflowResult | computeOverflowForUnsignedMul (const Value *LHS, const Value *RHS, const DataLayout &DL, AssumptionCache *AC, const Instruction *CxtI, const DominatorTree *DT, bool UseInstrInfo=true) |
| OverflowResult | computeOverflowForSignedMul (const Value *LHS, const Value *RHS, const DataLayout &DL, AssumptionCache *AC, const Instruction *CxtI, const DominatorTree *DT, bool UseInstrInfo=true) |
| OverflowResult | computeOverflowForUnsignedAdd (const Value *LHS, const Value *RHS, const DataLayout &DL, AssumptionCache *AC, const Instruction *CxtI, const DominatorTree *DT, bool UseInstrInfo=true) |
| OverflowResult | computeOverflowForSignedAdd (const Value *LHS, const Value *RHS, const DataLayout &DL, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr, const DominatorTree *DT=nullptr) |
| OverflowResult | computeOverflowForSignedAdd (const AddOperator *Add, const DataLayout &DL, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr, const DominatorTree *DT=nullptr) |
| This version also leverages the sign bit of Add if known. More... | |
| OverflowResult | computeOverflowForUnsignedSub (const Value *LHS, const Value *RHS, const DataLayout &DL, AssumptionCache *AC, const Instruction *CxtI, const DominatorTree *DT) |
| OverflowResult | computeOverflowForSignedSub (const Value *LHS, const Value *RHS, const DataLayout &DL, AssumptionCache *AC, const Instruction *CxtI, const DominatorTree *DT) |
| bool | isOverflowIntrinsicNoWrap (const WithOverflowInst *WO, const DominatorTree &DT) |
Returns true if the arithmetic part of the WO 's result is used only along the paths control dependent on the computation not overflowing, WO being an <op>.with.overflow intrinsic. More... | |
| ConstantRange | computeConstantRange (const Value *V, bool UseInstrInfo=true) |
| Determine the possible constant range of an integer or vector of integer value. More... | |
| bool | isGuaranteedToTransferExecutionToSuccessor (const Instruction *I) |
| Return true if this function can prove that the instruction I will always transfer execution to one of its successors (including the next instruction that follows within a basic block). More... | |
| bool | isGuaranteedToTransferExecutionToSuccessor (const BasicBlock *BB) |
| Returns true if this block does not contain a potential implicit exit. More... | |
| bool | isGuaranteedToExecuteForEveryIteration (const Instruction *I, const Loop *L) |
| Return true if this function can prove that the instruction I is executed for every iteration of the loop L. More... | |
| bool | propagatesFullPoison (const Instruction *I) |
| Return true if this function can prove that I is guaranteed to yield full-poison (all bits poison) if at least one of its operands are full-poison (all bits poison). More... | |
| const Value * | getGuaranteedNonFullPoisonOp (const Instruction *I) |
| Return either nullptr or an operand of I such that I will trigger undefined behavior if I is executed and that operand has a full-poison value (all bits poison). More... | |
| bool | mustTriggerUB (const Instruction *I, const SmallSet< const Value *, 16 > &KnownPoison) |
| Return true if the given instruction must trigger undefined behavior. More... | |
| bool | programUndefinedIfFullPoison (const Instruction *PoisonI) |
| Return true if this function can prove that if PoisonI is executed and yields a full-poison value (all bits poison), then that will trigger undefined behavior. More... | |
| bool | isGuaranteedNotToBeUndefOrPoison (const Value *V) |
| Return true if this function can prove that V is never undef value or poison value. More... | |
| SelectPatternResult | matchSelectPattern (Value *V, Value *&LHS, Value *&RHS, Instruction::CastOps *CastOp=nullptr, unsigned Depth=0) |
| Pattern match integer [SU]MIN, [SU]MAX and ABS idioms, returning the kind and providing the out parameter results if we successfully match. More... | |
| SelectPatternResult | matchSelectPattern (const Value *V, const Value *&LHS, const Value *&RHS) |
| SelectPatternResult | matchDecomposedSelectPattern (CmpInst *CmpI, Value *TrueVal, Value *FalseVal, Value *&LHS, Value *&RHS, Instruction::CastOps *CastOp=nullptr, unsigned Depth=0) |
| Determine the pattern that a select with the given compare as its predicate and given values as its true/false operands would match. More... | |
| CmpInst::Predicate | getMinMaxPred (SelectPatternFlavor SPF, bool Ordered=false) |
| Return the canonical comparison predicate for the specified minimum/maximum flavor. More... | |
| SelectPatternFlavor | getInverseMinMaxFlavor (SelectPatternFlavor SPF) |
| Return the inverse minimum/maximum flavor of the specified flavor. More... | |
| CmpInst::Predicate | getInverseMinMaxPred (SelectPatternFlavor SPF) |
| Return the canonical inverse comparison predicate for the specified minimum/maximum flavor. More... | |
| Optional< bool > | isImpliedCondition (const Value *LHS, const Value *RHS, const DataLayout &DL, bool LHSIsTrue=true, unsigned Depth=0) |
| Return true if RHS is known to be implied true by LHS. More... | |
| Optional< bool > | isImpliedByDomCondition (const Value *Cond, const Instruction *ContextI, const DataLayout &DL) |
| Return the boolean condition value in the context of the given instruction if it is known based on dominating conditions. More... | |
| Optional< int64_t > | isPointerOffset (const Value *Ptr1, const Value *Ptr2, const DataLayout &DL) |
| If Ptr1 is provably equal to Ptr2 plus a constant offset, return that offset. More... | |
| bool | isTriviallyVectorizable (Intrinsic::ID ID) |
| Identify if the intrinsic is trivially vectorizable. More... | |
| bool | hasVectorInstrinsicScalarOpd (Intrinsic::ID ID, unsigned ScalarOpdIdx) |
| Identifies if the vector form of the intrinsic has a scalar operand. More... | |
| Intrinsic::ID | getVectorIntrinsicIDForCall (const CallInst *CI, const TargetLibraryInfo *TLI) |
| Returns intrinsic ID for call. More... | |
| unsigned | getGEPInductionOperand (const GetElementPtrInst *Gep) |
| Find the operand of the GEP that should be checked for consecutive stores. More... | |
| Value * | stripGetElementPtr (Value *Ptr, ScalarEvolution *SE, Loop *Lp) |
| If the argument is a GEP, then returns the operand identified by getGEPInductionOperand. More... | |
| Value * | getUniqueCastUse (Value *Ptr, Loop *Lp, Type *Ty) |
| If a value has only one user that is a CastInst, return it. More... | |
| Value * | getStrideFromPointer (Value *Ptr, ScalarEvolution *SE, Loop *Lp) |
| Get the stride of a pointer access in a loop. More... | |
| Value * | findScalarElement (Value *V, unsigned EltNo) |
| Given a vector and an element number, see if the scalar value is already around as a register, for example if it were inserted then extracted from the vector. More... | |
| const Value * | getSplatValue (const Value *V) |
| Get splat value if the input is a splat vector or return nullptr. More... | |
| bool | isSplatValue (const Value *V, unsigned Depth=0) |
| Return true if the input value is known to be a vector with all identical elements (potentially including undefined elements). More... | |
| MapVector< Instruction *, uint64_t > | computeMinimumValueSizes (ArrayRef< BasicBlock *> Blocks, DemandedBits &DB, const TargetTransformInfo *TTI=nullptr) |
| Compute a map of integer instructions to their minimum legal type size. More... | |
| MDNode * | uniteAccessGroups (MDNode *AccGroups1, MDNode *AccGroups2) |
| Compute the union of two access-group lists. More... | |
| MDNode * | intersectAccessGroups (const Instruction *Inst1, const Instruction *Inst2) |
Compute the access-group list of access groups that Inst1 and Inst2 are both in. More... | |
| Instruction * | propagateMetadata (Instruction *I, ArrayRef< Value *> VL) |
| Specifically, let Kinds = [MD_tbaa, MD_alias_scope, MD_noalias, MD_fpmath, MD_nontemporal, MD_access_group]. More... | |
| Constant * | createBitMaskForGaps (IRBuilder<> &Builder, unsigned VF, const InterleaveGroup< Instruction > &Group) |
| Create a mask that filters the members of an interleave group where there are gaps. More... | |
| Constant * | createReplicatedMask (IRBuilder<> &Builder, unsigned ReplicationFactor, unsigned VF) |
| Create a mask with replicated elements. More... | |
| Constant * | createInterleaveMask (IRBuilder<> &Builder, unsigned VF, unsigned NumVecs) |
| Create an interleave shuffle mask. More... | |
| Constant * | createStrideMask (IRBuilder<> &Builder, unsigned Start, unsigned Stride, unsigned VF) |
| Create a stride shuffle mask. More... | |
| Constant * | createSequentialMask (IRBuilder<> &Builder, unsigned Start, unsigned NumInts, unsigned NumUndefs) |
| Create a sequential shuffle mask. More... | |
| Value * | concatenateVectors (IRBuilder<> &Builder, ArrayRef< Value *> Vecs) |
| Concatenate a list of vectors. More... | |
| bool | maskIsAllZeroOrUndef (Value *Mask) |
| Given a mask vector of the form <Y x="" i1>="">, Return true if all of the elements of this predicate mask are false or undef. More... | |
| bool | maskIsAllOneOrUndef (Value *Mask) |
| Given a mask vector of the form <Y x="" i1>="">, Return true if all of the elements of this predicate mask are true or undef. More... | |
| APInt | possiblyDemandedEltsInMask (Value *Mask) |
| Given a mask vector of the form <Y x="" i1>="">, return an APInt (of bitwidth Y) for each lane which may be active. More... | |
| std::unique_ptr< Module > | parseAssemblyFile (StringRef Filename, SMDiagnostic &Err, LLVMContext &Context, SlotMapping *Slots=nullptr, bool UpgradeDebugInfo=true, StringRef DataLayoutString="") |
| This function is a main interface to the LLVM Assembly Parser. More... | |
| std::unique_ptr< Module > | parseAssemblyString (StringRef AsmString, SMDiagnostic &Err, LLVMContext &Context, SlotMapping *Slots=nullptr, bool UpgradeDebugInfo=true, StringRef DataLayoutString="") |
| The function is a secondary interface to the LLVM Assembly Parser. More... | |
| ParsedModuleAndIndex | parseAssemblyFileWithIndex (StringRef Filename, SMDiagnostic &Err, LLVMContext &Context, SlotMapping *Slots=nullptr, bool UpgradeDebugInfo=true, StringRef DataLayoutString="") |
| This function is a main interface to the LLVM Assembly Parser. More... | |
| std::unique_ptr< ModuleSummaryIndex > | parseSummaryIndexAssemblyFile (StringRef Filename, SMDiagnostic &Err) |
| This function is a main interface to the LLVM Assembly Parser. More... | |
| std::unique_ptr< Module > | parseAssembly (MemoryBufferRef F, SMDiagnostic &Err, LLVMContext &Context, SlotMapping *Slots=nullptr, bool UpgradeDebugInfo=true, StringRef DataLayoutString="") |
| parseAssemblyFile and parseAssemblyString are wrappers around this function. More... | |
| ParsedModuleAndIndex | parseAssemblyWithIndex (MemoryBufferRef F, SMDiagnostic &Err, LLVMContext &Context, SlotMapping *Slots=nullptr, bool UpgradeDebugInfo=true, StringRef DataLayoutString="") |
| Parse LLVM Assembly including the summary index from a MemoryBuffer. More... | |
| std::unique_ptr< ModuleSummaryIndex > | parseSummaryIndexAssembly (MemoryBufferRef F, SMDiagnostic &Err) |
| Parse LLVM Assembly for summary index from a MemoryBuffer. More... | |
| bool | parseAssemblyInto (MemoryBufferRef F, Module *M, ModuleSummaryIndex *Index, SMDiagnostic &Err, SlotMapping *Slots=nullptr, bool UpgradeDebugInfo=true, StringRef DataLayoutString="") |
| This function is the low-level interface to the LLVM Assembly Parser. More... | |
| Constant * | parseConstantValue (StringRef Asm, SMDiagnostic &Err, const Module &M, const SlotMapping *Slots=nullptr) |
| Parse a type and a constant value in the given string. More... | |
| Type * | parseType (StringRef Asm, SMDiagnostic &Err, const Module &M, const SlotMapping *Slots=nullptr) |
| Parse a type in the given string. More... | |
| Type * | parseTypeAtBeginning (StringRef Asm, unsigned &Read, SMDiagnostic &Err, const Module &M, const SlotMapping *Slots=nullptr) |
Parse a string Asm that starts with a type. More... | |
| file_magic | identify_magic (StringRef magic) |
| Identify the type of a binary file based on how magical it is. More... | |
| std::error_code | identify_magic (const Twine &path, file_magic &result) |
| Get and identify path's type based on its content. More... | |
| std::error_code | errorToErrorCodeAndEmitErrors (LLVMContext &Ctx, Error Err) |
| template<typename T > | |
| ErrorOr< T > | expectedToErrorOrAndEmitErrors (LLVMContext &Ctx, Expected< T > Val) |
| Expected< BitcodeFileContents > | getBitcodeFileContents (MemoryBufferRef Buffer) |
| Returns the contents of a bitcode file. More... | |
| Expected< std::vector< BitcodeModule > > | getBitcodeModuleList (MemoryBufferRef Buffer) |
| Returns a list of modules in the specified bitcode buffer. More... | |
| Expected< std::unique_ptr< Module > > | getLazyBitcodeModule (MemoryBufferRef Buffer, LLVMContext &Context, bool ShouldLazyLoadMetadata=false, bool IsImporting=false) |
| Read the header of the specified bitcode buffer and prepare for lazy deserialization of function bodies. More... | |
| Expected< std::unique_ptr< Module > > | getOwningLazyBitcodeModule (std::unique_ptr< MemoryBuffer > &&Buffer, LLVMContext &Context, bool ShouldLazyLoadMetadata=false, bool IsImporting=false) |
| Like getLazyBitcodeModule, except that the module takes ownership of the memory buffer if successful. More... | |
| Expected< std::string > | getBitcodeTargetTriple (MemoryBufferRef Buffer) |
| Read the header of the specified bitcode buffer and extract just the triple information. More... | |
| Expected< bool > | isBitcodeContainingObjCCategory (MemoryBufferRef Buffer) |
Return true if Buffer contains a bitcode file with ObjC code (category or class) in it. More... | |
| Expected< std::string > | getBitcodeProducerString (MemoryBufferRef Buffer) |
| Read the header of the specified bitcode buffer and extract just the producer string information. More... | |
| Expected< std::unique_ptr< Module > > | parseBitcodeFile (MemoryBufferRef Buffer, LLVMContext &Context) |
| Read the specified bitcode file, returning the module. More... | |
| Expected< BitcodeLTOInfo > | getBitcodeLTOInfo (MemoryBufferRef Buffer) |
| Returns LTO information for the specified bitcode file. More... | |
| Expected< std::unique_ptr< ModuleSummaryIndex > > | getModuleSummaryIndex (MemoryBufferRef Buffer) |
| Parse the specified bitcode buffer, returning the module summary index. More... | |
| Error | readModuleSummaryIndex (MemoryBufferRef Buffer, ModuleSummaryIndex &CombinedIndex, uint64_t ModuleId) |
| Parse the specified bitcode buffer and merge the index into CombinedIndex. More... | |
| Expected< std::unique_ptr< ModuleSummaryIndex > > | getModuleSummaryIndexForFile (StringRef Path, bool IgnoreEmptyThinLTOIndexFile=false) |
| Parse the module summary index out of an IR file and return the module summary index object if found, or an empty summary if not. More... | |
| bool | isBitcodeWrapper (const unsigned char *BufPtr, const unsigned char *BufEnd) |
| isBitcodeWrapper - Return true if the given bytes are the magic bytes for an LLVM IR bitcode wrapper. More... | |
| bool | isRawBitcode (const unsigned char *BufPtr, const unsigned char *BufEnd) |
| isRawBitcode - Return true if the given bytes are the magic bytes for raw LLVM IR bitcode (without a wrapper). More... | |
| bool | isBitcode (const unsigned char *BufPtr, const unsigned char *BufEnd) |
| isBitcode - Return true if the given bytes are the magic bytes for LLVM IR bitcode, either with or without a wrapper. More... | |
| bool | SkipBitcodeWrapperHeader (const unsigned char *&BufPtr, const unsigned char *&BufEnd, bool VerifyBufferSize) |
| SkipBitcodeWrapperHeader - Some systems wrap bc files with a special header for padding or other reasons. More... | |
| const std::error_category & | BitcodeErrorCategory () |
| std::error_code | make_error_code (BitcodeError E) |
| void | WriteBitcodeToFile (const Module &M, raw_ostream &Out, bool ShouldPreserveUseListOrder=false, const ModuleSummaryIndex *Index=nullptr, bool GenerateHash=false, ModuleHash *ModHash=nullptr) |
| Write the specified module to the specified raw output stream. More... | |
| void | WriteThinLinkBitcodeToFile (const Module &M, raw_ostream &Out, const ModuleSummaryIndex &Index, const ModuleHash &ModHash) |
| Write the specified thin link bitcode file (i.e., the minimized bitcode file) to the given raw output stream, where it will be written in a new bitcode block. More... | |
| void | WriteIndexToFile (const ModuleSummaryIndex &Index, raw_ostream &Out, const std::map< std::string, GVSummaryMapTy > *ModuleToSummariesForIndex=nullptr) |
| Write the specified module summary index to the given raw output stream, where it will be written in a new bitcode block. More... | |
| void | EmbedBitcodeInModule (Module &M, MemoryBufferRef Buf, bool EmbedBitcode, bool EmbedMarker, const std::vector< uint8_t > *CmdArgs) |
| Save a copy of the llvm IR as data in the __LLVM,__bitcode section. More... | |
| ModulePass * | createBitcodeWriterPass (raw_ostream &Str, bool ShouldPreserveUseListOrder=false, bool EmitSummaryIndex=false, bool EmitModuleHash=false) |
| Create and return a pass that writes the module to the specified ostream. More... | |
| bool | isBitcodeWriterPass (Pass *P) |
| Check whether a pass is a BitcodeWriterPass. More... | |
| void | emitAppleAccelTableImpl (AsmPrinter *Asm, AccelTableBase &Contents, StringRef Prefix, const MCSymbol *SecBegin, ArrayRef< AppleAccelTableData::Atom > Atoms) |
| template<typename DataT > | |
| void | emitAppleAccelTable (AsmPrinter *Asm, AccelTable< DataT > &Contents, StringRef Prefix, const MCSymbol *SecBegin) |
| Emit an Apple Accelerator Table consisting of entries in the specified AccelTable. More... | |
| void | emitDWARF5AccelTable (AsmPrinter *Asm, AccelTable< DWARF5AccelTableData > &Contents, const DwarfDebug &DD, ArrayRef< std::unique_ptr< DwarfCompileUnit >> CUs) |
| void | emitDWARF5AccelTable (AsmPrinter *Asm, AccelTable< DWARF5AccelTableStaticData > &Contents, ArrayRef< MCSymbol *> CUs, llvm::function_ref< unsigned(const DWARF5AccelTableStaticData &)> getCUIndexForEntry) |
| unsigned | ComputeLinearIndex (Type *Ty, const unsigned *Indices, const unsigned *IndicesEnd, unsigned CurIndex=0) |
| Compute the linearized index of a member in a nested aggregate/struct/array. More... | |
| unsigned | ComputeLinearIndex (Type *Ty, ArrayRef< unsigned > Indices, unsigned CurIndex=0) |
| void | ComputeValueVTs (const TargetLowering &TLI, const DataLayout &DL, Type *Ty, SmallVectorImpl< EVT > &ValueVTs, SmallVectorImpl< uint64_t > *Offsets=nullptr, uint64_t StartingOffset=0) |
| ComputeValueVTs - Given an LLVM IR type, compute a sequence of EVTs that represent all the individual underlying non-aggregate types that comprise it. More... | |
| void | ComputeValueVTs (const TargetLowering &TLI, const DataLayout &DL, Type *Ty, SmallVectorImpl< EVT > &ValueVTs, SmallVectorImpl< EVT > *MemVTs, SmallVectorImpl< uint64_t > *Offsets=nullptr, uint64_t StartingOffset=0) |
| Variant of ComputeValueVTs that also produces the memory VTs. More... | |
| void | computeValueLLTs (const DataLayout &DL, Type &Ty, SmallVectorImpl< LLT > &ValueTys, SmallVectorImpl< uint64_t > *Offsets=nullptr, uint64_t StartingOffset=0) |
| computeValueLLTs - Given an LLVM IR type, compute a sequence of LLTs that represent all the individual underlying non-aggregate types that comprise it. More... | |
| GlobalValue * | ExtractTypeInfo (Value *V) |
| ExtractTypeInfo - Returns the type info, possibly bitcast, encoded in V. More... | |
| bool | hasInlineAsmMemConstraint (InlineAsm::ConstraintInfoVector &CInfos, const TargetLowering &TLI) |
| hasInlineAsmMemConstraint - Return true if the inline asm instruction being processed uses a memory 'm' constraint. More... | |
| ISD::CondCode | getFCmpCondCode (FCmpInst::Predicate Pred) |
| getFCmpCondCode - Return the ISD condition code corresponding to the given LLVM IR floating-point condition code. More... | |
| ISD::CondCode | getFCmpCodeWithoutNaN (ISD::CondCode CC) |
| getFCmpCodeWithoutNaN - Given an ISD condition code comparing floats, return the equivalent code if we're allowed to assume that NaNs won't occur. More... | |
| ISD::CondCode | getICmpCondCode (ICmpInst::Predicate Pred) |
| getICmpCondCode - Return the ISD condition code corresponding to the given LLVM IR integer condition code. More... | |
| bool | isInTailCallPosition (ImmutableCallSite CS, const TargetMachine &TM) |
| Test if the given instruction is in a position to be optimized with a tail-call. More... | |
| bool | attributesPermitTailCall (const Function *F, const Instruction *I, const ReturnInst *Ret, const TargetLoweringBase &TLI, bool *AllowDifferingSizes=nullptr) |
| Test if given that the input instruction is in the tail call position, if there is an attribute mismatch between the caller and the callee that will inhibit tail call optimizations. More... | |
| bool | returnTypeIsEligibleForTailCall (const Function *F, const Instruction *I, const ReturnInst *Ret, const TargetLoweringBase &TLI) |
| Test if given that the input instruction is in the tail call position if the return type or any attributes of the function will inhibit tail call optimization. More... | |
| DenseMap< const MachineBasicBlock *, int > | getEHScopeMembership (const MachineFunction &MF) |
| bool | expandAtomicRMWToCmpXchg (AtomicRMWInst *AI, CreateCmpXchgInstFun CreateCmpXchg) |
| Expand an atomic RMW instruction into a loop utilizing cmpxchg. More... | |
| void | linkAllBuiltinGCs () |
| FIXME: Collector instances are not useful on their own. More... | |
| void | linkOcamlGCPrinter () |
| Creates an ocaml-compatible metadata printer. More... | |
| void | linkErlangGCPrinter () |
| Creates an erlang-compatible metadata printer. More... | |
| static float | normalizeSpillWeight (float UseDefFreq, unsigned Size, unsigned NumInstr) |
| Normalize the spill weight of a live interval. More... | |
| void | calculateSpillWeightsAndHints (LiveIntervals &LIS, MachineFunction &MF, VirtRegMap *VRM, const MachineLoopInfo &MLI, const MachineBlockFrequencyInfo &MBFI, VirtRegAuxInfo::NormalizingFn norm=normalizeSpillWeight) |
| Compute spill weights and allocation hints for all virtual register live intervals. More... | |
| const CostTblEntry * | CostTableLookup (ArrayRef< CostTblEntry > Tbl, int ISD, MVT Ty) |
| Find in cost table, TypeTy must be comparable to CompareTy by ==. More... | |
| const TypeConversionCostTblEntry * | ConvertCostTableLookup (ArrayRef< TypeConversionCostTblEntry > Tbl, int ISD, MVT Dst, MVT Src) |
| Find in type conversion cost table, TypeTy must be comparable to CompareTy by ==. More... | |
| void | calculateDbgEntityHistory (const MachineFunction *MF, const TargetRegisterInfo *TRI, DbgValueHistoryMap &DbgValues, DbgLabelInstrMap &DbgLabels) |
| raw_ostream & | operator<< (raw_ostream &OS, const FaultMapParser::FunctionFaultInfoAccessor &) |
| raw_ostream & | operator<< (raw_ostream &OS, const FaultMapParser::FunctionInfoAccessor &) |
| raw_ostream & | operator<< (raw_ostream &OS, const FaultMapParser &) |
| std::unique_ptr< CSEConfigBase > | getStandardCSEConfigForOpt (CodeGenOpt::Level Level) |
| LegalizerHelper::LegalizeResult | createLibcall (MachineIRBuilder &MIRBuilder, RTLIB::Libcall Libcall, const CallLowering::ArgInfo &Result, ArrayRef< CallLowering::ArgInfo > Args) |
| Helper function that creates the given libcall. More... | |
| LegalizerHelper::LegalizeResult | createMemLibcall (MachineIRBuilder &MIRBuilder, MachineRegisterInfo &MRI, MachineInstr &MI) |
| Create a libcall to memcpy et al. More... | |
| raw_ostream & | operator<< (raw_ostream &OS, LegalizeActions::LegalizeAction Action) |
| const MachineInstr * | machineFunctionIsIllegal (const MachineFunction &MF) |
| Checks that MIR is fully legal, returns an illegal instruction if it's not, nullptr otherwise. More... | |
| raw_ostream & | operator<< (raw_ostream &OS, const RegisterBank &RegBank) |
| class llvm::RegisterBankInfo | ScalarAddx2 (0x00FF, GPR) |
| class llvm::RegisterBankInfo *void | applyMapping (const OperandsMapper &OpdMapper) const |
Apply OpdMapper.getInstrMapping() to OpdMapper.getMI(). More... | |
| unsigned | getSizeInBits (Register Reg, const MachineRegisterInfo &MRI, const TargetRegisterInfo &TRI) const |
Get the size in bits of Reg. More... | |
| bool | verify (const TargetRegisterInfo &TRI) const |
Check that information hold by this instance make sense for the given TRI. More... | |
| unsigned | constrainRegToClass (MachineRegisterInfo &MRI, const TargetInstrInfo &TII, const RegisterBankInfo &RBI, unsigned Reg, const TargetRegisterClass &RegClass) |
| Try to constrain Reg to the specified register class. More... | |
| unsigned | constrainOperandRegClass (const MachineFunction &MF, const TargetRegisterInfo &TRI, MachineRegisterInfo &MRI, const TargetInstrInfo &TII, const RegisterBankInfo &RBI, MachineInstr &InsertPt, const TargetRegisterClass &RegClass, const MachineOperand &RegMO, unsigned OpIdx) |
| Constrain the Register operand OpIdx, so that it is now constrained to the TargetRegisterClass passed as an argument (RegClass). More... | |
| unsigned | constrainOperandRegClass (const MachineFunction &MF, const TargetRegisterInfo &TRI, MachineRegisterInfo &MRI, const TargetInstrInfo &TII, const RegisterBankInfo &RBI, MachineInstr &InsertPt, const MCInstrDesc &II, const MachineOperand &RegMO, unsigned OpIdx) |
Try to constrain Reg so that it is usable by argument OpIdx of the provided MCInstrDesc II. More... | |
| bool | constrainSelectedInstRegOperands (MachineInstr &I, const TargetInstrInfo &TII, const TargetRegisterInfo &TRI, const RegisterBankInfo &RBI) |
Mutate the newly-selected instruction I to constrain its (possibly generic) virtual register operands to the instruction's register class. More... | |
| bool | isTriviallyDead (const MachineInstr &MI, const MachineRegisterInfo &MRI) |
Check whether an instruction MI is dead: it only defines dead virtual registers, and doesn't have other side effects. More... | |
| void | reportGISelFailure (MachineFunction &MF, const TargetPassConfig &TPC, MachineOptimizationRemarkEmitter &MORE, MachineOptimizationRemarkMissed &R) |
| Report an ISel error as a missed optimization remark to the LLVMContext's diagnostic stream. More... | |
| void | reportGISelFailure (MachineFunction &MF, const TargetPassConfig &TPC, MachineOptimizationRemarkEmitter &MORE, const char *PassName, StringRef Msg, const MachineInstr &MI) |
| Optional< int64_t > | getConstantVRegVal (unsigned VReg, const MachineRegisterInfo &MRI) |
If VReg is defined by a G_CONSTANT fits in int64_t returns it. More... | |
| Optional< ValueAndVReg > | getConstantVRegValWithLookThrough (unsigned VReg, const MachineRegisterInfo &MRI, bool LookThroughInstrs=true, bool HandleFConstants=true) |
If VReg is defined by a statically evaluable chain of instructions rooted on a G_F/CONSTANT (LookThroughInstrs == true) and that constant fits in int64_t, returns its value as well as the virtual register defined by this G_F/CONSTANT. More... | |
| const ConstantFP * | getConstantFPVRegVal (unsigned VReg, const MachineRegisterInfo &MRI) |
| MachineInstr * | getOpcodeDef (unsigned Opcode, Register Reg, const MachineRegisterInfo &MRI) |
| See if Reg is defined by an single def instruction that is Opcode. More... | |
| MachineInstr * | getDefIgnoringCopies (Register Reg, const MachineRegisterInfo &MRI) |
Find the def instruction for Reg, folding away any trivial copies. More... | |
| APFloat | getAPFloatFromSize (double Val, unsigned Size) |
| Returns an APFloat from Val converted to the appropriate size. More... | |
| void | getSelectionDAGFallbackAnalysisUsage (AnalysisUsage &AU) |
| Modify analysis usage so it preserves passes required for the SelectionDAG fallback. More... | |
| Optional< APInt > | ConstantFoldBinOp (unsigned Opcode, const unsigned Op1, const unsigned Op2, const MachineRegisterInfo &MRI) |
| Optional< APInt > | ConstantFoldExtOp (unsigned Opcode, const unsigned Op1, uint64_t Imm, const MachineRegisterInfo &MRI) |
| bool | isKnownNeverNaN (Register Val, const MachineRegisterInfo &MRI, bool SNaN=false) |
Returns true if Val can be assumed to never be a NaN. More... | |
| bool | isKnownNeverSNaN (Register Val, const MachineRegisterInfo &MRI) |
Returns true if Val can be assumed to never be a signaling NaN. More... | |
| raw_ostream & | operator<< (raw_ostream &OS, const LiveRange &LR) |
| raw_ostream & | operator<< (raw_ostream &OS, const LiveInterval::SubRange &SR) |
| raw_ostream & | operator<< (raw_ostream &OS, const LiveInterval &LI) |
| raw_ostream & | operator<< (raw_ostream &OS, const LiveRange::Segment &S) |
| bool | operator< (SlotIndex V, const LiveRange::Segment &S) |
| bool | operator< (const LiveRange::Segment &S, SlotIndex V) |
| raw_ostream & | operator<< (raw_ostream &OS, const LiveRangeUpdater &X) |
| raw_ostream & | operator<< (raw_ostream &OS, const LivePhysRegs &LR) |
| void | computeLiveIns (LivePhysRegs &LiveRegs, const MachineBasicBlock &MBB) |
Computes registers live-in to MBB assuming all of its successors live-in lists are up-to-date. More... | |
| void | recomputeLivenessFlags (MachineBasicBlock &MBB) |
Recomputes dead and kill flags in MBB. More... | |
| void | addLiveIns (MachineBasicBlock &MBB, const LivePhysRegs &LiveRegs) |
Adds registers contained in LiveRegs to the block live-in list of MBB. More... | |
| void | computeAndAddLiveIns (LivePhysRegs &LiveRegs, MachineBasicBlock &MBB) |
| Convenience function combining computeLiveIns() and addLiveIns(). More... | |
| static void | recomputeLiveIns (MachineBasicBlock &MBB) |
Convenience function for recomputing live-in's for MBB. More... | |
| iterator_range< filter_iterator< ConstMIBundleOperands, std::function< bool(const MachineOperand &)> > > | phys_regs_and_masks (const MachineInstr &MI) |
Returns an iterator range over all physical register and mask operands for MI and bundled instructions. More... | |
| LLT | getLLTForType (Type &Ty, const DataLayout &DL) |
| Construct a low-level type based on an LLVM type. More... | |
| MVT | getMVTForLLT (LLT Ty) |
| Get a rough equivalent of an MVT for a given LLT. More... | |
| LLT | getLLTForMVT (MVT Ty) |
| Get a rough equivalent of an LLT for a given MVT. More... | |
| raw_ostream & | operator<< (raw_ostream &OS, const MachineBasicBlock &MBB) |
| Printable | printMBBReference (const MachineBasicBlock &MBB) |
| Prints a machine basic block reference. More... | |
| template<typename IterT > | |
| IterT | skipDebugInstructionsForward (IterT It, IterT End) |
Increment It until it points to a non-debug instruction or to End and return the resulting iterator. More... | |
| template<class IterT > | |
| IterT | skipDebugInstructionsBackward (IterT It, IterT Begin) |
Decrement It until it points to a non-debug instruction or to Begin and return the resulting iterator. More... | |
| raw_ostream & | operator<< (raw_ostream &OS, const MachineConstantPoolValue &V) |
| raw_ostream & | operator<< (raw_ostream &OS, const MachineInstr &MI) |
| MachineInstrBuilder | BuildMI (MachineFunction &MF, const DebugLoc &DL, const MCInstrDesc &MCID) |
| Builder interface. Specify how to create the initial instruction itself. More... | |
| MachineInstrBuilder | BuildMI (MachineFunction &MF, const DebugLoc &DL, const MCInstrDesc &MCID, Register DestReg) |
| This version of the builder sets up the first operand as a destination virtual register. More... | |
| MachineInstrBuilder | BuildMI (MachineBasicBlock &BB, MachineBasicBlock::iterator I, const DebugLoc &DL, const MCInstrDesc &MCID, Register DestReg) |
| This version of the builder inserts the newly-built instruction before the given position in the given MachineBasicBlock, and sets up the first operand as a destination virtual register. More... | |
| MachineInstrBuilder | BuildMI (MachineBasicBlock &BB, MachineBasicBlock::instr_iterator I, const DebugLoc &DL, const MCInstrDesc &MCID, Register DestReg) |
| This version of the builder inserts the newly-built instruction before the given position in the given MachineBasicBlock, and sets up the first operand as a destination virtual register. More... | |
| MachineInstrBuilder | BuildMI (MachineBasicBlock &BB, MachineInstr &I, const DebugLoc &DL, const MCInstrDesc &MCID, Register DestReg) |
| MachineInstrBuilder | BuildMI (MachineBasicBlock &BB, MachineInstr *I, const DebugLoc &DL, const MCInstrDesc &MCID, Register DestReg) |
| MachineInstrBuilder | BuildMI (MachineBasicBlock &BB, MachineBasicBlock::iterator I, const DebugLoc &DL, const MCInstrDesc &MCID) |
| This version of the builder inserts the newly-built instruction before the given position in the given MachineBasicBlock, and does NOT take a destination register. More... | |
| MachineInstrBuilder | BuildMI (MachineBasicBlock &BB, MachineBasicBlock::instr_iterator I, const DebugLoc &DL, const MCInstrDesc &MCID) |
| MachineInstrBuilder | BuildMI (MachineBasicBlock &BB, MachineInstr &I, const DebugLoc &DL, const MCInstrDesc &MCID) |
| MachineInstrBuilder | BuildMI (MachineBasicBlock &BB, MachineInstr *I, const DebugLoc &DL, const MCInstrDesc &MCID) |
| MachineInstrBuilder | BuildMI (MachineBasicBlock *BB, const DebugLoc &DL, const MCInstrDesc &MCID) |
| This version of the builder inserts the newly-built instruction at the end of the given MachineBasicBlock, and does NOT take a destination register. More... | |
| MachineInstrBuilder | BuildMI (MachineBasicBlock *BB, const DebugLoc &DL, const MCInstrDesc &MCID, Register DestReg) |
| This version of the builder inserts the newly-built instruction at the end of the given MachineBasicBlock, and sets up the first operand as a destination virtual register. More... | |
| MachineInstrBuilder | BuildMI (MachineFunction &MF, const DebugLoc &DL, const MCInstrDesc &MCID, bool IsIndirect, Register Reg, const MDNode *Variable, const MDNode *Expr) |
| This version of the builder builds a DBG_VALUE intrinsic for either a value in a register or a register-indirect address. More... | |
| MachineInstrBuilder | BuildMI (MachineFunction &MF, const DebugLoc &DL, const MCInstrDesc &MCID, bool IsIndirect, MachineOperand &MO, const MDNode *Variable, const MDNode *Expr) |
| This version of the builder builds a DBG_VALUE intrinsic for a MachineOperand. More... | |
| MachineInstrBuilder | BuildMI (MachineBasicBlock &BB, MachineBasicBlock::iterator I, const DebugLoc &DL, const MCInstrDesc &MCID, bool IsIndirect, Register Reg, const MDNode *Variable, const MDNode *Expr) |
| This version of the builder builds a DBG_VALUE intrinsic for either a value in a register or a register-indirect address and inserts it at position I. More... | |
| MachineInstrBuilder | BuildMI (MachineBasicBlock &BB, MachineBasicBlock::iterator I, const DebugLoc &DL, const MCInstrDesc &MCID, bool IsIndirect, MachineOperand &MO, const MDNode *Variable, const MDNode *Expr) |
| This version of the builder builds a DBG_VALUE intrinsic for a machine operand and inserts it at position I. More... | |
| MachineInstr * | buildDbgValueForSpill (MachineBasicBlock &BB, MachineBasicBlock::iterator I, const MachineInstr &Orig, int FrameIndex) |
| Clone a DBG_VALUE whose value has been spilled to FrameIndex. More... | |
| void | updateDbgValueForSpill (MachineInstr &Orig, int FrameIndex) |
| Update a DBG_VALUE whose value has been spilled to FrameIndex. More... | |
| unsigned | getDefRegState (bool B) |
| unsigned | getImplRegState (bool B) |
| unsigned | getKillRegState (bool B) |
| unsigned | getDeadRegState (bool B) |
| unsigned | getUndefRegState (bool B) |
| unsigned | getInternalReadRegState (bool B) |
| unsigned | getDebugRegState (bool B) |
| unsigned | getRenamableRegState (bool B) |
| unsigned | getRegState (const MachineOperand &RegOp) |
Get all register state flags from machine operand RegOp. More... | |
| void | finalizeBundle (MachineBasicBlock &MBB, MachineBasicBlock::instr_iterator FirstMI, MachineBasicBlock::instr_iterator LastMI) |
| finalizeBundle - Finalize a machine instruction bundle which includes a sequence of instructions starting from FirstMI to LastMI (exclusive). More... | |
| MachineBasicBlock::instr_iterator | finalizeBundle (MachineBasicBlock &MBB, MachineBasicBlock::instr_iterator FirstMI) |
| finalizeBundle - Same functionality as the previous finalizeBundle except the last instruction in the bundle is not provided as an input. More... | |
| bool | finalizeBundles (MachineFunction &MF) |
| finalizeBundles - Finalize instruction bundles in the specified MachineFunction. More... | |
| MachineBasicBlock::instr_iterator | getBundleStart (MachineBasicBlock::instr_iterator I) |
Returns an iterator to the first instruction in the bundle containing I. More... | |
| MachineBasicBlock::const_instr_iterator | getBundleStart (MachineBasicBlock::const_instr_iterator I) |
Returns an iterator to the first instruction in the bundle containing I. More... | |
| MachineBasicBlock::instr_iterator | getBundleEnd (MachineBasicBlock::instr_iterator I) |
Returns an iterator pointing beyond the bundle containing I. More... | |
| MachineBasicBlock::const_instr_iterator | getBundleEnd (MachineBasicBlock::const_instr_iterator I) |
Returns an iterator pointing beyond the bundle containing I. More... | |
| iterator_range< ConstMIBundleOperands > | const_mi_bundle_ops (const MachineInstr &MI) |
| iterator_range< MIBundleOperands > | mi_bundle_ops (MachineInstr &MI) |
| VirtRegInfo | AnalyzeVirtRegInBundle (MachineInstr &MI, unsigned Reg, SmallVectorImpl< std::pair< MachineInstr *, unsigned >> *Ops=nullptr) |
| AnalyzeVirtRegInBundle - Analyze how the current instruction or bundle uses a virtual register. More... | |
| PhysRegInfo | AnalyzePhysRegInBundle (const MachineInstr &MI, unsigned Reg, const TargetRegisterInfo *TRI) |
| AnalyzePhysRegInBundle - Analyze how the current instruction or bundle uses a physical register. More... | |
| Printable | printJumpTableEntryReference (unsigned Idx) |
| Prints a jump table entry reference. More... | |
| MachineBasicBlock * | PeelSingleBlockLoop (LoopPeelDirection Direction, MachineBasicBlock *Loop, MachineRegisterInfo &MRI, const TargetInstrInfo *TII) |
| Peels a single block loop. More... | |
| bool | isRegLiveInExitBlocks (MachineLoop *Loop, int PhysReg) |
| Return true if PhysReg is live outside the loop, i.e. More... | |
| raw_ostream & | operator<< (raw_ostream &OS, const MachineOperand &MO) |
| hash_code | hash_value (const MachineOperand &MO) |
| RegionNodeGraphTraits (MachineRegionNode, MachineBasicBlock, MachineRegion) | |
| RegionGraphTraits (MachineRegion, MachineRegionNode) | |
| bool | tryLess (int TryVal, int CandVal, GenericSchedulerBase::SchedCandidate &TryCand, GenericSchedulerBase::SchedCandidate &Cand, GenericSchedulerBase::CandReason Reason) |
| Return true if this heuristic determines order. More... | |
| bool | tryGreater (int TryVal, int CandVal, GenericSchedulerBase::SchedCandidate &TryCand, GenericSchedulerBase::SchedCandidate &Cand, GenericSchedulerBase::CandReason Reason) |
| bool | tryLatency (GenericSchedulerBase::SchedCandidate &TryCand, GenericSchedulerBase::SchedCandidate &Cand, SchedBoundary &Zone) |
| bool | tryPressure (const PressureChange &TryP, const PressureChange &CandP, GenericSchedulerBase::SchedCandidate &TryCand, GenericSchedulerBase::SchedCandidate &Cand, GenericSchedulerBase::CandReason Reason, const TargetRegisterInfo *TRI, const MachineFunction &MF) |
| unsigned | getWeakLeft (const SUnit *SU, bool isTop) |
| int | biasPhysReg (const SUnit *SU, bool isTop) |
| Minimize physical register live ranges. More... | |
| ScheduleDAGMILive * | createGenericSchedLive (MachineSchedContext *C) |
| Create the standard converging machine scheduler. More... | |
| ScheduleDAGMI * | createGenericSchedPostRA (MachineSchedContext *C) |
| Create a generic scheduler with no vreg liveness or DAG mutation passes. More... | |
| std::unique_ptr< ScheduleDAGMutation > | createLoadClusterDAGMutation (const TargetInstrInfo *TII, const TargetRegisterInfo *TRI) |
| std::unique_ptr< ScheduleDAGMutation > | createStoreClusterDAGMutation (const TargetInstrInfo *TII, const TargetRegisterInfo *TRI) |
| std::unique_ptr< ScheduleDAGMutation > | createCopyConstrainDAGMutation (const TargetInstrInfo *TII, const TargetRegisterInfo *TRI) |
| bool | shouldOptimizeForSize (const MachineFunction *MF, ProfileSummaryInfo *PSI, const MachineBlockFrequencyInfo *BFI, PGSOQueryType QueryType=PGSOQueryType::Other) |
Returns true if machine function MF is suggested to be size-optimized based on the profile. More... | |
| bool | shouldOptimizeForSize (const MachineBasicBlock *MBB, ProfileSummaryInfo *PSI, const MachineBlockFrequencyInfo *MBFI, PGSOQueryType QueryType=PGSOQueryType::Other) |
Returns true if machine basic block MBB is suggested to be size-optimized based on the profile. More... | |
| raw_ostream & | operator<< (raw_ostream &OS, const MachineTraceMetrics::Trace &Tr) |
| raw_ostream & | operator<< (raw_ostream &OS, const MachineTraceMetrics::Ensemble &En) |
| std::unique_ptr< ScheduleDAGMutation > | createMacroFusionDAGMutation (ShouldSchedulePredTy shouldScheduleAdjacent) |
| Create a DAG scheduling mutation to pair instructions back to back for instructions that benefit according to the target-specific shouldScheduleAdjacent predicate function. More... | |
| std::unique_ptr< ScheduleDAGMutation > | createBranchMacroFusionDAGMutation (ShouldSchedulePredTy shouldScheduleAdjacent) |
| Create a DAG scheduling mutation to pair branch instructions with one of their predecessors back to back for instructions that benefit according to the target-specific shouldScheduleAdjacent predicate function. More... | |
| bool | parseMachineBasicBlockDefinitions (PerFunctionMIParsingState &PFS, StringRef Src, SMDiagnostic &Error) |
| Parse the machine basic block definitions, and skip the machine instructions. More... | |
| bool | parseMachineInstructions (PerFunctionMIParsingState &PFS, StringRef Src, SMDiagnostic &Error) |
| Parse the machine instructions. More... | |
| bool | parseMBBReference (PerFunctionMIParsingState &PFS, MachineBasicBlock *&MBB, StringRef Src, SMDiagnostic &Error) |
| bool | parseRegisterReference (PerFunctionMIParsingState &PFS, unsigned &Reg, StringRef Src, SMDiagnostic &Error) |
| bool | parseNamedRegisterReference (PerFunctionMIParsingState &PFS, unsigned &Reg, StringRef Src, SMDiagnostic &Error) |
| bool | parseVirtualRegisterReference (PerFunctionMIParsingState &PFS, VRegInfo *&Info, StringRef Src, SMDiagnostic &Error) |
| bool | parseStackObjectReference (PerFunctionMIParsingState &PFS, int &FI, StringRef Src, SMDiagnostic &Error) |
| bool | parseMDNode (PerFunctionMIParsingState &PFS, MDNode *&Node, StringRef Src, SMDiagnostic &Error) |
| std::unique_ptr< MIRParser > | createMIRParserFromFile (StringRef Filename, SMDiagnostic &Error, LLVMContext &Context, std::function< void(Function &)> ProcessIRFunction=nullptr) |
| This function is the main interface to the MIR serialization format parser. More... | |
| std::unique_ptr< MIRParser > | createMIRParser (std::unique_ptr< MemoryBuffer > Contents, LLVMContext &Context, std::function< void(Function &)> ProcessIRFunction=nullptr) |
| This function is another interface to the MIR serialization format parser. More... | |
| void | printMIR (raw_ostream &OS, const Module &M) |
| Print LLVM IR using the MIR serialization format to the given output stream. More... | |
| void | printMIR (raw_ostream &OS, const MachineFunction &MF) |
| Print a machine function using the MIR serialization format to the given output stream. More... | |
| void | guessSuccessors (const MachineBasicBlock &MBB, SmallVectorImpl< MachineBasicBlock *> &Result, bool &IsFallthrough) |
| Determine a possible list of successors of a basic block based on the basic block machine operand being used inside the block. More... | |
| std::unique_ptr< Module > | splitCodeGen (std::unique_ptr< Module > M, ArrayRef< raw_pwrite_stream *> OSs, ArrayRef< llvm::raw_pwrite_stream *> BCOSs, const std::function< std::unique_ptr< TargetMachine >()> &TMFactory, CodeGenFileType FileType=CGFT_ObjectFile, bool PreserveLocals=false) |
| Split M into OSs.size() partitions, and generate code for each. More... | |
| FunctionPass * | createAtomicExpandPass () |
| FunctionPass * | createUnreachableBlockEliminationPass () |
| createUnreachableBlockEliminationPass - The LLVM code generator does not work well with unreachable basic blocks (what live ranges make sense for a block that cannot be reached?). More... | |
| MachineFunctionPass * | createMachineFunctionPrinterPass (raw_ostream &OS, const std::string &Banner="") |
| MachineFunctionPrinter pass - This pass prints out the machine function to the given stream as a debugging tool. More... | |
| MachineFunctionPass * | createPrintMIRPass (raw_ostream &OS) |
| MIRPrinting pass - this pass prints out the LLVM IR into the given stream using the MIR serialization format. More... | |
| MachineFunctionPass * | createResetMachineFunctionPass (bool EmitFallbackDiag, bool AbortOnFailedISel) |
| This pass resets a MachineFunction when it has the FailedISel property as if it was just created. More... | |
| FunctionPass * | createCodeGenPreparePass () |
| createCodeGenPreparePass - Transform the code to expose more pattern matching during instruction selection. More... | |
| FunctionPass * | createScalarizeMaskedMemIntrinPass () |
| createScalarizeMaskedMemIntrinPass - Replace masked load, store, gather and scatter intrinsics with scalar code when target doesn't support them. More... | |
| FunctionPass * | createFastRegisterAllocator () |
| FastRegisterAllocation Pass - This pass register allocates as fast as possible. More... | |
| FunctionPass * | createBasicRegisterAllocator () |
| BasicRegisterAllocation Pass - This pass implements a degenerate global register allocator using the basic regalloc framework. More... | |
| FunctionPass * | createGreedyRegisterAllocator () |
| Greedy register allocation pass - This pass implements a global register allocator for optimized builds. More... | |
| FunctionPass * | createDefaultPBQPRegisterAllocator () |
| PBQPRegisterAllocation Pass - This pass implements the Partitioned Boolean Quadratic Prograaming (PBQP) based register allocator. More... | |
| MachineFunctionPass * | createPrologEpilogInserterPass () |
| FunctionPass * | createIfConverter (std::function< bool(const MachineFunction &)> Ftor) |
| FunctionPass * | createGCLoweringPass () |
| GCLowering Pass - Used by gc.root to perform its default lowering operations. More... | |
| FunctionPass * | createShadowStackGCLoweringPass () |
| ShadowStackGCLowering - Implements the custom lowering mechanism used by the shadow stack GC. More... | |
| FunctionPass * | createGCInfoPrinter (raw_ostream &OS) |
| Creates a pass to print GC metadata. More... | |
| FunctionPass * | createStackProtectorPass () |
| createStackProtectorPass - This pass adds stack protectors to functions. More... | |
| FunctionPass * | createMachineVerifierPass (const std::string &Banner) |
| createMachineVerifierPass - This pass verifies cenerated machine code instructions for correctness. More... | |
| FunctionPass * | createDwarfEHPass () |
| createDwarfEHPass - This pass mulches exception handling code into a form adapted to code generation. More... | |
| FunctionPass * | createWinEHPass (bool DemoteCatchSwitchPHIOnly=false) |
| createWinEHPass - Prepares personality functions used by MSVC on Windows, in addition to the Itanium LSDA based personalities. More... | |
| FunctionPass * | createSjLjEHPreparePass () |
| createSjLjEHPreparePass - This pass adapts exception handling code to use the GCC-style builtin setjmp/longjmp (sjlj) to handling EH control flow. More... | |
| FunctionPass * | createWasmEHPass () |
| createWasmEHPass - This pass adapts exception handling code to use WebAssembly's exception handling scheme. More... | |
| FunctionPass * | createUnpackMachineBundles (std::function< bool(const MachineFunction &)> Ftor) |
| ModulePass * | createJumpInstrTablesPass () |
| createJumpInstrTables - This pass creates jump-instruction tables. More... | |
| ModulePass * | createForwardControlFlowIntegrityPass () |
| createForwardControlFlowIntegrityPass - This pass adds control-flow integrity. More... | |
| FunctionPass * | createInterleavedAccessPass () |
| InterleavedAccess Pass - This pass identifies and matches interleaved memory accesses to target specific intrinsics. More... | |
| FunctionPass * | createInterleavedLoadCombinePass () |
| InterleavedLoadCombines Pass - This pass identifies interleaved loads and combines them into wide loads detectable by InterleavedAccessPass. More... | |
| ModulePass * | createLowerEmuTLSPass () |
| LowerEmuTLS - This pass generates __emutls_[vt].xyz variables for all TLS variables for the emulated TLS model. More... | |
| ModulePass * | createPreISelIntrinsicLoweringPass () |
| This pass lowers the @llvm.load.relative and @llvm.objc. More... | |
| Pass * | createGlobalMergePass (const TargetMachine *TM, unsigned MaximalOffset, bool OnlyOptimizeForSize=false, bool MergeExternalByDefault=false) |
| GlobalMerge - This pass merges internal (by default) globals into structs to enable reuse of a base pointer by indexed addressing modes. More... | |
| FunctionPass * | createSafeStackPass () |
| This pass splits the stack into a safe stack and an unsafe stack to protect against stack-based overflow vulnerabilities. More... | |
| FunctionPass * | createRegUsageInfoCollector () |
| This pass is executed POST-RA to collect which physical registers are preserved by given machine function. More... | |
| FunctionPass * | createRegUsageInfoPropPass () |
| Return a MachineFunction pass that identifies call sites and propagates register usage information of callee to caller if available with PysicalRegisterUsageInfo pass. More... | |
| FunctionPass * | createFreeMachineFunctionPass () |
| This pass frees the memory occupied by the MachineFunction. More... | |
| ModulePass * | createMachineOutlinerPass (bool RunOnAllFunctions=true) |
| This pass performs outlining on machine instructions directly before printing assembly. More... | |
| FunctionPass * | createExpandReductionsPass () |
| This pass expands the experimental reduction intrinsics into sequences of shuffles. More... | |
| FunctionPass * | createExpandMemCmpPass () |
| FunctionPass * | createBreakFalseDeps () |
| Creates Break False Dependencies pass. More... | |
| FunctionPass * | createIndirectBrExpandPass () |
| FunctionPass * | createCFIInstrInserter () |
| Creates CFI Instruction Inserter pass. More... | |
| FunctionPass * | createCFGuardLongjmpPass () |
| Creates CFGuard longjmp target identification pass. More... | |
| FunctionPass * | createHardwareLoopsPass () |
| Create Hardware Loop pass. More... | |
| FunctionPass * | createTypePromotionPass () |
| Create IR Type Promotion pass. More... | |
| raw_ostream & | operator<< (raw_ostream &OS, const MachineMemOperand &MMO) |
| raw_ostream & | operator<< (raw_ostream &OS, const PseudoSourceValue *PSV) |
| FunctionPass * | createPBQPRegisterAllocator (char *customPassID=nullptr) |
| Create a PBQP register allocator instance. More... | |
| void | dumpRegSetPressure (ArrayRef< unsigned > SetPressure, const TargetRegisterInfo *TRI) |
| void | scavengeFrameVirtualRegs (MachineFunction &MF, RegScavenger &RS) |
| Replaces all frame index virtual registers with physical registers. More... | |
| raw_ostream & | operator<< (raw_ostream &OS, const ILPValue &Val) |
| ScheduleDAGSDNodes * | createBURRListDAGScheduler (SelectionDAGISel *IS, CodeGenOpt::Level OptLevel) |
| createBURRListDAGScheduler - This creates a bottom up register usage reduction list scheduler. More... | |
| ScheduleDAGSDNodes * | createSourceListDAGScheduler (SelectionDAGISel *IS, CodeGenOpt::Level OptLevel) |
| createBURRListDAGScheduler - This creates a bottom up list scheduler that schedules nodes in source code order when possible. More... | |
| ScheduleDAGSDNodes * | createHybridListDAGScheduler (SelectionDAGISel *IS, CodeGenOpt::Level) |
| createHybridListDAGScheduler - This creates a bottom up register pressure aware list scheduler that make use of latency information to avoid stalls for long latency instructions in low register pressure mode. More... | |
| ScheduleDAGSDNodes * | createILPListDAGScheduler (SelectionDAGISel *IS, CodeGenOpt::Level) |
| createILPListDAGScheduler - This creates a bottom up register pressure aware list scheduler that tries to increase instruction level parallelism in low register pressure mode. More... | |
| ScheduleDAGSDNodes * | createFastDAGScheduler (SelectionDAGISel *IS, CodeGenOpt::Level OptLevel) |
| createFastDAGScheduler - This creates a "fast" scheduler. More... | |
| ScheduleDAGSDNodes * | createVLIWDAGScheduler (SelectionDAGISel *IS, CodeGenOpt::Level OptLevel) |
| createVLIWDAGScheduler - Scheduler for VLIW targets. More... | |
| ScheduleDAGSDNodes * | createDefaultScheduler (SelectionDAGISel *IS, CodeGenOpt::Level OptLevel) |
| createDefaultScheduler - This creates an instruction scheduler appropriate for the target. More... | |
| ScheduleDAGSDNodes * | createDAGLinearizer (SelectionDAGISel *IS, CodeGenOpt::Level OptLevel) |
| createDAGLinearizer - This creates a "no-scheduling" scheduler which linearize the DAG using topological order. More... | |
| void | checkForCycles (const SelectionDAG *DAG, bool force=false) |
| void | checkForCycles (const SDNode *N, const SelectionDAG *DAG=nullptr, bool force=false) |
| bool | isNullConstant (SDValue V) |
Returns true if V is a constant integer zero. More... | |
| bool | isNullFPConstant (SDValue V) |
Returns true if V is an FP constant with a value of positive zero. More... | |
| bool | isAllOnesConstant (SDValue V) |
Returns true if V is an integer constant with all bits set. More... | |
| bool | isOneConstant (SDValue V) |
Returns true if V is a constant integer one. More... | |
| SDValue | peekThroughBitcasts (SDValue V) |
Return the non-bitcasted source operand of V if it exists. More... | |
| SDValue | peekThroughOneUseBitcasts (SDValue V) |
Return the non-bitcasted and one-use source operand of V if it exists. More... | |
| SDValue | peekThroughExtractSubvectors (SDValue V) |
Return the non-extracted vector source operand of V if it exists. More... | |
| bool | isBitwiseNot (SDValue V, bool AllowUndefs=false) |
Returns true if V is a bitwise not operation. More... | |
| ConstantSDNode * | isConstOrConstSplat (SDValue N, bool AllowUndefs=false, bool AllowTruncation=false) |
| Returns the SDNode if it is a constant splat BuildVector or constant int. More... | |
| ConstantSDNode * | isConstOrConstSplat (SDValue N, const APInt &DemandedElts, bool AllowUndefs=false, bool AllowTruncation=false) |
| Returns the SDNode if it is a demanded constant splat BuildVector or constant int. More... | |
| ConstantFPSDNode * | isConstOrConstSplatFP (SDValue N, bool AllowUndefs=false) |
| Returns the SDNode if it is a constant splat BuildVector or constant float. More... | |
| ConstantFPSDNode * | isConstOrConstSplatFP (SDValue N, const APInt &DemandedElts, bool AllowUndefs=false) |
| Returns the SDNode if it is a demanded constant splat BuildVector or constant float. More... | |
| bool | isNullOrNullSplat (SDValue V, bool AllowUndefs=false) |
| Return true if the value is a constant 0 integer or a splatted vector of a constant 0 integer (with no undefs by default). More... | |
| bool | isOneOrOneSplat (SDValue V) |
| Return true if the value is a constant 1 integer or a splatted vector of a constant 1 integer (with no undefs). More... | |
| bool | isAllOnesOrAllOnesSplat (SDValue V) |
| Return true if the value is a constant -1 integer or a splatted vector of a constant -1 integer (with no undefs). More... | |
| raw_ostream & | operator<< (raw_ostream &os, SlotIndex li) |
| void | GetReturnInfo (CallingConv::ID CC, Type *ReturnType, AttributeList attr, SmallVectorImpl< ISD::OutputArg > &Outs, const TargetLowering &TLI, const DataLayout &DL) |
| Given an LLVM IR type and return type attributes, compute the return value EVTs and flags, and optionally also the offsets, if the return value is being lowered to memory. More... | |
| bool | isPreISelGenericOpcode (unsigned Opcode) |
| Check whether the given Opcode is a generic opcode that is not supposed to appear after ISel. More... | |
| bool | isTargetSpecificOpcode (unsigned Opcode) |
| Check whether the given Opcode is a target-specific opcode. More... | |
| Printable | printReg (Register Reg, const TargetRegisterInfo *TRI=nullptr, unsigned SubIdx=0, const MachineRegisterInfo *MRI=nullptr) |
| Prints virtual and physical registers with or without a TRI instance. More... | |
| Printable | printRegUnit (unsigned Unit, const TargetRegisterInfo *TRI) |
| Create Printable object to print register units on a raw_ostream. More... | |
| Printable | printVRegOrUnit (unsigned VRegOrUnit, const TargetRegisterInfo *TRI) |
| Create Printable object to print virtual registers and physical registers on a raw_ostream. More... | |
| Printable | printRegClassOrBank (unsigned Reg, const MachineRegisterInfo &RegInfo, const TargetRegisterInfo *TRI) |
| Create Printable object to print register classes or register banks on a raw_ostream. More... | |
| raw_ostream & | operator<< (raw_ostream &OS, const VirtRegMap &VRM) |
| void | calculateWasmEHInfo (const Function *F, WasmEHFuncInfo &EHInfo) |
| void | calculateWinCXXEHStateNumbers (const Function *ParentFn, WinEHFuncInfo &FuncInfo) |
| Analyze the IR in ParentFn and it's handlers to build WinEHFuncInfo, which describes the state numbers and tables used by __CxxFrameHandler3. More... | |
| void | calculateSEHStateNumbers (const Function *ParentFn, WinEHFuncInfo &FuncInfo) |
| void | calculateClrEHStateNumbers (const Function *Fn, WinEHFuncInfo &FuncInfo) |
| bool | operator< (const DWARFAddressRange &LHS, const DWARFAddressRange &RHS) |
| bool | operator== (const DWARFAddressRange &LHS, const DWARFAddressRange &RHS) |
| raw_ostream & | operator<< (raw_ostream &OS, const DWARFAddressRange &R) |
| bool | operator== (const DWARFDie::attribute_iterator &LHS, const DWARFDie::attribute_iterator &RHS) |
| bool | operator!= (const DWARFDie::attribute_iterator &LHS, const DWARFDie::attribute_iterator &RHS) |
| bool | operator== (const DWARFDie &LHS, const DWARFDie &RHS) |
| bool | operator!= (const DWARFDie &LHS, const DWARFDie &RHS) |
| bool | operator< (const DWARFDie &LHS, const DWARFDie &RHS) |
| bool | operator== (const DWARFDie::iterator &LHS, const DWARFDie::iterator &RHS) |
| bool | operator!= (const DWARFDie::iterator &LHS, const DWARFDie::iterator &RHS) |
| bool | operator== (const std::reverse_iterator< DWARFDie::iterator > &LHS, const std::reverse_iterator< DWARFDie::iterator > &RHS) |
| bool | operator!= (const std::reverse_iterator< DWARFDie::iterator > &LHS, const std::reverse_iterator< DWARFDie::iterator > &RHS) |
| bool | operator== (const DWARFExpression::iterator &LHS, const DWARFExpression::iterator &RHS) |
| bool | operator!= (const DWARFExpression::iterator &LHS, const DWARFExpression::iterator &RHS) |
| bool | operator== (const DWARFLocationExpression &L, const DWARFLocationExpression &R) |
| bool | operator!= (const DWARFLocationExpression &L, const DWARFLocationExpression &R) |
| raw_ostream & | operator<< (raw_ostream &OS, const DWARFLocationExpression &Loc) |
| const DWARFUnitIndex & | getDWARFUnitIndex (DWARFContext &Context, DWARFSectionKind Kind) |
| static bool | operator< (const DWARFVerifier::DieRangeInfo &LHS, const DWARFVerifier::DieRangeInfo &RHS) |
| char * | itaniumDemangle (const char *mangled_name, char *buf, size_t *n, int *status) |
| char * | microsoftDemangle (const char *mangled_name, char *buf, size_t *n, int *status, MSDemangleFlags Flags=MSDF_None) |
| std::string | demangle (const std::string &MangledName) |
| Attempt to demangle a string using different demangling schemes. More... | |
| GenericValue | PTOGV (void *P) |
| void * | GVTOP (const GenericValue &GV) |
| template<typename T > | |
| T | jitTargetAddressToPointer (JITTargetAddress Addr) |
| Convert a JITTargetAddress to a pointer. More... | |
| template<typename T > | |
| T | jitTargetAddressToFunction (JITTargetAddress Addr) |
| Convert a JITTargetAddress to a callable function pointer. More... | |
| template<typename T > | |
| JITTargetAddress | pointerToJITTargetAddress (T *Ptr) |
| Convert a pointer to a JITTargetAddress. More... | |
| JITSymbolFlags | operator & (const JITSymbolFlags &LHS, const JITSymbolFlags::FlagNames &RHS) |
| JITSymbolFlags | operator| (const JITSymbolFlags &LHS, const JITSymbolFlags::FlagNames &RHS) |
| void | jitLinkForORC (object::ObjectFile &Obj, std::unique_ptr< MemoryBuffer > UnderlyingBuffer, RuntimeDyld::MemoryManager &MemMgr, JITSymbolResolver &Resolver, bool ProcessAllSections, unique_function< Error(std::unique_ptr< RuntimeDyld::LoadedObjectInfo >, std::map< StringRef, JITEvaluatedSymbol >)> OnLoaded, unique_function< void(Error)> OnEmitted) |
| void | parseFuzzerCLOpts (int ArgC, char *ArgV[]) |
| Parse cl::opts from a fuzz target commandline. More... | |
| void | handleExecNameEncodedBEOpts (StringRef ExecName) |
| Handle backend options that are encoded in the executable name. More... | |
| void | handleExecNameEncodedOptimizerOpts (StringRef ExecName) |
| Handle optimizer options which are encoded in the executable name. More... | |
| int | runFuzzerOnInputs (int ArgC, char *ArgV[], FuzzerTestFun TestOne, FuzzerInitFun Init=[](int *, char ***) { return 0;}) |
| Runs a fuzz target on the inputs specified on the command line. More... | |
| std::unique_ptr< Module > | parseModule (const uint8_t *Data, size_t Size, LLVMContext &Context) |
| Fuzzer friendly interface for the llvm bitcode parser. More... | |
| size_t | writeModule (const Module &M, uint8_t *Dest, size_t MaxSize) |
| Fuzzer friendly interface for the llvm bitcode printer. More... | |
| std::unique_ptr< Module > | parseAndVerify (const uint8_t *Data, size_t Size, LLVMContext &Context) |
| Try to parse module and verify it. More... | |
| template<typename T , typename GenT > | |
| T | uniform (GenT &Gen, T Min, T Max) |
Return a uniformly distributed random value between Min and Max. More... | |
| template<typename T , typename GenT > | |
| T | uniform (GenT &Gen) |
Return a uniformly distributed random value of type T. More... | |
| template<typename GenT , typename RangeT , typename ElT = typename std::remove_reference< decltype(*std::begin(std::declval<RangeT>()))>::type> | |
| ReservoirSampler< ElT, GenT > | makeSampler (GenT &RandGen, RangeT &&Items) |
| template<typename GenT , typename T > | |
| ReservoirSampler< T, GenT > | makeSampler (GenT &RandGen, const T &Item, uint64_t Weight) |
| template<typename T , typename GenT > | |
| ReservoirSampler< T, GenT > | makeSampler (GenT &RandGen) |
| void | initializeCore (PassRegistry &) |
| Initialize all passes linked into the TransformUtils library. More... | |
| void | initializeTransformUtils (PassRegistry &) |
| Initialize all passes linked into the TransformUtils library. More... | |
| void | initializeScalarOpts (PassRegistry &) |
| Initialize all passes linked into the ScalarOpts library. More... | |
| void | initializeObjCARCOpts (PassRegistry &) |
| Initialize all passes linked into the ObjCARCOpts library. More... | |
| void | initializeVectorization (PassRegistry &) |
| Initialize all passes linked into the Vectorize library. More... | |
| void | initializeInstCombine (PassRegistry &) |
| Initialize all passes linked into the InstCombine library. More... | |
| void | initializeAggressiveInstCombine (PassRegistry &) |
| Initialize all passes linked into the AggressiveInstCombine library. More... | |
| void | initializeIPO (PassRegistry &) |
| Initialize all passes linked into the IPO library. More... | |
| void | initializeInstrumentation (PassRegistry &) |
| Initialize all passes linked into the Instrumentation library. More... | |
| void | initializeAnalysis (PassRegistry &) |
| Initialize all passes linked into the Analysis library. More... | |
| void | initializeCoroutines (PassRegistry &) |
| Initialize all passes linked into the Coroutines library. More... | |
| void | initializeCodeGen (PassRegistry &) |
| Initialize all passes linked into the CodeGen library. More... | |
| void | initializeGlobalISel (PassRegistry &) |
| Initialize all passes linked into the GlobalISel library. More... | |
| void | initializeTarget (PassRegistry &) |
| Initialize all passes linked into the CodeGen library. More... | |
| void | initializeAAEvalLegacyPassPass (PassRegistry &) |
| void | initializeAAResultsWrapperPassPass (PassRegistry &) |
| void | initializeADCELegacyPassPass (PassRegistry &) |
| void | initializeAddDiscriminatorsLegacyPassPass (PassRegistry &) |
| void | initializeModuleAddressSanitizerLegacyPassPass (PassRegistry &) |
| void | initializeASanGlobalsMetadataWrapperPassPass (PassRegistry &) |
| void | initializeAddressSanitizerLegacyPassPass (PassRegistry &) |
| void | initializeAggressiveInstCombinerLegacyPassPass (PassRegistry &) |
| void | initializeAliasSetPrinterPass (PassRegistry &) |
| void | initializeAlignmentFromAssumptionsPass (PassRegistry &) |
| void | initializeAlwaysInlinerLegacyPassPass (PassRegistry &) |
| void | initializeArgPromotionPass (PassRegistry &) |
| void | initializeAssumptionCacheTrackerPass (PassRegistry &) |
| void | initializeAtomicExpandPass (PassRegistry &) |
| void | initializeAttributorLegacyPassPass (PassRegistry &) |
| void | initializeBDCELegacyPassPass (PassRegistry &) |
| void | initializeBarrierNoopPass (PassRegistry &) |
| void | initializeBasicAAWrapperPassPass (PassRegistry &) |
| void | initializeBlockExtractorPass (PassRegistry &) |
| void | initializeBlockFrequencyInfoWrapperPassPass (PassRegistry &) |
| void | initializeBoundsCheckingLegacyPassPass (PassRegistry &) |
| void | initializeBranchFolderPassPass (PassRegistry &) |
| void | initializeBranchProbabilityInfoWrapperPassPass (PassRegistry &) |
| void | initializeBranchRelaxationPass (PassRegistry &) |
| void | initializeBreakCriticalEdgesPass (PassRegistry &) |
| void | initializeBreakFalseDepsPass (PassRegistry &) |
| void | initializeCanonicalizeAliasesLegacyPassPass (PassRegistry &) |
| void | initializeCFGOnlyPrinterLegacyPassPass (PassRegistry &) |
| void | initializeCFGOnlyViewerLegacyPassPass (PassRegistry &) |
| void | initializeCFGPrinterLegacyPassPass (PassRegistry &) |
| void | initializeCFGSimplifyPassPass (PassRegistry &) |
| void | initializeCFGuardPass (PassRegistry &) |
| void | initializeCFGuardLongjmpPass (PassRegistry &) |
| void | initializeCFGViewerLegacyPassPass (PassRegistry &) |
| void | initializeCFIInstrInserterPass (PassRegistry &) |
| void | initializeCFLAndersAAWrapperPassPass (PassRegistry &) |
| void | initializeCFLSteensAAWrapperPassPass (PassRegistry &) |
| void | initializeCallGraphDOTPrinterPass (PassRegistry &) |
| void | initializeCallGraphPrinterLegacyPassPass (PassRegistry &) |
| void | initializeCallGraphViewerPass (PassRegistry &) |
| void | initializeCallGraphWrapperPassPass (PassRegistry &) |
| void | initializeCallSiteSplittingLegacyPassPass (PassRegistry &) |
| void | initializeCalledValuePropagationLegacyPassPass (PassRegistry &) |
| void | initializeCodeGenPreparePass (PassRegistry &) |
| void | initializeConstantHoistingLegacyPassPass (PassRegistry &) |
| void | initializeConstantMergeLegacyPassPass (PassRegistry &) |
| void | initializeConstantPropagationPass (PassRegistry &) |
| void | initializeControlHeightReductionLegacyPassPass (PassRegistry &) |
| void | initializeCorrelatedValuePropagationPass (PassRegistry &) |
| void | initializeCostModelAnalysisPass (PassRegistry &) |
| void | initializeCrossDSOCFIPass (PassRegistry &) |
| void | initializeDAEPass (PassRegistry &) |
| void | initializeDAHPass (PassRegistry &) |
| void | initializeDCELegacyPassPass (PassRegistry &) |
| void | initializeDSELegacyPassPass (PassRegistry &) |
| void | initializeDataFlowSanitizerPass (PassRegistry &) |
| void | initializeDeadInstEliminationPass (PassRegistry &) |
| void | initializeDeadMachineInstructionElimPass (PassRegistry &) |
| void | initializeDelinearizationPass (PassRegistry &) |
| void | initializeDemandedBitsWrapperPassPass (PassRegistry &) |
| void | initializeDependenceAnalysisPass (PassRegistry &) |
| void | initializeDependenceAnalysisWrapperPassPass (PassRegistry &) |
| void | initializeDetectDeadLanesPass (PassRegistry &) |
| void | initializeDivRemPairsLegacyPassPass (PassRegistry &) |
| void | initializeDomOnlyPrinterPass (PassRegistry &) |
| void | initializeDomOnlyViewerPass (PassRegistry &) |
| void | initializeDomPrinterPass (PassRegistry &) |
| void | initializeDomViewerPass (PassRegistry &) |
| void | initializeDominanceFrontierWrapperPassPass (PassRegistry &) |
| void | initializeDominatorTreeWrapperPassPass (PassRegistry &) |
| void | initializeDwarfEHPreparePass (PassRegistry &) |
| void | initializeEarlyCSELegacyPassPass (PassRegistry &) |
| void | initializeEarlyCSEMemSSALegacyPassPass (PassRegistry &) |
| void | initializeEarlyIfConverterPass (PassRegistry &) |
| void | initializeEarlyIfPredicatorPass (PassRegistry &) |
| void | initializeEarlyMachineLICMPass (PassRegistry &) |
| void | initializeEarlyTailDuplicatePass (PassRegistry &) |
| void | initializeEdgeBundlesPass (PassRegistry &) |
| void | initializeEliminateAvailableExternallyLegacyPassPass (PassRegistry &) |
| void | initializeEntryExitInstrumenterPass (PassRegistry &) |
| void | initializeExpandMemCmpPassPass (PassRegistry &) |
| void | initializeExpandPostRAPass (PassRegistry &) |
| void | initializeExpandReductionsPass (PassRegistry &) |
| void | initializeMakeGuardsExplicitLegacyPassPass (PassRegistry &) |
| void | initializeExternalAAWrapperPassPass (PassRegistry &) |
| void | initializeFEntryInserterPass (PassRegistry &) |
| void | initializeFinalizeISelPass (PassRegistry &) |
| void | initializeFinalizeMachineBundlesPass (PassRegistry &) |
| void | initializeFlattenCFGPassPass (PassRegistry &) |
| void | initializeFloat2IntLegacyPassPass (PassRegistry &) |
| void | initializeForceFunctionAttrsLegacyPassPass (PassRegistry &) |
| void | initializeForwardControlFlowIntegrityPass (PassRegistry &) |
| void | initializeFuncletLayoutPass (PassRegistry &) |
| void | initializeFunctionImportLegacyPassPass (PassRegistry &) |
| void | initializeGCMachineCodeAnalysisPass (PassRegistry &) |
| void | initializeGCModuleInfoPass (PassRegistry &) |
| void | initializeGCOVProfilerLegacyPassPass (PassRegistry &) |
| void | initializeGVNHoistLegacyPassPass (PassRegistry &) |
| void | initializeGVNLegacyPassPass (PassRegistry &) |
| void | initializeGVNSinkLegacyPassPass (PassRegistry &) |
| void | initializeGlobalDCELegacyPassPass (PassRegistry &) |
| void | initializeGlobalMergePass (PassRegistry &) |
| void | initializeGlobalOptLegacyPassPass (PassRegistry &) |
| void | initializeGlobalSplitPass (PassRegistry &) |
| void | initializeGlobalsAAWrapperPassPass (PassRegistry &) |
| void | initializeGuardWideningLegacyPassPass (PassRegistry &) |
| void | initializeHardwareLoopsPass (PassRegistry &) |
| void | initializeHotColdSplittingLegacyPassPass (PassRegistry &) |
| void | initializeHWAddressSanitizerLegacyPassPass (PassRegistry &) |
| void | initializeIPCPPass (PassRegistry &) |
| void | initializeIPSCCPLegacyPassPass (PassRegistry &) |
| void | initializeIRCELegacyPassPass (PassRegistry &) |
| void | initializeIRTranslatorPass (PassRegistry &) |
| void | initializeIVUsersWrapperPassPass (PassRegistry &) |
| void | initializeIfConverterPass (PassRegistry &) |
| void | initializeImplicitNullChecksPass (PassRegistry &) |
| void | initializeIndVarSimplifyLegacyPassPass (PassRegistry &) |
| void | initializeIndirectBrExpandPassPass (PassRegistry &) |
| void | initializeInferAddressSpacesPass (PassRegistry &) |
| void | initializeInferFunctionAttrsLegacyPassPass (PassRegistry &) |
| void | initializeInjectTLIMappingsLegacyPass (PassRegistry &) |
| void | initializeInlineCostAnalysisPass (PassRegistry &) |
| void | initializeInstCountPass (PassRegistry &) |
| void | initializeInstNamerPass (PassRegistry &) |
| void | initializeInstSimplifyLegacyPassPass (PassRegistry &) |
| void | initializeInstrProfilingLegacyPassPass (PassRegistry &) |
| void | initializeInstrOrderFileLegacyPassPass (PassRegistry &) |
| void | initializeInstructionCombiningPassPass (PassRegistry &) |
| void | initializeInstructionSelectPass (PassRegistry &) |
| void | initializeInterleavedAccessPass (PassRegistry &) |
| void | initializeInterleavedLoadCombinePass (PassRegistry &) |
| void | initializeInternalizeLegacyPassPass (PassRegistry &) |
| void | initializeIntervalPartitionPass (PassRegistry &) |
| void | initializeJumpThreadingPass (PassRegistry &) |
| void | initializeLCSSAVerificationPassPass (PassRegistry &) |
| void | initializeLCSSAWrapperPassPass (PassRegistry &) |
| void | initializeLazyBlockFrequencyInfoPassPass (PassRegistry &) |
| void | initializeLazyBranchProbabilityInfoPassPass (PassRegistry &) |
| void | initializeLazyMachineBlockFrequencyInfoPassPass (PassRegistry &) |
| void | initializeLazyValueInfoPrinterPass (PassRegistry &) |
| void | initializeLazyValueInfoWrapperPassPass (PassRegistry &) |
| void | initializeLegacyDivergenceAnalysisPass (PassRegistry &) |
| void | initializeLegacyLICMPassPass (PassRegistry &) |
| void | initializeLegacyLoopSinkPassPass (PassRegistry &) |
| void | initializeLegalizerPass (PassRegistry &) |
| void | initializeGISelCSEAnalysisWrapperPassPass (PassRegistry &) |
| void | initializeGISelKnownBitsAnalysisPass (PassRegistry &) |
| void | initializeLibCallsShrinkWrapLegacyPassPass (PassRegistry &) |
| void | initializeLintPass (PassRegistry &) |
| void | initializeLiveDebugValuesPass (PassRegistry &) |
| void | initializeLiveDebugVariablesPass (PassRegistry &) |
| void | initializeLiveIntervalsPass (PassRegistry &) |
| void | initializeLiveRangeShrinkPass (PassRegistry &) |
| void | initializeLiveRegMatrixPass (PassRegistry &) |
| void | initializeLiveStacksPass (PassRegistry &) |
| void | initializeLiveVariablesPass (PassRegistry &) |
| void | initializeLoadStoreVectorizerLegacyPassPass (PassRegistry &) |
| void | initializeLoaderPassPass (PassRegistry &) |
| void | initializeLocalStackSlotPassPass (PassRegistry &) |
| void | initializeLocalizerPass (PassRegistry &) |
| void | initializeLoopAccessLegacyAnalysisPass (PassRegistry &) |
| void | initializeLoopDataPrefetchLegacyPassPass (PassRegistry &) |
| void | initializeLoopDeletionLegacyPassPass (PassRegistry &) |
| void | initializeLoopDistributeLegacyPass (PassRegistry &) |
| void | initializeLoopExtractorPass (PassRegistry &) |
| void | initializeLoopGuardWideningLegacyPassPass (PassRegistry &) |
| void | initializeLoopFuseLegacyPass (PassRegistry &) |
| void | initializeLoopIdiomRecognizeLegacyPassPass (PassRegistry &) |
| void | initializeLoopInfoWrapperPassPass (PassRegistry &) |
| void | initializeLoopInstSimplifyLegacyPassPass (PassRegistry &) |
| void | initializeLoopInterchangePass (PassRegistry &) |
| void | initializeLoopLoadEliminationPass (PassRegistry &) |
| void | initializeLoopPassPass (PassRegistry &) |
| Manually defined generic "LoopPass" dependency initialization. More... | |
| void | initializeLoopPredicationLegacyPassPass (PassRegistry &) |
| void | initializeLoopRerollPass (PassRegistry &) |
| void | initializeLoopRotateLegacyPassPass (PassRegistry &) |
| void | initializeLoopSimplifyCFGLegacyPassPass (PassRegistry &) |
| void | initializeLoopSimplifyPass (PassRegistry &) |
| void | initializeLoopStrengthReducePass (PassRegistry &) |
| void | initializeLoopUnrollAndJamPass (PassRegistry &) |
| void | initializeLoopUnrollPass (PassRegistry &) |
| void | initializeLoopUnswitchPass (PassRegistry &) |
| void | initializeLoopVectorizePass (PassRegistry &) |
| void | initializeLoopVersioningLICMPass (PassRegistry &) |
| void | initializeLoopVersioningPassPass (PassRegistry &) |
| void | initializeLowerAtomicLegacyPassPass (PassRegistry &) |
| void | initializeLowerConstantIntrinsicsPass (PassRegistry &) |
| void | initializeLowerEmuTLSPass (PassRegistry &) |
| void | initializeLowerExpectIntrinsicPass (PassRegistry &) |
| void | initializeLowerGuardIntrinsicLegacyPassPass (PassRegistry &) |
| void | initializeLowerWidenableConditionLegacyPassPass (PassRegistry &) |
| void | initializeLowerIntrinsicsPass (PassRegistry &) |
| void | initializeLowerInvokeLegacyPassPass (PassRegistry &) |
| void | initializeLowerSwitchPass (PassRegistry &) |
| void | initializeLowerTypeTestsPass (PassRegistry &) |
| void | initializeLowerMatrixIntrinsicsLegacyPassPass (PassRegistry &) |
| void | initializeMIRCanonicalizerPass (PassRegistry &) |
| void | initializeMIRNamerPass (PassRegistry &) |
| void | initializeMIRPrintingPassPass (PassRegistry &) |
| void | initializeMachineBlockFrequencyInfoPass (PassRegistry &) |
| void | initializeMachineBlockPlacementPass (PassRegistry &) |
| void | initializeMachineBlockPlacementStatsPass (PassRegistry &) |
| void | initializeMachineBranchProbabilityInfoPass (PassRegistry &) |
| void | initializeMachineCSEPass (PassRegistry &) |
| void | initializeMachineCombinerPass (PassRegistry &) |
| void | initializeMachineCopyPropagationPass (PassRegistry &) |
| void | initializeMachineDominanceFrontierPass (PassRegistry &) |
| void | initializeMachineDominatorTreePass (PassRegistry &) |
| void | initializeMachineFunctionPrinterPassPass (PassRegistry &) |
| void | initializeMachineLICMPass (PassRegistry &) |
| void | initializeMachineLoopInfoPass (PassRegistry &) |
| void | initializeMachineModuleInfoWrapperPassPass (PassRegistry &) |
| void | initializeMachineOptimizationRemarkEmitterPassPass (PassRegistry &) |
| void | initializeMachineOutlinerPass (PassRegistry &) |
| void | initializeMachinePipelinerPass (PassRegistry &) |
| void | initializeMachinePostDominatorTreePass (PassRegistry &) |
| void | initializeMachineRegionInfoPassPass (PassRegistry &) |
| void | initializeMachineSchedulerPass (PassRegistry &) |
| void | initializeMachineSinkingPass (PassRegistry &) |
| void | initializeMachineTraceMetricsPass (PassRegistry &) |
| void | initializeMachineVerifierPassPass (PassRegistry &) |
| void | initializeMemCpyOptLegacyPassPass (PassRegistry &) |
| void | initializeMemDepPrinterPass (PassRegistry &) |
| void | initializeMemDerefPrinterPass (PassRegistry &) |
| void | initializeMemoryDependenceWrapperPassPass (PassRegistry &) |
| void | initializeMemorySSAPrinterLegacyPassPass (PassRegistry &) |
| void | initializeMemorySSAWrapperPassPass (PassRegistry &) |
| void | initializeMemorySanitizerLegacyPassPass (PassRegistry &) |
| void | initializeMergeFunctionsLegacyPassPass (PassRegistry &) |
| void | initializeMergeICmpsLegacyPassPass (PassRegistry &) |
| void | initializeMergedLoadStoreMotionLegacyPassPass (PassRegistry &) |
| void | initializeMetaRenamerPass (PassRegistry &) |
| void | initializeModuleDebugInfoPrinterPass (PassRegistry &) |
| void | initializeModuleSummaryIndexWrapperPassPass (PassRegistry &) |
| void | initializeModuloScheduleTestPass (PassRegistry &) |
| void | initializeMustExecutePrinterPass (PassRegistry &) |
| void | initializeMustBeExecutedContextPrinterPass (PassRegistry &) |
| void | initializeNameAnonGlobalLegacyPassPass (PassRegistry &) |
| void | initializeNaryReassociateLegacyPassPass (PassRegistry &) |
| void | initializeNewGVNLegacyPassPass (PassRegistry &) |
| void | initializeObjCARCAAWrapperPassPass (PassRegistry &) |
| void | initializeObjCARCAPElimPass (PassRegistry &) |
| void | initializeObjCARCContractPass (PassRegistry &) |
| void | initializeObjCARCExpandPass (PassRegistry &) |
| void | initializeObjCARCOptPass (PassRegistry &) |
| void | initializeOptimizationRemarkEmitterWrapperPassPass (PassRegistry &) |
| void | initializeOptimizePHIsPass (PassRegistry &) |
| void | initializePAEvalPass (PassRegistry &) |
| void | initializePEIPass (PassRegistry &) |
| void | initializePGOIndirectCallPromotionLegacyPassPass (PassRegistry &) |
| void | initializePGOInstrumentationGenLegacyPassPass (PassRegistry &) |
| void | initializePGOInstrumentationUseLegacyPassPass (PassRegistry &) |
| void | initializePGOInstrumentationGenCreateVarLegacyPassPass (PassRegistry &) |
| void | initializePGOMemOPSizeOptLegacyPassPass (PassRegistry &) |
| void | initializePHIEliminationPass (PassRegistry &) |
| void | initializePartialInlinerLegacyPassPass (PassRegistry &) |
| void | initializePartiallyInlineLibCallsLegacyPassPass (PassRegistry &) |
| void | initializePatchableFunctionPass (PassRegistry &) |
| void | initializePeepholeOptimizerPass (PassRegistry &) |
| void | initializePhiValuesWrapperPassPass (PassRegistry &) |
| void | initializePhysicalRegisterUsageInfoPass (PassRegistry &) |
| void | initializePlaceBackedgeSafepointsImplPass (PassRegistry &) |
| void | initializePlaceSafepointsPass (PassRegistry &) |
| void | initializePostDomOnlyPrinterPass (PassRegistry &) |
| void | initializePostDomOnlyViewerPass (PassRegistry &) |
| void | initializePostDomPrinterPass (PassRegistry &) |
| void | initializePostDomViewerPass (PassRegistry &) |
| void | initializePostDominatorTreeWrapperPassPass (PassRegistry &) |
| void | initializePostInlineEntryExitInstrumenterPass (PassRegistry &) |
| void | initializePostMachineSchedulerPass (PassRegistry &) |
| void | initializePostOrderFunctionAttrsLegacyPassPass (PassRegistry &) |
| void | initializePostRAHazardRecognizerPass (PassRegistry &) |
| void | initializePostRAMachineSinkingPass (PassRegistry &) |
| void | initializePostRASchedulerPass (PassRegistry &) |
| void | initializePreISelIntrinsicLoweringLegacyPassPass (PassRegistry &) |
| void | initializePredicateInfoPrinterLegacyPassPass (PassRegistry &) |
| void | initializePrintFunctionPassWrapperPass (PassRegistry &) |
| void | initializePrintModulePassWrapperPass (PassRegistry &) |
| void | initializeProcessImplicitDefsPass (PassRegistry &) |
| void | initializeProfileSummaryInfoWrapperPassPass (PassRegistry &) |
| void | initializePromoteLegacyPassPass (PassRegistry &) |
| void | initializePruneEHPass (PassRegistry &) |
| void | initializeRABasicPass (PassRegistry &) |
| void | initializeRAGreedyPass (PassRegistry &) |
| void | initializeReachingDefAnalysisPass (PassRegistry &) |
| void | initializeReassociateLegacyPassPass (PassRegistry &) |
| void | initializeRedundantDbgInstEliminationPass (PassRegistry &) |
| void | initializeRegAllocFastPass (PassRegistry &) |
| void | initializeRegBankSelectPass (PassRegistry &) |
| void | initializeRegToMemPass (PassRegistry &) |
| void | initializeRegUsageInfoCollectorPass (PassRegistry &) |
| void | initializeRegUsageInfoPropagationPass (PassRegistry &) |
| void | initializeRegionInfoPassPass (PassRegistry &) |
| void | initializeRegionOnlyPrinterPass (PassRegistry &) |
| void | initializeRegionOnlyViewerPass (PassRegistry &) |
| void | initializeRegionPrinterPass (PassRegistry &) |
| void | initializeRegionViewerPass (PassRegistry &) |
| void | initializeRegisterCoalescerPass (PassRegistry &) |
| void | initializeRenameIndependentSubregsPass (PassRegistry &) |
| void | initializeResetMachineFunctionPass (PassRegistry &) |
| void | initializeReversePostOrderFunctionAttrsLegacyPassPass (PassRegistry &) |
| void | initializeRewriteStatepointsForGCLegacyPassPass (PassRegistry &) |
| void | initializeRewriteSymbolsLegacyPassPass (PassRegistry &) |
| void | initializeSCCPLegacyPassPass (PassRegistry &) |
| void | initializeSCEVAAWrapperPassPass (PassRegistry &) |
| void | initializeSLPVectorizerPass (PassRegistry &) |
| void | initializeSROALegacyPassPass (PassRegistry &) |
| void | initializeSafeStackLegacyPassPass (PassRegistry &) |
| void | initializeSafepointIRVerifierPass (PassRegistry &) |
| void | initializeSampleProfileLoaderLegacyPassPass (PassRegistry &) |
| void | initializeModuleSanitizerCoverageLegacyPassPass (PassRegistry &) |
| void | initializeScalarEvolutionWrapperPassPass (PassRegistry &) |
| void | initializeScalarizeMaskedMemIntrinPass (PassRegistry &) |
| void | initializeScalarizerLegacyPassPass (PassRegistry &) |
| void | initializeScavengerTestPass (PassRegistry &) |
| void | initializeScopedNoAliasAAWrapperPassPass (PassRegistry &) |
| void | initializeSeparateConstOffsetFromGEPPass (PassRegistry &) |
| void | initializeShadowStackGCLoweringPass (PassRegistry &) |
| void | initializeShrinkWrapPass (PassRegistry &) |
| void | initializeSimpleInlinerPass (PassRegistry &) |
| void | initializeSimpleLoopUnswitchLegacyPassPass (PassRegistry &) |
| void | initializeSingleLoopExtractorPass (PassRegistry &) |
| void | initializeSinkingLegacyPassPass (PassRegistry &) |
| void | initializeSjLjEHPreparePass (PassRegistry &) |
| void | initializeSlotIndexesPass (PassRegistry &) |
| void | initializeSpeculativeExecutionLegacyPassPass (PassRegistry &) |
| void | initializeSpillPlacementPass (PassRegistry &) |
| void | initializeStackColoringPass (PassRegistry &) |
| void | initializeStackMapLivenessPass (PassRegistry &) |
| void | initializeStackProtectorPass (PassRegistry &) |
| void | initializeStackSafetyGlobalInfoWrapperPassPass (PassRegistry &) |
| void | initializeStackSafetyInfoWrapperPassPass (PassRegistry &) |
| void | initializeStackSlotColoringPass (PassRegistry &) |
| void | initializeStraightLineStrengthReducePass (PassRegistry &) |
| void | initializeStripDeadDebugInfoPass (PassRegistry &) |
| void | initializeStripDeadPrototypesLegacyPassPass (PassRegistry &) |
| void | initializeStripDebugDeclarePass (PassRegistry &) |
| void | initializeStripGCRelocatesPass (PassRegistry &) |
| void | initializeStripNonDebugSymbolsPass (PassRegistry &) |
| void | initializeStripNonLineTableDebugInfoPass (PassRegistry &) |
| void | initializeStripSymbolsPass (PassRegistry &) |
| void | initializeStructurizeCFGPass (PassRegistry &) |
| void | initializeTailCallElimPass (PassRegistry &) |
| void | initializeTailDuplicatePass (PassRegistry &) |
| void | initializeTargetLibraryInfoWrapperPassPass (PassRegistry &) |
| void | initializeTargetPassConfigPass (PassRegistry &) |
| void | initializeTargetTransformInfoWrapperPassPass (PassRegistry &) |
| void | initializeThreadSanitizerLegacyPassPass (PassRegistry &) |
| void | initializeTwoAddressInstructionPassPass (PassRegistry &) |
| void | initializeTypeBasedAAWrapperPassPass (PassRegistry &) |
| void | initializeTypePromotionPass (PassRegistry &) |
| void | initializeUnifyFunctionExitNodesPass (PassRegistry &) |
| void | initializeUnpackMachineBundlesPass (PassRegistry &) |
| void | initializeUnreachableBlockElimLegacyPassPass (PassRegistry &) |
| void | initializeUnreachableMachineBlockElimPass (PassRegistry &) |
| void | initializeVerifierLegacyPassPass (PassRegistry &) |
| void | initializeVirtRegMapPass (PassRegistry &) |
| void | initializeVirtRegRewriterPass (PassRegistry &) |
| void | initializeWarnMissedTransformationsLegacyPass (PassRegistry &) |
| void | initializeWasmEHPreparePass (PassRegistry &) |
| void | initializeWholeProgramDevirtPass (PassRegistry &) |
| void | initializeWinEHPreparePass (PassRegistry &) |
| void | initializeWriteBitcodePassPass (PassRegistry &) |
| void | initializeWriteThinLTOBitcodePass (PassRegistry &) |
| void | initializeXRayInstrumentationPass (PassRegistry &) |
| LLVMAttributeRef | wrap (Attribute Attr) |
| Attribute | unwrap (LLVMAttributeRef Attr) |
| bool | UpgradeIntrinsicFunction (Function *F, Function *&NewFn) |
| This is a more granular function that simply checks an intrinsic function for upgrading, and returns true if it requires upgrading. More... | |
| void | UpgradeIntrinsicCall (CallInst *CI, Function *NewFn) |
| This is the complement to the above, replacing a specific call to an intrinsic function with a call to the specified new function. More... | |
| void | UpgradeInlineAsmString (std::string *AsmStr) |
| Upgrade comment in call to inline asm that represents an objc retain release marker. More... | |
| void | UpgradeCallsToIntrinsic (Function *F) |
| This is an auto-upgrade hook for any old intrinsic function syntaxes which need to have both the function updated as well as all calls updated to the new function. More... | |
| GlobalVariable * | UpgradeGlobalVariable (GlobalVariable *GV) |
| This checks for global variables which should be upgraded. More... | |
| bool | UpgradeModuleFlags (Module &M) |
| This checks for module flags which should be upgraded. More... | |
| void | UpgradeARCRuntime (Module &M) |
| Convert calls to ARC runtime functions to intrinsic calls and upgrade the old retain release marker to new module flag format. More... | |
| void | UpgradeSectionAttributes (Module &M) |
| MDNode * | UpgradeTBAANode (MDNode &TBAANode) |
| If the given TBAA tag uses the scalar TBAA format, create a new node corresponding to the upgrade to the struct-path aware TBAA format. More... | |
| Instruction * | UpgradeBitCastInst (unsigned Opc, Value *V, Type *DestTy, Instruction *&Temp) |
| This is an auto-upgrade for bitcast between pointers with different address spaces: the instruction is replaced by a pair ptrtoint+inttoptr. More... | |
| Value * | UpgradeBitCastExpr (unsigned Opc, Constant *C, Type *DestTy) |
| This is an auto-upgrade for bitcast constant expression between pointers with different address spaces: the instruction is replaced by a pair ptrtoint+inttoptr. More... | |
| bool | UpgradeDebugInfo (Module &M) |
| Check the debug info version number, if it is out-dated, drop the debug info. More... | |
| bool | mayBeOldLoopAttachmentTag (StringRef Name) |
| Check whether a string looks like an old loop attachment tag. More... | |
| MDNode * | upgradeInstructionLoopAttachment (MDNode &N) |
| Upgrade the loop attachment metadata node. More... | |
| std::string | UpgradeDataLayoutString (StringRef DL, StringRef Triple) |
| Upgrade the datalayout string by adding a section for address space pointers. More... | |
| void | UpgradeFramePointerAttributes (AttrBuilder &B) |
| Upgrade function attributes "no-frame-pointer-elim" and "no-frame-pointer-elim-non-leaf" to "frame-pointer". More... | |
| BasicBlock::iterator | skipDebugIntrinsics (BasicBlock::iterator It) |
Advance It while it points to a debug instruction and return the result. More... | |
| pred_iterator | pred_begin (BasicBlock *BB) |
| const_pred_iterator | pred_begin (const BasicBlock *BB) |
| pred_iterator | pred_end (BasicBlock *BB) |
| const_pred_iterator | pred_end (const BasicBlock *BB) |
| bool | pred_empty (const BasicBlock *BB) |
| unsigned | pred_size (const BasicBlock *BB) |
Get the number of predecessors of BB. More... | |
| pred_range | predecessors (BasicBlock *BB) |
| pred_const_range | predecessors (const BasicBlock *BB) |
| succ_iterator | succ_begin (Instruction *I) |
| succ_const_iterator | succ_begin (const Instruction *I) |
| succ_iterator | succ_end (Instruction *I) |
| succ_const_iterator | succ_end (const Instruction *I) |
| bool | succ_empty (const Instruction *I) |
| unsigned | succ_size (const Instruction *I) |
| succ_range | successors (Instruction *I) |
| succ_const_range | successors (const Instruction *I) |
| succ_iterator | succ_begin (BasicBlock *BB) |
| succ_const_iterator | succ_begin (const BasicBlock *BB) |
| succ_iterator | succ_end (BasicBlock *BB) |
| succ_const_iterator | succ_end (const BasicBlock *BB) |
| bool | succ_empty (const BasicBlock *BB) |
| unsigned | succ_size (const BasicBlock *BB) |
| succ_range | successors (BasicBlock *BB) |
| succ_const_range | successors (const BasicBlock *BB) |
| raw_ostream & | operator<< (raw_ostream &OS, const Comdat &C) |
| raw_ostream & | operator<< (raw_ostream &OS, const ConstantRange &CR) |
| ConstantRange | getConstantRangeFromMetadata (const MDNode &RangeMD) |
| Parse out a conservative ConstantRange from !range metadata. More... | |
| DataLayout * | unwrap (LLVMTargetDataRef P) |
| LLVMTargetDataRef | wrap (const DataLayout *P) |
| DISubprogram * | getDISubprogram (const MDNode *Scope) |
| Find subprogram that is enclosing this scope. More... | |
| bool | StripDebugInfo (Module &M) |
| Strip debug info in the module if it exists. More... | |
| bool | stripDebugInfo (Function &F) |
| bool | stripNonLineTableDebugInfo (Module &M) |
| Downgrade the debug info in a module to contain only line table information. More... | |
| unsigned | getDebugMetadataVersionFromModule (const Module &M) |
| Return Debug Info Metadata Version by checking module flags. More... | |
| bool | operator== (const DIExpression::FragmentInfo &A, const DIExpression::FragmentInfo &B) |
| bool | operator< (const DIExpression::FragmentInfo &A, const DIExpression::FragmentInfo &B) |
| int | getNextAvailablePluginDiagnosticKind () |
| Get the next available kind ID for a plugin diagnostic. More... | |
| template<class RemarkT > | |
| RemarkT & | operator<< (RemarkT &R, typename std::enable_if< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, StringRef >::type S) |
| Allow the insertion operator to return the actual remark type rather than a common base class. More... | |
| template<class RemarkT > | |
| RemarkT & | operator<< (RemarkT &&R, typename std::enable_if< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, StringRef >::type S) |
| Also allow r-value for the remark to allow insertion into a temporarily-constructed remark. More... | |
| template<class RemarkT > | |
| RemarkT & | operator<< (RemarkT &R, typename std::enable_if< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, DiagnosticInfoOptimizationBase::Argument >::type A) |
| template<class RemarkT > | |
| RemarkT & | operator<< (RemarkT &&R, typename std::enable_if< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, DiagnosticInfoOptimizationBase::Argument >::type A) |
| template<class RemarkT > | |
| RemarkT & | operator<< (RemarkT &R, typename std::enable_if< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, DiagnosticInfoOptimizationBase::setIsVerbose >::type V) |
| template<class RemarkT > | |
| RemarkT & | operator<< (RemarkT &&R, typename std::enable_if< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, DiagnosticInfoOptimizationBase::setIsVerbose >::type V) |
| template<class RemarkT > | |
| RemarkT & | operator<< (RemarkT &R, typename std::enable_if< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, DiagnosticInfoOptimizationBase::setExtraArgs >::type EA) |
| Optional< fp::RoundingMode > | StrToRoundingMode (StringRef) |
| Returns a valid RoundingMode enumerator when given a string that is valid as input in constrained intrinsic rounding mode metadata. More... | |
| Optional< StringRef > | RoundingModeToStr (fp::RoundingMode) |
| For any RoundingMode enumerator, returns a string valid as input in constrained intrinsic rounding mode metadata. More... | |
| Optional< fp::ExceptionBehavior > | StrToExceptionBehavior (StringRef) |
| Returns a valid ExceptionBehavior enumerator when given a string valid as input in constrained intrinsic exception behavior metadata. More... | |
| Optional< StringRef > | ExceptionBehaviorToStr (fp::ExceptionBehavior) |
| For any ExceptionBehavior enumerator, returns a string valid as input in constrained intrinsic exception behavior metadata. More... | |
| bool | NullPointerIsDefined (const Function *F, unsigned AS=0) |
| Check whether null pointer dereferencing is considered undefined behavior for a given function or an address space. More... | |
| gep_type_iterator | gep_type_begin (const User *GEP) |
| gep_type_iterator | gep_type_end (const User *GEP) |
| gep_type_iterator | gep_type_begin (const User &GEP) |
| gep_type_iterator | gep_type_end (const User &GEP) |
| template<typename T > | |
| generic_gep_type_iterator< const T * > | gep_type_begin (Type *Op0, ArrayRef< T > A) |
| template<typename T > | |
| generic_gep_type_iterator< const T * > | gep_type_end (Type *, ArrayRef< T > A) |
| inst_iterator | inst_begin (Function *F) |
| inst_iterator | inst_end (Function *F) |
| inst_range | instructions (Function *F) |
| const_inst_iterator | inst_begin (const Function *F) |
| const_inst_iterator | inst_end (const Function *F) |
| const_inst_range | instructions (const Function *F) |
| inst_iterator | inst_begin (Function &F) |
| inst_iterator | inst_end (Function &F) |
| inst_range | instructions (Function &F) |
| const_inst_iterator | inst_begin (const Function &F) |
| const_inst_iterator | inst_end (const Function &F) |
| const_inst_range | instructions (const Function &F) |
| Type * | checkGEPType (Type *Ty) |
| const Value * | getLoadStorePointerOperand (const Value *V) |
| A helper function that returns the pointer operand of a load or store instruction. More... | |
| Value * | getLoadStorePointerOperand (Value *V) |
| const Value * | getPointerOperand (const Value *V) |
| A helper function that returns the pointer operand of a load, store or GEP instruction. More... | |
| Value * | getPointerOperand (Value *V) |
| MaybeAlign | getLoadStoreAlignment (Value *I) |
| A helper function that returns the alignment of load or store instruction. More... | |
| unsigned | getLoadStoreAddressSpace (Value *I) |
| A helper function that returns the address space of the pointer operand of load or store instruction. More... | |
| ModulePass * | createPrintModulePass (raw_ostream &OS, const std::string &Banner="", bool ShouldPreserveUseListOrder=false) |
Create and return a pass that writes the module to the specified raw_ostream. More... | |
| FunctionPass * | createPrintFunctionPass (raw_ostream &OS, const std::string &Banner="") |
Create and return a pass that prints functions to the specified raw_ostream as they are processed. More... | |
| void | printLLVMNameWithoutPrefix (raw_ostream &OS, StringRef Name) |
| Print out a name of an LLVM value without any prefixes. More... | |
| bool | isIRPrintingPass (Pass *P) |
| Return true if a pass is for IR printing. More... | |
| bool | isFunctionInPrintList (StringRef FunctionName) |
| isFunctionInPrintList - returns true if a function should be printed via More... | |
| bool | forcePrintModuleIR () |
| forcePrintModuleIR - returns true if IR printing passes should More... | |
| bool | shouldPrintBeforePass () |
| This is a helper to determine whether to print IR before or after a pass. More... | |
| bool | shouldPrintBeforePass (StringRef) |
| bool | shouldPrintAfterPass () |
| bool | shouldPrintAfterPass (StringRef) |
| LLVMContext ** | unwrap (LLVMContextRef *Tys) |
| LLVMContextRef * | wrap (const LLVMContext **Tys) |
| void | emitLinkerFlagsForGlobalCOFF (raw_ostream &OS, const GlobalValue *GV, const Triple &TT, Mangler &Mangler) |
| void | emitLinkerFlagsForUsedCOFF (raw_ostream &OS, const GlobalValue *GV, const Triple &T, Mangler &M) |
| Metadata ** | unwrap (LLVMMetadataRef *MDs) |
| raw_ostream & | operator<< (raw_ostream &OS, const Metadata &MD) |
| GlobalVariable * | collectUsedGlobalVariables (const Module &M, SmallPtrSetImpl< GlobalValue *> &Set, bool CompilerUsed) |
| Given "llvm.used" or "llvm.compiler.used" as a global name, collect the initializer elements of that global in Set and return the global itself. More... | |
| raw_ostream & | operator<< (raw_ostream &O, const Module &M) |
| An raw_ostream inserter for modules. More... | |
| Module * | unwrap (LLVMModuleProviderRef MP) |
| const char * | getHotnessName (CalleeInfo::HotnessType HT) |
| raw_ostream & | operator<< (raw_ostream &OS, const ValueInfo &VI) |
| bool | operator== (const ValueInfo &A, const ValueInfo &B) |
| bool | operator!= (const ValueInfo &A, const ValueInfo &B) |
| bool | operator< (const ValueInfo &A, const ValueInfo &B) |
| template<typename FunctionPassT > | |
| ModuleToFunctionPassAdaptor< FunctionPassT > | createModuleToFunctionPassAdaptor (FunctionPassT Pass) |
| A function to deduce a function pass type and wrap it in the templated adaptor. More... | |
| template<typename PassT > | |
| RepeatedPass< PassT > | createRepeatedPass (int Count, PassT P) |
| void | reportAndResetTimings (raw_ostream *OutStream=nullptr) |
| If -time-passes has been specified, report the timings immediately and then reset the timers to zero. More... | |
| Timer * | getPassTimer (Pass *) |
| Request the timer for this legacy-pass-manager's pass instance. More... | |
| Expected< std::unique_ptr< ToolOutputFile > > | setupOptimizationRemarks (LLVMContext &Context, StringRef RemarksFilename, StringRef RemarksPasses, StringRef RemarksFormat, bool RemarksWithHotness, unsigned RemarksHotnessThreshold=0) |
| Setup optimization remarks that output to a file. More... | |
| Error | setupOptimizationRemarks (LLVMContext &Context, raw_ostream &OS, StringRef RemarksPasses, StringRef RemarksFormat, bool RemarksWithHotness, unsigned RemarksHotnessThreshold=0) |
| Setup optimization remarks that output directly to a raw_ostream. More... | |
| void | verifySafepointIR (Function &F) |
| Run the safepoint verifier over a single function. Crashes on failure. More... | |
| FunctionPass * | createSafepointIRVerifierPass () |
| Create an instance of the safepoint verifier pass which can be added to a pass pipeline to check for relocation bugs. More... | |
| bool | isStatepoint (const CallBase *Call) |
| bool | isStatepoint (const Value *V) |
| bool | isStatepoint (const Value &V) |
| bool | isGCRelocate (const CallBase *Call) |
| bool | isGCRelocate (const Value *V) |
| bool | isGCResult (const CallBase *Call) |
| bool | isGCResult (const Value *V) |
| StatepointDirectives | parseStatepointDirectivesFromAttrs (AttributeList AS) |
Parse out statepoint directives from the function attributes present in AS. More... | |
| bool | isStatepointDirectiveAttr (Attribute Attr) |
Return true if the Attr is an attribute that is a statepoint directive. More... | |
| raw_ostream & | operator<< (raw_ostream &OS, const Type &T) |
| Type ** | unwrap (LLVMTypeRef *Tys) |
| LLVMTypeRef * | wrap (Type **Tys) |
| raw_ostream & | operator<< (raw_ostream &OS, const Value &V) |
| Value ** | unwrap (LLVMValueRef *Vals) |
| template<typename T > | |
| T ** | unwrap (LLVMValueRef *Vals, unsigned Length) |
| LLVMValueRef * | wrap (const Value **Vals) |
| bool | verifyFunction (const Function &F, raw_ostream *OS=nullptr) |
| Check a function for errors, useful for use when debugging a pass. More... | |
| bool | verifyModule (const Module &M, raw_ostream *OS=nullptr, bool *BrokenDebugInfo=nullptr) |
| Check a module for errors. More... | |
| FunctionPass * | createVerifierPass (bool FatalErrors=true) |
| bool | verifyModule (bool &BrokenDebugInfo, const Module &M, raw_ostream *OS) |
| Check a module for errors, but report debug info errors separately. More... | |
| std::unique_ptr< Module > | getLazyIRModule (std::unique_ptr< MemoryBuffer > Buffer, SMDiagnostic &Err, LLVMContext &Context, bool ShouldLazyLoadMetadata=false) |
| If the given MemoryBuffer holds a bitcode image, return a Module for it which does lazy deserialization of function bodies. More... | |
| std::unique_ptr< Module > | getLazyIRFileModule (StringRef Filename, SMDiagnostic &Err, LLVMContext &Context, bool ShouldLazyLoadMetadata=false) |
| If the given file holds a bitcode image, return a Module for it which does lazy deserialization of function bodies. More... | |
| std::unique_ptr< Module > | parseIR (MemoryBufferRef Buffer, SMDiagnostic &Err, LLVMContext &Context, bool UpgradeDebugInfo=true, StringRef DataLayoutString="") |
| If the given MemoryBuffer holds a bitcode image, return a Module for it. More... | |
| std::unique_ptr< Module > | parseIRFile (StringRef Filename, SMDiagnostic &Err, LLVMContext &Context, bool UpgradeDebugInfo=true, StringRef DataLayoutString="") |
| If the given file holds a bitcode image, return a Module for it. More... | |
| void | updateCompilerUsed (Module &TheModule, const TargetMachine &TM, const StringSet<> &AsmUndefinedRefs) |
Find all globals in TheModule that are referenced in AsmUndefinedRefs, as well as the user-supplied functions definitions that are also libcalls, and create or update the magic "llvm.compiler_used" global in TheModule. More... | |
| void | thinLTOResolvePrevailingInIndex (ModuleSummaryIndex &Index, function_ref< bool(GlobalValue::GUID, const GlobalValueSummary *)> isPrevailing, function_ref< void(StringRef, GlobalValue::GUID, GlobalValue::LinkageTypes)> recordNewLinkage, const DenseSet< GlobalValue::GUID > &GUIDPreservedSymbols) |
Resolve linkage for prevailing symbols in the Index. More... | |
| void | thinLTOInternalizeAndPromoteInIndex (ModuleSummaryIndex &Index, function_ref< bool(StringRef, ValueInfo)> isExported, function_ref< bool(GlobalValue::GUID, const GlobalValueSummary *)> isPrevailing) |
Update the linkages in the given Index to mark exported values as external and non-exported values as internal. More... | |
| void | computeLTOCacheKey (SmallString< 40 > &Key, const lto::Config &Conf, const ModuleSummaryIndex &Index, StringRef ModuleID, const FunctionImporter::ImportMapTy &ImportList, const FunctionImporter::ExportSetTy &ExportList, const std::map< GlobalValue::GUID, GlobalValue::LinkageTypes > &ResolvedODR, const GVSummaryMapTy &DefinedGlobals, const std::set< GlobalValue::GUID > &CfiFunctionDefs={}, const std::set< GlobalValue::GUID > &CfiFunctionDecls={}) |
| Computes a unique hash for the Module considering the current list of export/import and other global analysis results. More... | |
| void | computeSyntheticCounts (ModuleSummaryIndex &Index) |
| Compute synthetic function entry counts. More... | |
| Printable | PrintLaneMask (LaneBitmask LaneMask) |
| Create Printable object to print LaneBitmasks on a raw_ostream. More... | |
| bool | operator!= (const MachineLocation &LHS, const MachineLocation &RHS) |
| uint64_t | computeBundlePadding (const MCAssembler &Assembler, const MCEncodedFragment *F, uint64_t FOffset, uint64_t FSize) |
Compute the amount of padding required before the fragment F to obey bundling restrictions, where FOffset is the fragment's offset in its section and FSize is the fragment's size. More... | |
| std::unique_ptr< MCObjectWriter > | createELFObjectWriter (std::unique_ptr< MCELFObjectTargetWriter > MOTW, raw_pwrite_stream &OS, bool IsLittleEndian) |
| Construct a new ELF writer instance. More... | |
| std::unique_ptr< MCObjectWriter > | createELFDwoObjectWriter (std::unique_ptr< MCELFObjectTargetWriter > MOTW, raw_pwrite_stream &OS, raw_pwrite_stream &DwoOS, bool IsLittleEndian) |
| MCELFStreamer * | createARMELFStreamer (MCContext &Context, std::unique_ptr< MCAsmBackend > TAB, std::unique_ptr< MCObjectWriter > OW, std::unique_ptr< MCCodeEmitter > Emitter, bool RelaxAll, bool IsThumb, bool IsAndroid) |
| raw_ostream & | operator<< (raw_ostream &OS, const MCExpr &E) |
| raw_ostream & | operator<< (raw_ostream &OS, const MCOperand &MO) |
| raw_ostream & | operator<< (raw_ostream &OS, const MCInst &MI) |
| void | dumpBytes (ArrayRef< uint8_t > Bytes, raw_ostream &OS) |
| Convert `Bytes' to a hex string and output to `OS'. More... | |
| raw_ostream & | operator<< (raw_ostream &OS, const MCLabel &Label) |
| static StringRef | MCLOHDirectiveName () |
| static bool | isValidMCLOHType (unsigned Kind) |
| static int | MCLOHNameToId (StringRef Name) |
| static StringRef | MCLOHIdToName (MCLOHType Kind) |
| static int | MCLOHIdToNbArgs (MCLOHType Kind) |
| std::unique_ptr< MCObjectWriter > | createMachObjectWriter (std::unique_ptr< MCMachObjectTargetWriter > MOTW, raw_pwrite_stream &OS, bool IsLittleEndian) |
| Construct a new Mach-O writer instance. More... | |
| MCAsmParser * | createMCAsmParser (SourceMgr &, MCContext &, MCStreamer &, const MCAsmInfo &, unsigned CB=0) |
| Create an MCAsmParser instance. More... | |
| raw_ostream & | operator<< (raw_ostream &OS, const MCParsedAsmOperand &MO) |
| MCStreamer * | createNullStreamer (MCContext &Ctx) |
| Create a dummy machine code streamer, which does nothing. More... | |
| MCStreamer * | createAsmStreamer (MCContext &Ctx, std::unique_ptr< formatted_raw_ostream > OS, bool isVerboseAsm, bool useDwarfDirectory, MCInstPrinter *InstPrint, MCCodeEmitter *CE, MCAsmBackend *TAB, bool ShowInst) |
| Create a machine code streamer which will print out assembly for the native target, suitable for compiling with a native assembler. More... | |
| raw_ostream & | operator<< (raw_ostream &OS, const MCSymbol &Sym) |
| std::unique_ptr< MCObjectWriter > | createWasmObjectWriter (std::unique_ptr< MCWasmObjectTargetWriter > MOTW, raw_pwrite_stream &OS) |
| Construct a new Wasm writer instance. More... | |
| std::unique_ptr< MCObjectWriter > | createWinCOFFObjectWriter (std::unique_ptr< MCWinCOFFObjectTargetWriter > MOTW, raw_pwrite_stream &OS) |
| Construct a new Win COFF writer instance. More... | |
| std::unique_ptr< MCObjectWriter > | createXCOFFObjectWriter (std::unique_ptr< MCXCOFFObjectTargetWriter > MOTW, raw_pwrite_stream &OS) |
| Expected< std::string > | computeArchiveRelativePath (StringRef From, StringRef To) |
| Error | writeArchive (StringRef ArcName, ArrayRef< NewArchiveMember > NewMembers, bool WriteSymtab, object::Archive::Kind Kind, bool Deterministic, bool Thin, std::unique_ptr< MemoryBuffer > OldArchiveBuf=nullptr) |
| raw_ostream & | operator<< (raw_ostream &OS, const object::WasmSymbol &Sym) |
| StringRef | machineToStr (COFF::MachineTypes MT) |
| COFF::MachineTypes | getMachineType (StringRef S) |
| template<typename AnalysisT , typename IRUnitT , typename AnalysisManagerT , typename... ExtraArgTs> | |
| bool | parseAnalysisUtilityPasses (StringRef AnalysisName, StringRef PipelineName, PassManager< IRUnitT, AnalysisManagerT, ExtraArgTs... > &PM) |
This utility template takes care of adding require<> and invalidate<> passes for an analysis to a given PassManager. More... | |
| template<typename PassName > | |
| Pass * | callDefaultCtor () |
| std::string | getInstrProfSectionName (InstrProfSectKind IPSK, Triple::ObjectFormatType OF, bool AddSegmentInfo=true) |
Return the name of the profile section corresponding to IPSK. More... | |
| StringRef | getInstrProfValueProfFuncName () |
| Return the name profile runtime entry point to do value profiling for a given site. More... | |
| StringRef | getInstrProfValueRangeProfFuncName () |
| Return the name profile runtime entry point to do value range profiling. More... | |
| StringRef | getInstrProfNameVarPrefix () |
| Return the name prefix of variables containing instrumented function names. More... | |
| StringRef | getInstrProfDataVarPrefix () |
| Return the name prefix of variables containing per-function control data. More... | |
| StringRef | getInstrProfCountersVarPrefix () |
| Return the name prefix of profile counter variables. More... | |
| StringRef | getInstrProfValuesVarPrefix () |
| Return the name prefix of value profile variables. More... | |
| StringRef | getInstrProfVNodesVarName () |
| Return the name of value profile node array variables: More... | |
| StringRef | getInstrProfNamesVarName () |
| Return the name of the variable holding the strings (possibly compressed) of all function's PGO names. More... | |
| StringRef | getCoverageMappingVarName () |
| Return the name of a covarage mapping variable (internal linkage) for each instrumented source module. More... | |
| StringRef | getCoverageUnusedNamesVarName () |
| Return the name of the internal variable recording the array of PGO name vars referenced by the coverage mapping. More... | |
| StringRef | getInstrProfRegFuncsName () |
| Return the name of function that registers all the per-function control data at program startup time by calling __llvm_register_function. More... | |
| StringRef | getInstrProfRegFuncName () |
| Return the name of the runtime interface that registers per-function control data for one instrumented function. More... | |
| StringRef | getInstrProfNamesRegFuncName () |
| Return the name of the runtime interface that registers the PGO name strings. More... | |
| StringRef | getInstrProfInitFuncName () |
| Return the name of the runtime initialization method that is generated by the compiler. More... | |
| StringRef | getInstrProfRuntimeHookVarName () |
| Return the name of the hook variable defined in profile runtime library. More... | |
| StringRef | getInstrProfRuntimeHookVarUseFuncName () |
| Return the name of the compiler generated function that references the runtime hook variable. More... | |
| StringRef | getInstrProfNameSeparator () |
| Return the marker used to separate PGO names during serialization. More... | |
| std::string | getPGOFuncName (const Function &F, bool InLTO=false, uint64_t Version=INSTR_PROF_INDEX_VERSION) |
Return the modified name for function F suitable to be used the key for profile lookup. More... | |
| std::string | getPGOFuncName (StringRef RawFuncName, GlobalValue::LinkageTypes Linkage, StringRef FileName, uint64_t Version=INSTR_PROF_INDEX_VERSION) |
| Return the modified name for a function suitable to be used the key for profile lookup. More... | |
| std::string | getPGOFuncNameVarName (StringRef FuncName, GlobalValue::LinkageTypes Linkage) |
| Return the name of the global variable used to store a function name in PGO instrumentation. More... | |
| GlobalVariable * | createPGOFuncNameVar (Function &F, StringRef PGOFuncName) |
| Create and return the global variable for function name used in PGO instrumentation. More... | |
| GlobalVariable * | createPGOFuncNameVar (Module &M, GlobalValue::LinkageTypes Linkage, StringRef PGOFuncName) |
| Create and return the global variable for function name used in PGO instrumentation. More... | |
| StringRef | getPGOFuncNameVarInitializer (GlobalVariable *NameVar) |
Return the initializer in string of the PGO name var NameVar. More... | |
| StringRef | getFuncNameWithoutPrefix (StringRef PGOFuncName, StringRef FileName="<unknown>") |
| Given a PGO function name, remove the filename prefix and return the original (static) function name. More... | |
| Error | collectPGOFuncNameStrings (ArrayRef< std::string > NameStrs, bool doCompression, std::string &Result) |
Given a vector of strings (function PGO names) NameStrs, the method generates a combined string Result thatis ready to be serialized. More... | |
| Error | collectPGOFuncNameStrings (ArrayRef< GlobalVariable *> NameVars, std::string &Result, bool doCompression=true) |
Produce Result string with the same format described above. More... | |
| Error | readPGOFuncNameStrings (StringRef NameStrings, InstrProfSymtab &Symtab) |
NameStrings is a string composed of one of more sub-strings encoded in the format described above. More... | |
| bool | isIRPGOFlagSet (const Module *M) |
| Check if INSTR_PROF_RAW_VERSION_VAR is defined. More... | |
| bool | canRenameComdatFunc (const Function &F, bool CheckAddressTaken=false) |
| Check if we can safely rename this Comdat function. More... | |
| void | annotateValueSite (Module &M, Instruction &Inst, const InstrProfRecord &InstrProfR, InstrProfValueKind ValueKind, uint32_t SiteIndx, uint32_t MaxMDCount=3) |
Get the value profile data for value site SiteIdx from InstrProfR and annotate the instruction Inst with the value profile meta data. More... | |
| void | annotateValueSite (Module &M, Instruction &Inst, ArrayRef< InstrProfValueData > VDs, uint64_t Sum, InstrProfValueKind ValueKind, uint32_t MaxMDCount) |
Same as the above interface but using an ArrayRef, as well as Sum. More... | |
| bool | getValueProfDataFromInst (const Instruction &Inst, InstrProfValueKind ValueKind, uint32_t MaxNumValueData, InstrProfValueData ValueData[], uint32_t &ActualNumValueData, uint64_t &TotalC) |
Extract the value profile data from Inst which is annotated with value profile meta data. More... | |
| StringRef | getPGOFuncNameMetadataName () |
| MDNode * | getPGOFuncNameMetadata (const Function &F) |
| Return the PGOFuncName meta data associated with a function. More... | |
| void | createPGOFuncNameMetadata (Function &F, StringRef PGOFuncName) |
| Create the PGOFuncName meta data if PGOFuncName is different from function's raw name. More... | |
| bool | needsComdatForCounter (const Function &F, const Module &M) |
| Check if we can use Comdat for profile variables. More... | |
| const std::error_category & | instrprof_category () |
| std::error_code | make_error_code (instrprof_error E) |
| support::endianness | getHostEndianness () |
| void | getMemOPSizeRangeFromOption (StringRef Str, int64_t &RangeStart, int64_t &RangeLast) |
| void | createIRLevelProfileFlagVar (Module &M, bool IsCS) |
| void | createProfileFileNameVar (Module &M, StringRef InstrProfileOutput) |
| const char * | getHotSectionPrefix () |
| const char * | getUnlikelySectionPrefix () |
| const std::error_category & | sampleprof_category () |
| std::error_code | make_error_code (sampleprof_error E) |
| sampleprof_error | MergeResult (sampleprof_error &Accumulator, sampleprof_error Result) |
| Align | assumeAligned (uint64_t Value) |
| Treats the value 0 as a 1, so Align is always at least 1. More... | |
| bool | isAligned (Align Lhs, uint64_t SizeInBytes) |
| Checks that SizeInBytes is a multiple of the alignment. More... | |
| bool | isAligned (MaybeAlign Lhs, uint64_t SizeInBytes) |
| Checks that SizeInBytes is a multiple of the alignment. More... | |
| bool | isAddrAligned (Align Lhs, const void *Addr) |
| Checks that Addr is a multiple of the alignment. More... | |
| uint64_t | alignTo (uint64_t Size, Align A) |
Returns a multiple of A needed to store Size bytes. More... | |
| uint64_t | alignTo (uint64_t Size, MaybeAlign A) |
Returns a multiple of A needed to store Size bytes. More... | |
| uintptr_t | alignAddr (const void *Addr, Align Alignment) |
Aligns Addr to Alignment bytes, rounding up. More... | |
| uint64_t | offsetToAlignment (uint64_t Value, Align Alignment) |
Returns the offset to the next integer (mod 2**64) that is greater than or equal to Value and is a multiple of Align. More... | |
| uint64_t | offsetToAlignedAddr (const void *Addr, Align Alignment) |
Returns the necessary adjustment for aligning Addr to Alignment bytes, rounding up. More... | |
| unsigned | Log2 (Align A) |
| Returns the log2 of the alignment. More... | |
| unsigned | Log2 (MaybeAlign A) |
| Returns the log2 of the alignment. More... | |
| Align | commonAlignment (Align A, Align B) |
| Returns the alignment that satisfies both alignments. More... | |
| Align | commonAlignment (Align A, uint64_t Offset) |
| Returns the alignment that satisfies both alignments. More... | |
| MaybeAlign | commonAlignment (MaybeAlign A, MaybeAlign B) |
| Returns the alignment that satisfies both alignments. More... | |
| MaybeAlign | commonAlignment (MaybeAlign A, uint64_t Offset) |
| Returns the alignment that satisfies both alignments. More... | |
| unsigned | encode (MaybeAlign A) |
| Returns a representation of the alignment that encodes undefined as 0. More... | |
| MaybeAlign | decodeMaybeAlign (unsigned Value) |
| Dual operation of the encode function above. More... | |
| unsigned | encode (Align A) |
| Returns a representation of the alignment, the encoded value is positive by definition. More... | |
| bool | operator== (Align Lhs, uint64_t Rhs) |
| Comparisons between Align and scalars. Rhs must be positive. More... | |
| bool | operator!= (Align Lhs, uint64_t Rhs) |
| bool | operator<= (Align Lhs, uint64_t Rhs) |
| bool | operator>= (Align Lhs, uint64_t Rhs) |
| bool | operator< (Align Lhs, uint64_t Rhs) |
| bool | operator> (Align Lhs, uint64_t Rhs) |
| bool | operator== (MaybeAlign Lhs, uint64_t Rhs) |
| Comparisons between MaybeAlign and scalars. More... | |
| bool | operator!= (MaybeAlign Lhs, uint64_t Rhs) |
| bool | operator<= (MaybeAlign Lhs, uint64_t Rhs) |
| bool | operator>= (MaybeAlign Lhs, uint64_t Rhs) |
| bool | operator< (MaybeAlign Lhs, uint64_t Rhs) |
| bool | operator> (MaybeAlign Lhs, uint64_t Rhs) |
| bool | operator== (Align Lhs, Align Rhs) |
| Comparisons operators between Align. More... | |
| bool | operator!= (Align Lhs, Align Rhs) |
| bool | operator<= (Align Lhs, Align Rhs) |
| bool | operator>= (Align Lhs, Align Rhs) |
| bool | operator< (Align Lhs, Align Rhs) |
| bool | operator> (Align Lhs, Align Rhs) |
| bool | operator== (Align Lhs, MaybeAlign Rhs) |
| Comparisons operators between Align and MaybeAlign. More... | |
| bool | operator!= (Align Lhs, MaybeAlign Rhs) |
| bool | operator<= (Align Lhs, MaybeAlign Rhs) |
| bool | operator>= (Align Lhs, MaybeAlign Rhs) |
| bool | operator< (Align Lhs, MaybeAlign Rhs) |
| bool | operator> (Align Lhs, MaybeAlign Rhs) |
| bool | operator== (MaybeAlign Lhs, Align Rhs) |
| Comparisons operators between MaybeAlign and Align. More... | |
| bool | operator!= (MaybeAlign Lhs, Align Rhs) |
| bool | operator<= (MaybeAlign Lhs, Align Rhs) |
| bool | operator>= (MaybeAlign Lhs, Align Rhs) |
| bool | operator< (MaybeAlign Lhs, Align Rhs) |
| bool | operator> (MaybeAlign Lhs, Align Rhs) |
| Align | operator/ (Align Lhs, uint64_t Divisor) |
| MaybeAlign | operator/ (MaybeAlign Lhs, uint64_t Divisor) |
| Align | max (MaybeAlign Lhs, Align Rhs) |
| Align | max (Align Lhs, MaybeAlign Rhs) |
| bool | operator< (AtomicOrderingCABI, AtomicOrderingCABI)=delete |
| bool | operator> (AtomicOrderingCABI, AtomicOrderingCABI)=delete |
| bool | operator<= (AtomicOrderingCABI, AtomicOrderingCABI)=delete |
| bool | operator>= (AtomicOrderingCABI, AtomicOrderingCABI)=delete |
| template<typename Int > | |
| bool | isValidAtomicOrderingCABI (Int I) |
| bool | operator< (AtomicOrdering, AtomicOrdering)=delete |
| bool | operator> (AtomicOrdering, AtomicOrdering)=delete |
| bool | operator<= (AtomicOrdering, AtomicOrdering)=delete |
| bool | operator>= (AtomicOrdering, AtomicOrdering)=delete |
| template<typename Int > | |
| bool | isValidAtomicOrdering (Int I) |
| const char * | toIRString (AtomicOrdering ao) |
| String used by LLVM IR to represent atomic ordering. More... | |
| bool | isStrongerThan (AtomicOrdering ao, AtomicOrdering other) |
| Returns true if ao is stronger than other as defined by the AtomicOrdering lattice, which is based on C++'s definition. More... | |
| bool | isAtLeastOrStrongerThan (AtomicOrdering ao, AtomicOrdering other) |
| bool | isStrongerThanUnordered (AtomicOrdering ao) |
| bool | isStrongerThanMonotonic (AtomicOrdering ao) |
| bool | isAcquireOrStronger (AtomicOrdering ao) |
| bool | isReleaseOrStronger (AtomicOrdering ao) |
| AtomicOrderingCABI | toCABI (AtomicOrdering ao) |
| raw_ostream & | operator<< (raw_ostream &OS, BranchProbability Prob) |
| void | BuryPointer (const void *Ptr) |
| template<typename T > | |
| void | BuryPointer (std::unique_ptr< T > Ptr) |
| Expected< CachePruningPolicy > | parseCachePruningPolicy (StringRef PolicyStr) |
| Parse the given string as a cache pruning policy. More... | |
| bool | pruneCache (StringRef Path, CachePruningPolicy Policy) |
| Peform pruning using the supplied policy, returns true if pruning occurred, i.e. More... | |
| template<typename T > | |
| static size_t | capacity_in_bytes (const T &x) |
| template<class X , class Y > | |
| LLVM_NODISCARD bool | isa (const Y &Val) |
| template<class X , class Y > | |
| LLVM_NODISCARD bool | isa_and_nonnull (const Y &Val) |
| template<class X , class Y > | |
| std::enable_if<!is_simple_type< Y >::value, typename cast_retty< X, const Y >::ret_type >::type | cast (const Y &Val) |
| template<class X , class Y > | |
| cast_retty< X, Y >::ret_type | cast (Y &Val) |
| template<class X , class Y > | |
| cast_retty< X, Y * >::ret_type | cast (Y *Val) |
| template<class X , class Y > | |
| cast_retty< X, std::unique_ptr< Y > >::ret_type | cast (std::unique_ptr< Y > &&Val) |
| template<class X , class Y > | |
| LLVM_NODISCARD std::enable_if<!is_simple_type< Y >::value, typename cast_retty< X, const Y >::ret_type >::type | cast_or_null (const Y &Val) |
| template<class X , class Y > | |
| LLVM_NODISCARD std::enable_if<!is_simple_type< Y >::value, typename cast_retty< X, Y >::ret_type >::type | cast_or_null (Y &Val) |
| template<class X , class Y > | |
| LLVM_NODISCARD cast_retty< X, Y * >::ret_type | cast_or_null (Y *Val) |
| template<class X , class Y > | |
| cast_retty< X, std::unique_ptr< Y > >::ret_type | cast_or_null (std::unique_ptr< Y > &&Val) |
| template<class X , class Y > | |
| LLVM_NODISCARD std::enable_if<!is_simple_type< Y >::value, typename cast_retty< X, const Y >::ret_type >::type | dyn_cast (const Y &Val) |
| template<class X , class Y > | |
| LLVM_NODISCARD cast_retty< X, Y >::ret_type | dyn_cast (Y &Val) |
| template<class X , class Y > | |
| LLVM_NODISCARD cast_retty< X, Y * >::ret_type | dyn_cast (Y *Val) |
| template<class X , class Y > | |
| LLVM_NODISCARD std::enable_if<!is_simple_type< Y >::value, typename cast_retty< X, const Y >::ret_type >::type | dyn_cast_or_null (const Y &Val) |
| template<class X , class Y > | |
| LLVM_NODISCARD std::enable_if<!is_simple_type< Y >::value, typename cast_retty< X, Y >::ret_type >::type | dyn_cast_or_null (Y &Val) |
| template<class X , class Y > | |
| LLVM_NODISCARD cast_retty< X, Y * >::ret_type | dyn_cast_or_null (Y *Val) |
| template<class X , class Y > | |
| LLVM_NODISCARD auto | unique_dyn_cast (std::unique_ptr< Y > &Val) -> decltype(cast< X >(Val)) |
| template<class X , class Y > | |
| LLVM_NODISCARD auto | unique_dyn_cast (std::unique_ptr< Y > &&Val) -> decltype(cast< X >(Val)) |
| template<class X , class Y > | |
| LLVM_NODISCARD auto | unique_dyn_cast_or_null (std::unique_ptr< Y > &Val) -> decltype(cast< X >(Val)) |
| template<class X , class Y > | |
| LLVM_NODISCARD auto | unique_dyn_cast_or_null (std::unique_ptr< Y > &&Val) -> decltype(cast< X >(Val)) |
| template<typename T > | |
| std::enable_if< std::is_signed< T >::value, llvm::Optional< T > >::type | checkedAdd (T LHS, T RHS) |
Add two signed integers LHS and RHS. More... | |
| template<typename T > | |
| std::enable_if< std::is_signed< T >::value, llvm::Optional< T > >::type | checkedSub (T LHS, T RHS) |
Subtract two signed integers LHS and RHS. More... | |
| template<typename T > | |
| std::enable_if< std::is_signed< T >::value, llvm::Optional< T > >::type | checkedMul (T LHS, T RHS) |
Multiply two signed integers LHS and RHS. More... | |
| template<typename T > | |
| std::enable_if< std::is_signed< T >::value, llvm::Optional< T > >::type | checkedMulAdd (T A, T B, T C) |
| Multiply A and B, and add C to the resulting product. More... | |
| template<typename T > | |
| std::enable_if< std::is_unsigned< T >::value, llvm::Optional< T > >::type | checkedAddUnsigned (T LHS, T RHS) |
Add two unsigned integers LHS and RHS. More... | |
| template<typename T > | |
| std::enable_if< std::is_unsigned< T >::value, llvm::Optional< T > >::type | checkedMulUnsigned (T LHS, T RHS) |
Multiply two unsigned integers LHS and RHS. More... | |
| template<typename T > | |
| std::enable_if< std::is_unsigned< T >::value, llvm::Optional< T > >::type | checkedMulAddUnsigned (T A, T B, T C) |
| Multiply unsigned integers A and B, and add C to the resulting product. More... | |
| raw_ostream & | operator<< (raw_ostream &OS, sys::TimePoint<> TP) |
| ConversionResult | ConvertUTF8toUTF16 (const UTF8 **sourceStart, const UTF8 *sourceEnd, UTF16 **targetStart, UTF16 *targetEnd, ConversionFlags flags) |
| ConversionResult | ConvertUTF8toUTF32Partial (const UTF8 **sourceStart, const UTF8 *sourceEnd, UTF32 **targetStart, UTF32 *targetEnd, ConversionFlags flags) |
| Convert a partial UTF8 sequence to UTF32. More... | |
| ConversionResult | ConvertUTF8toUTF32 (const UTF8 **sourceStart, const UTF8 *sourceEnd, UTF32 **targetStart, UTF32 *targetEnd, ConversionFlags flags) |
| Convert a partial UTF8 sequence to UTF32. More... | |
| ConversionResult | ConvertUTF16toUTF8 (const UTF16 **sourceStart, const UTF16 *sourceEnd, UTF8 **targetStart, UTF8 *targetEnd, ConversionFlags flags) |
| ConversionResult | ConvertUTF32toUTF8 (const UTF32 **sourceStart, const UTF32 *sourceEnd, UTF8 **targetStart, UTF8 *targetEnd, ConversionFlags flags) |
| ConversionResult | ConvertUTF16toUTF32 (const UTF16 **sourceStart, const UTF16 *sourceEnd, UTF32 **targetStart, UTF32 *targetEnd, ConversionFlags flags) |
| ConversionResult | ConvertUTF32toUTF16 (const UTF32 **sourceStart, const UTF32 *sourceEnd, UTF16 **targetStart, UTF16 *targetEnd, ConversionFlags flags) |
| Boolean | isLegalUTF8Sequence (const UTF8 *source, const UTF8 *sourceEnd) |
| Boolean | isLegalUTF8String (const UTF8 **source, const UTF8 *sourceEnd) |
| unsigned | getNumBytesForUTF8 (UTF8 firstByte) |
| bool | ConvertUTF8toWide (unsigned WideCharWidth, llvm::StringRef Source, char *&ResultPtr, const UTF8 *&ErrorPtr) |
| Convert an UTF8 StringRef to UTF8, UTF16, or UTF32 depending on WideCharWidth. More... | |
| bool | ConvertUTF8toWide (llvm::StringRef Source, std::wstring &Result) |
| Converts a UTF-8 StringRef to a std::wstring. More... | |
| bool | ConvertUTF8toWide (const char *Source, std::wstring &Result) |
| Converts a UTF-8 C-string to a std::wstring. More... | |
| bool | convertWideToUTF8 (const std::wstring &Source, std::string &Result) |
| Converts a std::wstring to a UTF-8 encoded std::string. More... | |
| bool | ConvertCodePointToUTF8 (unsigned Source, char *&ResultPtr) |
| Convert an Unicode code point to UTF8 sequence. More... | |
| ConversionResult | convertUTF8Sequence (const UTF8 **source, const UTF8 *sourceEnd, UTF32 *target, ConversionFlags flags) |
| Convert the first UTF8 sequence in the given source buffer to a UTF32 code point. More... | |
| bool | hasUTF16ByteOrderMark (ArrayRef< char > SrcBytes) |
| Returns true if a blob of text starts with a UTF-16 big or little endian byte order mark. More... | |
| bool | convertUTF16ToUTF8String (ArrayRef< char > SrcBytes, std::string &Out) |
| Converts a stream of raw bytes assumed to be UTF16 into a UTF8 std::string. More... | |
| bool | convertUTF16ToUTF8String (ArrayRef< UTF16 > Src, std::string &Out) |
| Converts a UTF16 string into a UTF8 std::string. More... | |
| bool | convertUTF8ToUTF16String (StringRef SrcUTF8, SmallVectorImpl< UTF16 > &DstUTF16) |
| Converts a UTF-8 string into a UTF-16 string with native endianness. More... | |
| uint32_t | crc32 (ArrayRef< uint8_t > Data) |
| uint32_t | crc32 (uint32_t CRC, ArrayRef< uint8_t > Data) |
| uint24_t | getSwappedBytes (uint24_t C) |
| Needed by swapByteOrder(). More... | |
| bool | isCurrentDebugType (const char *Type) |
| isCurrentDebugType - Return true if the specified string is the debug type specified on the command line, or if none was specified on the command line with the -debug-only=X option. More... | |
| void | setCurrentDebugType (const char *Type) |
| setCurrentDebugType - Set the current debug type, as if the -debug-only=X option were specified. More... | |
| void | setCurrentDebugTypes (const char **Types, unsigned Count) |
| setCurrentDebugTypes - Set the current debug type, as if the -debug-only=X,Y,Z option were specified. More... | |
| raw_ostream & | dbgs () |
| dbgs() - This returns a reference to a raw_ostream for debugging messages. More... | |
| uint32_t | djbHash (StringRef Buffer, uint32_t H=5381) |
| The Bernstein hash function used by the DWARF accelerator tables. More... | |
| uint32_t | caseFoldingDjbHash (StringRef Buffer, uint32_t H=5381) |
| Computes the Bernstein hash after folding the input according to the Dwarf 5 standard case folding rules. More... | |
| std::error_code | make_error_code (errc E) |
| template<typename ErrT , typename... ArgTs> | |
| Error | make_error (ArgTs &&... Args) |
| Make a Error instance representing failure using the given error info type. More... | |
| Error | joinErrors (Error E1, Error E2) |
| Concatenate errors. More... | |
| LLVM_ATTRIBUTE_NORETURN void | report_fatal_error (Error Err, bool gen_crash_diag=true) |
| Report a serious error, calling any installed error handler. More... | |
| void | cantFail (Error Err, const char *Msg=nullptr) |
| Report a fatal error if Err is a failure value. More... | |
| template<typename T > | |
| T | cantFail (Expected< T > ValOrErr, const char *Msg=nullptr) |
| Report a fatal error if ValOrErr is a failure value, otherwise unwraps and returns the contained value. More... | |
| template<typename T > | |
| T & | cantFail (Expected< T &> ValOrErr, const char *Msg=nullptr) |
| Report a fatal error if ValOrErr is a failure value, otherwise unwraps and returns the contained reference. More... | |
| Error | handleErrorImpl (std::unique_ptr< ErrorInfoBase > Payload) |
| template<typename HandlerT , typename... HandlerTs> | |
| Error | handleErrorImpl (std::unique_ptr< ErrorInfoBase > Payload, HandlerT &&Handler, HandlerTs &&... Handlers) |
| template<typename... HandlerTs> | |
| Error | handleErrors (Error E, HandlerTs &&... Hs) |
| Pass the ErrorInfo(s) contained in E to their respective handlers. More... | |
| template<typename... HandlerTs> | |
| void | handleAllErrors (Error E, HandlerTs &&... Handlers) |
| Behaves the same as handleErrors, except that by contract all errors must be handled by the given handlers (i.e. More... | |
| void | handleAllErrors (Error E) |
| Check that E is a non-error, then drop it. More... | |
| template<typename T , typename RecoveryFtor , typename... HandlerTs> | |
| Expected< T > | handleExpected (Expected< T > ValOrErr, RecoveryFtor &&RecoveryPath, HandlerTs &&... Handlers) |
| Handle any errors (if present) in an Expected<T>, then try a recovery path. More... | |
| void | logAllUnhandledErrors (Error E, raw_ostream &OS, Twine ErrorBanner={}) |
| Log all errors (if any) in E to OS. More... | |
| std::string | toString (Error E) |
| Write all error messages (if any) in E to a string. More... | |
| void | consumeError (Error Err) |
| Consume a Error without doing anything. More... | |
| template<typename T > | |
| Optional< T > | expectedToOptional (Expected< T > &&E) |
| Convert an Expected to an Optional without doing anything. More... | |
| bool | errorToBool (Error Err) |
| Helper for converting an Error to a bool. More... | |
| std::error_code | inconvertibleErrorCode () |
| The value returned by this function can be returned from convertToErrorCode for Error values where no sensible translation to std::error_code exists. More... | |
| Error | errorCodeToError (std::error_code EC) |
| Helper for converting an std::error_code to a Error. More... | |
| std::error_code | errorToErrorCode (Error Err) |
| Helper for converting an ECError to a std::error_code. More... | |
| template<typename T > | |
| Expected< T > | errorOrToExpected (ErrorOr< T > &&EO) |
| Convert an ErrorOr<T> to an Expected<T>. More... | |
| template<typename T > | |
| ErrorOr< T > | expectedToErrorOr (Expected< T > &&E) |
| Convert an Expected<T> to an ErrorOr<T>. More... | |
| template<typename... Ts> | |
| Error | createStringError (std::error_code EC, char const *Fmt, const Ts &... Vals) |
| Create formatted StringError object. More... | |
| Error | createStringError (std::error_code EC, char const *Msg) |
| Error | createStringError (std::error_code EC, const Twine &S) |
| template<typename... Ts> | |
| Error | createStringError (std::errc EC, char const *Fmt, const Ts &... Vals) |
| Error | createFileError (const Twine &F, Error E) |
| Concatenate a source file path and/or name with an Error. More... | |
| Error | createFileError (const Twine &F, size_t Line, Error E) |
| Concatenate a source file path and/or name with line number and an Error. More... | |
| Error | createFileError (const Twine &F, std::error_code EC) |
| Concatenate a source file path and/or name with a std::error_code to form an Error object. More... | |
| Error | createFileError (const Twine &F, size_t Line, std::error_code EC) |
| Concatenate a source file path and/or name with line number and std::error_code to form an Error object. More... | |
| Error | createFileError (const Twine &F, ErrorSuccess)=delete |
| LLVMErrorRef | wrap (Error Err) |
| Conversion from Error to LLVMErrorRef for C error bindings. More... | |
| Error | unwrap (LLVMErrorRef ErrRef) |
| Conversion from LLVMErrorRef to Error for C error bindings. More... | |
| void | install_fatal_error_handler (fatal_error_handler_t handler, void *user_data=nullptr) |
| install_fatal_error_handler - Installs a new error handler to be used whenever a serious (non-recoverable) error is encountered by LLVM. More... | |
| void | remove_fatal_error_handler () |
| Restores default error handling behaviour. More... | |
| LLVM_ATTRIBUTE_NORETURN void | report_fatal_error (const char *reason, bool gen_crash_diag=true) |
| Reports a serious error, calling any installed error handler. More... | |
| LLVM_ATTRIBUTE_NORETURN void | report_fatal_error (const std::string &reason, bool gen_crash_diag=true) |
| LLVM_ATTRIBUTE_NORETURN void | report_fatal_error (StringRef reason, bool gen_crash_diag=true) |
| LLVM_ATTRIBUTE_NORETURN void | report_fatal_error (const Twine &reason, bool gen_crash_diag=true) |
| void | install_bad_alloc_error_handler (fatal_error_handler_t handler, void *user_data=nullptr) |
| Installs a new bad alloc error handler that should be used whenever a bad alloc error, e.g. More... | |
| void | remove_bad_alloc_error_handler () |
| Restores default bad alloc error handling behavior. More... | |
| void | install_out_of_memory_new_handler () |
| void | report_bad_alloc_error (const char *Reason, bool GenCrashDiag=true) |
| Reports a bad alloc error, calling any user defined bad alloc error handler. More... | |
| LLVM_ATTRIBUTE_NORETURN void | llvm_unreachable_internal (const char *msg=nullptr, const char *file=nullptr, unsigned line=0) |
| This function calls abort(), and prints the optional message to stderr. More... | |
| template<class T , class E > | |
| std::enable_if< std::is_error_code_enum< E >::value||std::is_error_condition_enum< E >::value, bool >::type | operator== (const ErrorOr< T > &Err, E Code) |
| int | DiffFilesWithTolerance (StringRef FileA, StringRef FileB, double AbsTol, double RelTol, std::string *Error=nullptr) |
| DiffFilesWithTolerance - Compare the two files specified, returning 0 if the files match, 1 if they are different, and 2 if there is a file error. More... | |
| llvm::Error | writeFileAtomically (StringRef TempPathModel, StringRef FinalPath, StringRef Buffer) |
Creates a unique file with name according to the given TempPathModel, writes content of Buffer to the file and renames it to FinalPath. More... | |
| llvm::Error | writeFileAtomically (StringRef TempPathModel, StringRef FinalPath, std::function< llvm::Error(llvm::raw_ostream &)> Writer) |
| template<typename... Ts> | |
| format_object< Ts... > | format (const char *Fmt, const Ts &... Vals) |
| These are helper functions used to produce formatted output. More... | |
| FormattedString | left_justify (StringRef Str, unsigned Width) |
left_justify - append spaces after string so total output is Width characters. More... | |
| FormattedString | right_justify (StringRef Str, unsigned Width) |
right_justify - add spaces before string so total output is Width characters. More... | |
| FormattedString | center_justify (StringRef Str, unsigned Width) |
center_justify - add spaces before and after string so total output is Width characters. More... | |
| FormattedNumber | format_hex (uint64_t N, unsigned Width, bool Upper=false) |
format_hex - Output N as a fixed width hexadecimal. More... | |
| FormattedNumber | format_hex_no_prefix (uint64_t N, unsigned Width, bool Upper=false) |
format_hex_no_prefix - Output N as a fixed width hexadecimal. More... | |
| FormattedNumber | format_decimal (int64_t N, unsigned Width) |
format_decimal - Output N as a right justified, fixed-width decimal. More... | |
| FormattedBytes | format_bytes (ArrayRef< uint8_t > Bytes, Optional< uint64_t > FirstByteOffset=None, uint32_t NumPerLine=16, uint8_t ByteGroupSize=4, uint32_t IndentLevel=0, bool Upper=false) |
| FormattedBytes | format_bytes_with_ascii (ArrayRef< uint8_t > Bytes, Optional< uint64_t > FirstByteOffset=None, uint32_t NumPerLine=16, uint8_t ByteGroupSize=4, uint32_t IndentLevel=0, bool Upper=false) |
| template<typename T > | |
| detail::AlignAdapter< T > | fmt_align (T &&Item, AlignStyle Where, size_t Amount, char Fill=' ') |
| template<typename T > | |
| detail::PadAdapter< T > | fmt_pad (T &&Item, size_t Left, size_t Right) |
| template<typename T > | |
| detail::RepeatAdapter< T > | fmt_repeat (T &&Item, size_t Count) |
| detail::ErrorAdapter | fmt_consume (Error &&Item) |
| formatted_raw_ostream & | fouts () |
| fouts() - This returns a reference to a formatted_raw_ostream for standard output. More... | |
| formatted_raw_ostream & | ferrs () |
| ferrs() - This returns a reference to a formatted_raw_ostream for standard error. More... | |
| formatted_raw_ostream & | fdbgs () |
| fdbgs() - This returns a reference to a formatted_raw_ostream for debug output. More... | |
| template<typename... Ts> | |
| auto | formatv (const char *Fmt, Ts &&... Vals) -> formatv_object< decltype(std::make_tuple(detail::build_format_adapter(std::forward< Ts >(Vals))...))> |
| template<class NodeT > | |
| raw_ostream & | operator<< (raw_ostream &O, const DomTreeNodeBase< NodeT > *Node) |
| template<class NodeT > | |
| void | PrintDomTree (const DomTreeNodeBase< NodeT > *N, raw_ostream &O, unsigned Lev) |
| bool | DisplayGraph (StringRef Filename, bool wait=true, GraphProgram::Name program=GraphProgram::DOT) |
| template<typename GraphType > | |
| raw_ostream & | WriteGraph (raw_ostream &O, const GraphType &G, bool ShortNames=false, const Twine &Title="") |
| std::string | createGraphFilename (const Twine &Name, int &FD) |
| unsigned | encodeSLEB128 (int64_t Value, raw_ostream &OS, unsigned PadTo=0) |
| Utility function to encode a SLEB128 value to an output stream. More... | |
| unsigned | encodeSLEB128 (int64_t Value, uint8_t *p, unsigned PadTo=0) |
| Utility function to encode a SLEB128 value to a buffer. More... | |
| unsigned | encodeULEB128 (uint64_t Value, raw_ostream &OS, unsigned PadTo=0) |
| Utility function to encode a ULEB128 value to an output stream. More... | |
| unsigned | encodeULEB128 (uint64_t Value, uint8_t *p, unsigned PadTo=0) |
| Utility function to encode a ULEB128 value to a buffer. More... | |
| uint64_t | decodeULEB128 (const uint8_t *p, unsigned *n=nullptr, const uint8_t *end=nullptr, const char **error=nullptr) |
| Utility function to decode a ULEB128 value. More... | |
| int64_t | decodeSLEB128 (const uint8_t *p, unsigned *n=nullptr, const uint8_t *end=nullptr, const char **error=nullptr) |
| Utility function to decode a SLEB128 value. More... | |
| unsigned | getULEB128Size (uint64_t Value) |
| Utility function to get the size of the ULEB128-encoded value. More... | |
| unsigned | getSLEB128Size (int64_t Value) |
| Utility function to get the size of the SLEB128-encoded value. More... | |
| raw_ostream & | operator<< (raw_ostream &OS, const LLT &Ty) |
| void | llvm_shutdown () |
| llvm_shutdown - Deallocate and destroy all ManagedStatic variables. More... | |
| template<typename T > | |
| unsigned | countTrailingZeros (T Val, ZeroBehavior ZB=ZB_Width) |
| Count number of 0's from the least significant bit to the most stopping at the first 1. More... | |
| template<typename T > | |
| unsigned | countLeadingZeros (T Val, ZeroBehavior ZB=ZB_Width) |
| Count number of 0's from the most significant bit to the least stopping at the first 1. More... | |
| template<typename T > | |
| T | findFirstSet (T Val, ZeroBehavior ZB=ZB_Max) |
| Get the index of the first set bit starting from the least significant bit. More... | |
| template<typename T > | |
| T | maskTrailingOnes (unsigned N) |
| Create a bitmask with the N right-most bits set to 1, and all other bits set to 0. More... | |
| template<typename T > | |
| T | maskLeadingOnes (unsigned N) |
| Create a bitmask with the N left-most bits set to 1, and all other bits set to 0. More... | |
| template<typename T > | |
| T | maskTrailingZeros (unsigned N) |
| Create a bitmask with the N right-most bits set to 0, and all other bits set to 1. More... | |
| template<typename T > | |
| T | maskLeadingZeros (unsigned N) |
| Create a bitmask with the N left-most bits set to 0, and all other bits set to 1. More... | |
| template<typename T > | |
| T | findLastSet (T Val, ZeroBehavior ZB=ZB_Max) |
| Get the index of the last set bit starting from the least significant bit. More... | |
| template<typename T > | |
| T | reverseBits (T Val) |
Reverse the bits in Val. More... | |
| constexpr uint32_t | Hi_32 (uint64_t Value) |
| Return the high 32 bits of a 64 bit value. More... | |
| constexpr uint32_t | Lo_32 (uint64_t Value) |
| Return the low 32 bits of a 64 bit value. More... | |
| constexpr uint64_t | Make_64 (uint32_t High, uint32_t Low) |
| Make a 64-bit integer from a high / low pair of 32-bit integers. More... | |
| template<unsigned N> | |
| constexpr bool | isInt (int64_t x) |
| Checks if an integer fits into the given bit width. More... | |
| template<> | |
| constexpr bool | isInt< 8 > (int64_t x) |
| template<> | |
| constexpr bool | isInt< 16 > (int64_t x) |
| template<> | |
| constexpr bool | isInt< 32 > (int64_t x) |
| template<unsigned N, unsigned S> | |
| constexpr bool | isShiftedInt (int64_t x) |
| Checks if a signed integer is an N bit number shifted left by S. More... | |
| template<unsigned N> | |
| constexpr std::enable_if<(N< 64), bool >::type | isUInt (uint64_t X) |
| Checks if an unsigned integer fits into the given bit width. More... | |
| template<unsigned N> | |
| constexpr bool ::type | isUInt (uint64_t X) |
| template<> | |
| constexpr bool | isUInt< 8 > (uint64_t x) |
| template<> | |
| constexpr bool | isUInt< 16 > (uint64_t x) |
| template<> | |
| constexpr bool | isUInt< 32 > (uint64_t x) |
| template<unsigned N, unsigned S> | |
| constexpr bool | isShiftedUInt (uint64_t x) |
| Checks if a unsigned integer is an N bit number shifted left by S. More... | |
| uint64_t | maxUIntN (uint64_t N) |
| Gets the maximum value for a N-bit unsigned integer. More... | |
| int64_t | minIntN (int64_t N) |
| Gets the minimum value for a N-bit signed integer. More... | |
| int64_t | maxIntN (int64_t N) |
| Gets the maximum value for a N-bit signed integer. More... | |
| bool | isUIntN (unsigned N, uint64_t x) |
| Checks if an unsigned integer fits into the given (dynamic) bit width. More... | |
| bool | isIntN (unsigned N, int64_t x) |
| Checks if an signed integer fits into the given (dynamic) bit width. More... | |
| constexpr bool | isMask_32 (uint32_t Value) |
| Return true if the argument is a non-empty sequence of ones starting at the least significant bit with the remainder zero (32 bit version). More... | |
| constexpr bool | isMask_64 (uint64_t Value) |
| Return true if the argument is a non-empty sequence of ones starting at the least significant bit with the remainder zero (64 bit version). More... | |
| constexpr bool | isShiftedMask_32 (uint32_t Value) |
| Return true if the argument contains a non-empty sequence of ones with the remainder zero (32 bit version.) Ex. More... | |
| constexpr bool | isShiftedMask_64 (uint64_t Value) |
| Return true if the argument contains a non-empty sequence of ones with the remainder zero (64 bit version.) More... | |
| constexpr bool | isPowerOf2_32 (uint32_t Value) |
| Return true if the argument is a power of two > 0. More... | |
| constexpr bool | isPowerOf2_64 (uint64_t Value) |
| Return true if the argument is a power of two > 0 (64 bit edition.) More... | |
| uint16_t | ByteSwap_16 (uint16_t Value) |
| Return a byte-swapped representation of the 16-bit argument. More... | |
| uint32_t | ByteSwap_32 (uint32_t Value) |
| Return a byte-swapped representation of the 32-bit argument. More... | |
| uint64_t | ByteSwap_64 (uint64_t Value) |
| Return a byte-swapped representation of the 64-bit argument. More... | |
| template<typename T > | |
| unsigned | countLeadingOnes (T Value, ZeroBehavior ZB=ZB_Width) |
| Count the number of ones from the most significant bit to the first zero bit. More... | |
| template<typename T > | |
| unsigned | countTrailingOnes (T Value, ZeroBehavior ZB=ZB_Width) |
| Count the number of ones from the least significant bit to the first zero bit. More... | |
| template<typename T > | |
| unsigned | countPopulation (T Value) |
| Count the number of set bits in a value. More... | |
| template<size_t kValue> | |
| constexpr size_t | CTLog2 () |
| Compile time Log2. More... | |
| template<> | |
| constexpr size_t | CTLog2< 1 > () |
| double | Log2 (double Value) |
| Return the log base 2 of the specified value. More... | |
| unsigned | Log2_32 (uint32_t Value) |
| Return the floor log base 2 of the specified value, -1 if the value is zero. More... | |
| unsigned | Log2_64 (uint64_t Value) |
| Return the floor log base 2 of the specified value, -1 if the value is zero. More... | |
| unsigned | Log2_32_Ceil (uint32_t Value) |
| Return the ceil log base 2 of the specified value, 32 if the value is zero. More... | |
| unsigned | Log2_64_Ceil (uint64_t Value) |
| Return the ceil log base 2 of the specified value, 64 if the value is zero. More... | |
| template<typename T > | |
| T | greatestCommonDivisor (T A, T B) |
| Return the greatest common divisor of the values using Euclid's algorithm. More... | |
| uint64_t | GreatestCommonDivisor64 (uint64_t A, uint64_t B) |
| double | BitsToDouble (uint64_t Bits) |
| This function takes a 64-bit integer and returns the bit equivalent double. More... | |
| float | BitsToFloat (uint32_t Bits) |
| This function takes a 32-bit integer and returns the bit equivalent float. More... | |
| uint64_t | DoubleToBits (double Double) |
| This function takes a double and returns the bit equivalent 64-bit integer. More... | |
| uint32_t | FloatToBits (float Float) |
| This function takes a float and returns the bit equivalent 32-bit integer. More... | |
| constexpr uint64_t | MinAlign (uint64_t A, uint64_t B) |
| A and B are either alignments or offsets. More... | |
| uint64_t | NextPowerOf2 (uint64_t A) |
| Returns the next power of two (in 64-bits) that is strictly greater than A. More... | |
| uint64_t | PowerOf2Floor (uint64_t A) |
| Returns the power of two which is less than or equal to the given value. More... | |
| uint64_t | PowerOf2Ceil (uint64_t A) |
| Returns the power of two which is greater than or equal to the given value. More... | |
| uint64_t | alignTo (uint64_t Value, uint64_t Align, uint64_t Skew=0) |
Returns the next integer (mod 2**64) that is greater than or equal to Value and is a multiple of Align. More... | |
| template<uint64_t Align> | |
| constexpr uint64_t | alignTo (uint64_t Value) |
Returns the next integer (mod 2**64) that is greater than or equal to Value and is a multiple of Align. More... | |
| uint64_t | divideCeil (uint64_t Numerator, uint64_t Denominator) |
| Returns the integer ceil(Numerator / Denominator). More... | |
| uint64_t | divideNearest (uint64_t Numerator, uint64_t Denominator) |
| Returns the integer nearest(Numerator / Denominator). More... | |
| uint64_t | alignDown (uint64_t Value, uint64_t Align, uint64_t Skew=0) |
Returns the largest uint64_t less than or equal to Value and is Skew mod Align. More... | |
| template<unsigned B> | |
| constexpr int32_t | SignExtend32 (uint32_t X) |
| Sign-extend the number in the bottom B bits of X to a 32-bit integer. More... | |
| int32_t | SignExtend32 (uint32_t X, unsigned B) |
| Sign-extend the number in the bottom B bits of X to a 32-bit integer. More... | |
| template<unsigned B> | |
| constexpr int64_t | SignExtend64 (uint64_t x) |
| Sign-extend the number in the bottom B bits of X to a 64-bit integer. More... | |
| int64_t | SignExtend64 (uint64_t X, unsigned B) |
| Sign-extend the number in the bottom B bits of X to a 64-bit integer. More... | |
| template<typename T > | |
| std::enable_if< std::is_unsigned< T >::value, T >::type | AbsoluteDifference (T X, T Y) |
| Subtract two unsigned integers, X and Y, of type T and return the absolute value of the result. More... | |
| template<typename T > | |
| std::enable_if< std::is_unsigned< T >::value, T >::type | SaturatingAdd (T X, T Y, bool *ResultOverflowed=nullptr) |
| Add two unsigned integers, X and Y, of type T. More... | |
| template<typename T > | |
| std::enable_if< std::is_unsigned< T >::value, T >::type | SaturatingMultiply (T X, T Y, bool *ResultOverflowed=nullptr) |
| Multiply two unsigned integers, X and Y, of type T. More... | |
| template<typename T > | |
| std::enable_if< std::is_unsigned< T >::value, T >::type | SaturatingMultiplyAdd (T X, T Y, T A, bool *ResultOverflowed=nullptr) |
| Multiply two unsigned integers, X and Y, and add the unsigned integer, A to the product. More... | |
| template<typename T > | |
| std::enable_if< std::is_signed< T >::value, T >::type | AddOverflow (T X, T Y, T &Result) |
| Add two signed integers, computing the two's complement truncated result, returning true if overflow occured. More... | |
| template<typename T > | |
| std::enable_if< std::is_signed< T >::value, T >::type | SubOverflow (T X, T Y, T &Result) |
| Subtract two signed integers, computing the two's complement truncated result, returning true if an overflow ocurred. More... | |
| template<typename T > | |
| std::enable_if< std::is_signed< T >::value, T >::type | MulOverflow (T X, T Y, T &Result) |
| Multiply two signed integers, computing the two's complement truncated result, returning true if an overflow ocurred. More... | |
| bool | operator== (const MD5::MD5Result &LHS, const MD5::MD5Result &RHS) |
| uint64_t | MD5Hash (StringRef Str) |
| Helper to compute and return lower 64 bits of the given string's MD5 hash. More... | |
| LLVM_ATTRIBUTE_RETURNS_NONNULL void * | safe_malloc (size_t Sz) |
| LLVM_ATTRIBUTE_RETURNS_NONNULL void * | safe_calloc (size_t Count, size_t Sz) |
| LLVM_ATTRIBUTE_RETURNS_NONNULL void * | safe_realloc (void *Ptr, size_t Sz) |
| size_t | getDefaultPrecision (FloatStyle Style) |
| bool | isPrefixedHexStyle (HexPrintStyle S) |
| void | write_integer (raw_ostream &S, unsigned int N, size_t MinDigits, IntegerStyle Style) |
| void | write_integer (raw_ostream &S, int N, size_t MinDigits, IntegerStyle Style) |
| void | write_integer (raw_ostream &S, unsigned long N, size_t MinDigits, IntegerStyle Style) |
| void | write_integer (raw_ostream &S, long N, size_t MinDigits, IntegerStyle Style) |
| void | write_integer (raw_ostream &S, unsigned long long N, size_t MinDigits, IntegerStyle Style) |
| void | write_integer (raw_ostream &S, long long N, size_t MinDigits, IntegerStyle Style) |
| void | write_hex (raw_ostream &S, uint64_t N, HexPrintStyle Style, Optional< size_t > Width=None) |
| void | write_double (raw_ostream &S, double D, FloatStyle Style, Optional< size_t > Precision=None) |
| static cl::opt< PluginLoader, false, cl::parser< std::string > > | LoadOpt ("load", cl::ZeroOrMore, cl::value_desc("pluginfilename"), cl::desc("Load the specified plugin")) |
| void | EnablePrettyStackTrace () |
| Enables dumping a "pretty" stack trace when the program crashes. More... | |
| void | EnablePrettyStackTraceOnSigInfoForThisThread (bool ShouldEnable=true) |
| Enables (or disables) dumping a "pretty" stack trace when the user sends SIGINFO or SIGUSR1 to the current process. More... | |
| const void * | SavePrettyStackState () |
| Returns the topmost element of the "pretty" stack state. More... | |
| void | RestorePrettyStackState (const void *State) |
| Restores the topmost element of the "pretty" stack state to State, which should come from a previous call to SavePrettyStackState(). More... | |
| raw_ostream & | operator<< (raw_ostream &OS, const Printable &P) |
| std::error_code | getRandomBytes (void *Buffer, size_t Size) |
| template<typename OStream , typename T > | |
| std::enable_if<!std::is_reference< OStream >::value &&std::is_base_of< raw_ostream, OStream >::value, OStream && >::type | operator<< (OStream &&OS, const T &Value) |
| Call the appropriate insertion operator, given an rvalue reference to a raw_ostream object and return a stream of the same type as the argument. More... | |
| raw_ostream & | outs () |
| This returns a reference to a raw_ostream for standard output. More... | |
| raw_ostream & | errs () |
| This returns a reference to a raw_ostream for standard error. More... | |
| raw_ostream & | nulls () |
| This returns a reference to a raw_ostream which simply discards output. More... | |
| void | PrintRecyclerStats (size_t Size, size_t Align, size_t FreeListSize) |
| PrintRecyclingAllocatorStats - Helper for RecyclingAllocator for printing statistics. More... | |
| template<class T = void *> | |
| bool | shouldReverseIterate () |
| template<class DigitsT > | |
| ScaledNumber< DigitsT > | operator<< (const ScaledNumber< DigitsT > &L, int16_t Shift) |
| template<class DigitsT > | |
| ScaledNumber< DigitsT > | operator>> (const ScaledNumber< DigitsT > &L, int16_t Shift) |
| template<class DigitsT > | |
| raw_ostream & | operator<< (raw_ostream &OS, const ScaledNumber< DigitsT > &X) |
| raw_ostream & | operator<< (raw_ostream &OS, const HexNumber &Value) |
| const std::string | to_hexString (uint64_t Value, bool UpperCase=true) |
| template<class T > | |
| const std::string | to_string (const T &Value) |
| template<> | |
| void | ScopedPrinter::printHex< support::ulittle16_t > (StringRef Label, support::ulittle16_t Value) |
| SMTSolverRef | CreateZ3Solver () |
| Convenience method to create and Z3Solver object. More... | |
| bool | CheckBitcodeOutputToConsole (raw_ostream &stream_to_check, bool print_warning=true) |
| Determine if the raw_ostream provided is connected to a terminal. More... | |
| MCStreamer * | createAsmStreamer (MCContext &Ctx, std::unique_ptr< formatted_raw_ostream > OS, bool isVerboseAsm, bool useDwarfDirectory, MCInstPrinter *InstPrint, std::unique_ptr< MCCodeEmitter > &&CE, std::unique_ptr< MCAsmBackend > &&TAB, bool ShowInst) |
| Create a machine code streamer which will print out assembly for the native target, suitable for compiling with a native assembler. More... | |
| MCStreamer * | createELFStreamer (MCContext &Ctx, std::unique_ptr< MCAsmBackend > &&TAB, std::unique_ptr< MCObjectWriter > &&OW, std::unique_ptr< MCCodeEmitter > &&CE, bool RelaxAll) |
| MCStreamer * | createMachOStreamer (MCContext &Ctx, std::unique_ptr< MCAsmBackend > &&TAB, std::unique_ptr< MCObjectWriter > &&OW, std::unique_ptr< MCCodeEmitter > &&CE, bool RelaxAll, bool DWARFMustBeAtTheEnd, bool LabelSections=false) |
| MCStreamer * | createWasmStreamer (MCContext &Ctx, std::unique_ptr< MCAsmBackend > &&TAB, std::unique_ptr< MCObjectWriter > &&OW, std::unique_ptr< MCCodeEmitter > &&CE, bool RelaxAll) |
| MCStreamer * | createXCOFFStreamer (MCContext &Ctx, std::unique_ptr< MCAsmBackend > &&TAB, std::unique_ptr< MCObjectWriter > &&OW, std::unique_ptr< MCCodeEmitter > &&CE, bool RelaxAll) |
| MCRelocationInfo * | createMCRelocationInfo (const Triple &TT, MCContext &Ctx) |
| MCSymbolizer * | createMCSymbolizer (const Triple &TT, LLVMOpInfoCallback GetOpInfo, LLVMSymbolLookupCallback SymbolLookUp, void *DisInfo, MCContext *Ctx, std::unique_ptr< MCRelocationInfo > &&RelInfo) |
| void | InitializeAllTargetInfos () |
| InitializeAllTargetInfos - The main program should call this function if it wants access to all available targets that LLVM is configured to support, to make them available via the TargetRegistry. More... | |
| void | InitializeAllTargets () |
| InitializeAllTargets - The main program should call this function if it wants access to all available target machines that LLVM is configured to support, to make them available via the TargetRegistry. More... | |
| void | InitializeAllTargetMCs () |
| InitializeAllTargetMCs - The main program should call this function if it wants access to all available target MC that LLVM is configured to support, to make them available via the TargetRegistry. More... | |
| void | InitializeAllAsmPrinters () |
| InitializeAllAsmPrinters - The main program should call this function if it wants all asm printers that LLVM is configured to support, to make them available via the TargetRegistry. More... | |
| void | InitializeAllAsmParsers () |
| InitializeAllAsmParsers - The main program should call this function if it wants all asm parsers that LLVM is configured to support, to make them available via the TargetRegistry. More... | |
| void | InitializeAllDisassemblers () |
| InitializeAllDisassemblers - The main program should call this function if it wants all disassemblers that LLVM is configured to support, to make them available via the TargetRegistry. More... | |
| bool | InitializeNativeTarget () |
| InitializeNativeTarget - The main program should call this function to initialize the native target corresponding to the host. More... | |
| bool | InitializeNativeTargetAsmPrinter () |
| InitializeNativeTargetAsmPrinter - The main program should call this function to initialize the native target asm printer. More... | |
| bool | InitializeNativeTargetAsmParser () |
| InitializeNativeTargetAsmParser - The main program should call this function to initialize the native target asm parser. More... | |
| bool | InitializeNativeTargetDisassembler () |
| InitializeNativeTargetDisassembler - The main program should call this function to initialize the native target disassembler. More... | |
| bool | llvm_is_multithreaded () |
| Returns true if LLVM is compiled with support for multi-threading, and false otherwise. More... | |
| void | llvm_execute_on_thread (void(*UserFn)(void *), void *UserData, llvm::Optional< unsigned > StackSizeInBytes=llvm::None) |
Execute the given UserFn on a separate thread, passing it the provided UserData and waits for thread completion. More... | |
| void | llvm_execute_on_thread_async (llvm::unique_function< void()> Func, llvm::Optional< unsigned > StackSizeInBytes=llvm::None) |
Schedule the given Func for execution on a separate thread, then return to the caller immediately. More... | |
| template<typename Function , typename... Args> | |
| void | call_once (once_flag &flag, Function &&F, Args &&... ArgList) |
| Execute the function specified as a parameter once. More... | |
| unsigned | heavyweight_hardware_concurrency () |
| Get the amount of currency to use for tasks requiring significant memory or other resources. More... | |
| unsigned | hardware_concurrency () |
| Get the number of threads that the current program can execute concurrently. More... | |
| uint64_t | get_threadid () |
| Return the current thread id, as used in various OS system calls. More... | |
| uint32_t | get_max_thread_name_length () |
| Get the maximum length of a thread name on this platform. More... | |
| void | set_thread_name (const Twine &Name) |
| Set the name of the current thread. More... | |
| void | get_thread_name (SmallVectorImpl< char > &Name) |
| Get the name of the current thread. More... | |
| SetThreadPriorityResult | set_thread_priority (ThreadPriority Priority) |
| void | timeTraceProfilerInitialize (unsigned TimeTraceGranularity, StringRef ProcName) |
| Initialize the time trace profiler. More... | |
| void | timeTraceProfilerCleanup () |
| Cleanup the time trace profiler, if it was initialized. More... | |
| bool | timeTraceProfilerEnabled () |
| Is the time trace profiler enabled, i.e. initialized? More... | |
| void | timeTraceProfilerWrite (raw_pwrite_stream &OS) |
| Write profiling data to output file. More... | |
| void | timeTraceProfilerBegin (StringRef Name, StringRef Detail) |
Manually begin a time section, with the given Name and Detail. More... | |
| void | timeTraceProfilerBegin (StringRef Name, llvm::function_ref< std::string()> Detail) |
| void | timeTraceProfilerEnd () |
| Manually end the last time section. More... | |
| template<typename DesiredTypeName > | |
| StringRef | getTypeName () |
| We provide a function which tries to compute the (demangled) name of a type statically. More... | |
| TypeSize | alignTo (TypeSize Size, uint64_t Align) |
Returns a TypeSize with a known minimum size that is the next integer (mod 2**64) that is greater than or equal to Value and is a multiple of Align. More... | |
| raw_ostream & | operator<< (raw_ostream &Out, const VersionTuple &V) |
| Print a version number. More... | |
| bool | RunningWindows8OrGreater () |
| Determines if the program is running on Windows 8 or newer. More... | |
| llvm::VersionTuple | GetWindowsOSVersion () |
| Returns the Windows version as Major.Minor.0.BuildNumber. More... | |
| bool | MakeErrMsg (std::string *ErrMsg, const std::string &prefix) |
| LLVM_ATTRIBUTE_NORETURN void | ReportLastErrorFatal (const char *Msg) |
| template<class T > | |
| SmallVectorImpl< T >::const_pointer | c_str (SmallVectorImpl< T > &str) |
| std::error_code | mapWindowsError (unsigned EV) |
| uint64_t | xxHash64 (llvm::StringRef Data) |
| uint64_t | xxHash64 (llvm::ArrayRef< uint8_t > Data) |
| void | PrintNote (const Twine &Msg) |
| void | PrintNote (ArrayRef< SMLoc > NoteLoc, const Twine &Msg) |
| void | PrintWarning (ArrayRef< SMLoc > WarningLoc, const Twine &Msg) |
| void | PrintWarning (const char *Loc, const Twine &Msg) |
| void | PrintWarning (const Twine &Msg) |
| void | PrintError (ArrayRef< SMLoc > ErrorLoc, const Twine &Msg) |
| void | PrintError (const char *Loc, const Twine &Msg) |
| void | PrintError (const Twine &Msg) |
| LLVM_ATTRIBUTE_NORETURN void | PrintFatalError (const Twine &Msg) |
| LLVM_ATTRIBUTE_NORETURN void | PrintFatalError (ArrayRef< SMLoc > ErrorLoc, const Twine &Msg) |
| int | TableGenMain (char *argv0, TableGenMainFn *MainFn) |
| raw_ostream & | operator<< (raw_ostream &OS, const RecTy &Ty) |
| RecTy * | resolveTypes (RecTy *T1, RecTy *T2) |
| Find a common type that T1 and T2 convert to. More... | |
| raw_ostream & | operator<< (raw_ostream &OS, const Init &I) |
| raw_ostream & | operator<< (raw_ostream &OS, const RecordVal &RV) |
| raw_ostream & | operator<< (raw_ostream &OS, const Record &R) |
| raw_ostream & | operator<< (raw_ostream &OS, const RecordKeeper &RK) |
| void | EmitJSON (RecordKeeper &RK, raw_ostream &OS) |
| void | emitSourceFileHeader (StringRef Desc, raw_ostream &OS) |
| emitSourceFileHeader - Output an LLVM style file header to the specified raw_ostream. More... | |
| Optional< CodeModel::Model > | unwrap (LLVMCodeModel Model, bool &JIT) |
| LLVMCodeModel | wrap (CodeModel::Model Model) |
| CodeModel::Model | getEffectiveCodeModel (Optional< CodeModel::Model > CM, CodeModel::Model Default) |
| Helper method for getting the code model, returning Default if CM does not have a value. More... | |
| llvm::raw_ostream & | operator<< (llvm::raw_ostream &O, const llvm::Annotations::Range &R) |
| MATCHER (Succeeded, "") | |
| MATCHER (Failed, "") | |
| template<typename InfoT > | |
| testing::Matcher< const detail::ErrorHolder & > | Failed () |
| template<typename InfoT , typename M > | |
| testing::Matcher< const detail::ErrorHolder & > | Failed (M Matcher) |
| template<typename M > | |
| detail::ValueMatchesPoly< M > | HasValue (M Matcher) |
| template<class InnerMatcher > | |
| detail::ValueIsMatcher< InnerMatcher > | ValueIs (const InnerMatcher &ValueMatcher) |
| Matches an llvm::Optional<T> with a value that conforms to an inner matcher. More... | |
| int | dlltoolDriverMain (ArrayRef< const char *> ArgsArr) |
| int | libDriverMain (ArrayRef< const char *> ARgs) |
| FunctionPass * | createAggressiveInstCombinerPass () |
| FunctionPass * | createCFGuardCheckPass () |
| Insert Control FLow Guard checks on indirect function calls. More... | |
| FunctionPass * | createCFGuardDispatchPass () |
| Insert Control FLow Guard dispatches on indirect function calls. More... | |
| void | addCoroutinePassesToExtensionPoints (PassManagerBuilder &Builder) |
| Add all coroutine passes to appropriate extension points. More... | |
| Pass * | createCoroEarlyLegacyPass () |
| Lower coroutine intrinsics that are not needed by later passes. More... | |
| Pass * | createCoroSplitLegacyPass () |
| Split up coroutines into multiple functions driving their state machines. More... | |
| Pass * | createCoroElideLegacyPass () |
| Analyze coroutines use sites, devirtualize resume/destroy calls and elide heap allocation for coroutine frame where possible. More... | |
| Pass * | createCoroCleanupLegacyPass () |
| Lower all remaining coroutine intrinsics. More... | |
| FunctionPass * | createInstructionCombiningPass (bool ExpensiveCombines=true) |
| FunctionPass * | createInstructionCombiningPass (bool ExpensiveCombines, unsigned MaxIterations) |
| FunctionPass * | createAddressSanitizerFunctionPass (bool CompileKernel=false, bool Recover=false, bool UseAfterScope=false) |
| ModulePass * | createModuleAddressSanitizerLegacyPassPass (bool CompileKernel=false, bool Recover=false, bool UseGlobalsGC=true, bool UseOdrIndicator=true) |
| FunctionPass * | createBoundsCheckingLegacyPass () |
| Legacy pass creation function for the above pass. More... | |
| FunctionPass * | createHWAddressSanitizerLegacyPassPass (bool CompileKernel=false, bool Recover=false) |
| FunctionPass * | createMemorySanitizerLegacyPassPass (MemorySanitizerOptions Options={}) |
| void | setProfMetadata (Module *M, Instruction *TI, ArrayRef< uint64_t > EdgeCounts, uint64_t MaxCount) |
| void | setIrrLoopHeaderMetadata (Module *M, Instruction *TI, uint64_t Count) |
| ModulePass * | createModuleSanitizerCoverageLegacyPassPass (const SanitizerCoverageOptions &Options=SanitizerCoverageOptions()) |
| FunctionPass * | createThreadSanitizerLegacyPassPass () |
| BasicBlock::iterator | PrepareToSplitEntryBlock (BasicBlock &BB, BasicBlock::iterator IP) |
| Instrumentation passes often insert conditional checks into entry blocks. More... | |
| GlobalVariable * | createPrivateGlobalForString (Module &M, StringRef Str, bool AllowMerging, const char *NamePrefix="") |
| Comdat * | GetOrCreateFunctionComdat (Function &F, Triple &T, const std::string &ModuleId) |
| ModulePass * | createGCOVProfilerPass (const GCOVOptions &Options=GCOVOptions::getDefault()) |
| ModulePass * | createPGOInstrumentationGenLegacyPass (bool IsCS=false) |
| ModulePass * | createPGOInstrumentationUseLegacyPass (StringRef Filename=StringRef(""), bool IsCS=false) |
| ModulePass * | createPGOInstrumentationGenCreateVarLegacyPass (StringRef CSInstrName=StringRef("")) |
| ModulePass * | createPGOIndirectCallPromotionLegacyPass (bool InLTO=false, bool SamplePGO=false) |
| FunctionPass * | createPGOMemOPSizeOptLegacyPass () |
| ModulePass * | createInstrProfilingLegacyPass (const InstrProfOptions &Options=InstrProfOptions(), bool IsCS=false) |
| Insert frontend instrumentation based profiling. Parameter IsCS indicates if. More... | |
| ModulePass * | createInstrOrderFilePass () |
| ModulePass * | createDataFlowSanitizerPass (const std::vector< std::string > &ABIListFiles=std::vector< std::string >(), void *(*getArgTLS)()=nullptr, void *(*getRetValTLS)()=nullptr) |
| static uint64_t | calculateCountScale (uint64_t MaxCount) |
| Calculate what to divide by to scale counts. More... | |
| static uint32_t | scaleBranchCount (uint64_t Count, uint64_t Scale) |
| Scale an individual branch count. More... | |
| Pass * | createAlwaysInlinerLegacyPass (bool InsertLifetime=true) |
| Create a legacy pass manager instance of a pass to inline and remove functions marked as "always_inline". More... | |
| ChangeStatus | operator| (ChangeStatus l, ChangeStatus r) |
| Logic operators for the change status enum class. More... | |
| ChangeStatus | operator & (ChangeStatus l, ChangeStatus r) |
| raw_ostream & | operator<< (raw_ostream &OS, const AbstractAttribute &AA) |
| Forward declarations of output streams for debug purposes. More... | |
| raw_ostream & | operator<< (raw_ostream &OS, ChangeStatus S) |
| Helpers to ease debugging through output streams and print calls. More... | |
| raw_ostream & | operator<< (raw_ostream &OS, IRPosition::Kind) |
| raw_ostream & | operator<< (raw_ostream &OS, const IRPosition &) |
| raw_ostream & | operator<< (raw_ostream &OS, const AbstractState &State) |
| template<typename base_ty , base_ty BestState, base_ty WorstState> | |
| raw_ostream & | operator<< (raw_ostream &OS, const IntegerStateBase< base_ty, BestState, WorstState > &State) |
| raw_ostream & | operator<< (raw_ostream &OS, const IntegerRangeState &State) |
| Pass * | createAttributorLegacyPass () |
| Pass * | createForceFunctionAttrsLegacyPass () |
| Create a legacy pass manager instance of a pass to force function attrs. More... | |
| MemoryAccessKind | computeFunctionBodyMemoryAccess (Function &F, AAResults &AAR) |
| Returns the memory access properties of this copy of the function. More... | |
| Pass * | createPostOrderFunctionAttrsLegacyPass () |
| Create a legacy pass manager instance of a pass to compute function attrs in post-order. More... | |
| void | ComputeCrossModuleImport (const ModuleSummaryIndex &Index, const StringMap< GVSummaryMapTy > &ModuleToDefinedGVSummaries, StringMap< FunctionImporter::ImportMapTy > &ImportLists, StringMap< FunctionImporter::ExportSetTy > &ExportLists) |
| Compute all the imports and exports for every module in the Index. More... | |
| void | ComputeCrossModuleImportForModule (StringRef ModulePath, const ModuleSummaryIndex &Index, FunctionImporter::ImportMapTy &ImportList) |
| Compute all the imports for the given module using the Index. More... | |
| void | ComputeCrossModuleImportForModuleFromIndex (StringRef ModulePath, const ModuleSummaryIndex &Index, FunctionImporter::ImportMapTy &ImportList) |
Mark all external summaries in Index for import into the given module. More... | |
| void | computeDeadSymbols (ModuleSummaryIndex &Index, const DenseSet< GlobalValue::GUID > &GUIDPreservedSymbols, function_ref< PrevailingType(GlobalValue::GUID)> isPrevailing) |
Compute all the symbols that are "dead": i.e these that can't be reached in the graph from any of the given symbols listed in GUIDPreservedSymbols. More... | |
| void | computeDeadSymbolsWithConstProp (ModuleSummaryIndex &Index, const DenseSet< GlobalValue::GUID > &GUIDPreservedSymbols, function_ref< PrevailingType(GlobalValue::GUID)> isPrevailing, bool ImportEnabled) |
| Compute dead symbols and run constant propagation in combined index after that. More... | |
| bool | convertToDeclaration (GlobalValue &GV) |
Converts value GV to declaration, or replaces with a declaration if it is an alias. More... | |
| void | gatherImportedSummariesForModule (StringRef ModulePath, const StringMap< GVSummaryMapTy > &ModuleToDefinedGVSummaries, const FunctionImporter::ImportMapTy &ImportList, std::map< std::string, GVSummaryMapTy > &ModuleToSummariesForIndex) |
Compute the set of summaries needed for a ThinLTO backend compilation of ModulePath. More... | |
| std::error_code | EmitImportsFiles (StringRef ModulePath, StringRef OutputFilename, const std::map< std::string, GVSummaryMapTy > &ModuleToSummariesForIndex) |
Emit into OutputFilename the files module ModulePath will import from. More... | |
| void | thinLTOResolvePrevailingInModule (Module &TheModule, const GVSummaryMapTy &DefinedGlobals) |
Resolve prevailing symbol linkages in TheModule based on the information recorded in the summaries during global summary-based analysis. More... | |
| void | thinLTOInternalizeModule (Module &TheModule, const GVSummaryMapTy &DefinedGlobals) |
Internalize TheModule based on the information recorded in the summaries during global summary-based analysis. More... | |
| Pass * | createInferFunctionAttrsLegacyPass () |
| Create a legacy pass manager instance of a pass to infer function attributes. More... | |
| bool | internalizeModule (Module &TheModule, std::function< bool(const GlobalValue &)> MustPreserveGV, CallGraph *CG=nullptr) |
| Helper function to internalize functions and variables in a Module. More... | |
| void | runWholeProgramDevirtOnIndex (ModuleSummaryIndex &Summary, std::set< GlobalValue::GUID > &ExportedGUIDs, std::map< ValueInfo, std::vector< VTableSlotSummary >> &LocalWPDTargetsMap) |
Perform index-based whole program devirtualization on the Summary index. More... | |
| void | updateIndexWPDForExports (ModuleSummaryIndex &Summary, function_ref< bool(StringRef, ValueInfo)> isExported, std::map< ValueInfo, std::vector< VTableSlotSummary >> &LocalWPDTargetsMap) |
| Call after cross-module importing to update the recorded single impl devirt target names for any locals that were exported. More... | |
| ModulePass * | createStripSymbolsPass (bool OnlyDebugInfo=false) |
| ModulePass * | createStripNonDebugSymbolsPass () |
| ModulePass * | createStripDebugDeclarePass () |
| ModulePass * | createStripDeadDebugInfoPass () |
| ModulePass * | createConstantMergePass () |
| createConstantMergePass - This function returns a new pass that merges duplicate global constants together into a single constant that is shared. More... | |
| ModulePass * | createGlobalOptimizerPass () |
| createGlobalOptimizerPass - This function returns a new pass that optimizes non-address taken internal globals. More... | |
| ModulePass * | createGlobalDCEPass () |
| createGlobalDCEPass - This transform is designed to eliminate unreachable internal globals (functions or global variables) More... | |
| ModulePass * | createEliminateAvailableExternallyPass () |
| This transform is designed to eliminate available external globals (functions or global variables) More... | |
| ModulePass * | createGVExtractionPass (std::vector< GlobalValue *> &GVs, bool deleteFn=false) |
| createGVExtractionPass - If deleteFn is true, this pass deletes the specified global values. More... | |
| Pass * | createFunctionImportPass () |
| This pass performs iterative function importing from other modules. More... | |
| Pass * | createFunctionInliningPass () |
| createFunctionInliningPass - Return a new pass object that uses a heuristic to inline direct function calls to small functions. More... | |
| Pass * | createFunctionInliningPass (int Threshold) |
| Pass * | createFunctionInliningPass (unsigned OptLevel, unsigned SizeOptLevel, bool DisableInlineHotCallSite) |
| Pass * | createFunctionInliningPass (InlineParams &Params) |
| Pass * | createPruneEHPass () |
| createPruneEHPass - Return a new pass object which transforms invoke instructions into calls, if the callee can not unwind the stack. More... | |
| ModulePass * | createInternalizePass (std::function< bool(const GlobalValue &)> MustPreserveGV) |
| createInternalizePass - This pass loops over all of the functions in the input module, internalizing all globals (functions and variables) it can. More... | |
| ModulePass * | createInternalizePass () |
| createInternalizePass - Same as above, but with an empty exportList. More... | |
| ModulePass * | createDeadArgEliminationPass () |
| createDeadArgEliminationPass - This pass removes arguments from functions which are not used by the body of the function. More... | |
| ModulePass * | createDeadArgHackingPass () |
| DeadArgHacking pass - Same as DAE, but delete arguments of external functions as well. More... | |
| Pass * | createArgumentPromotionPass (unsigned maxElements=3) |
| createArgumentPromotionPass - This pass promotes "by reference" arguments to be passed by value if the number of elements passed is smaller or equal to maxElements (maxElements == 0 means always promote). More... | |
| ModulePass * | createIPConstantPropagationPass () |
| createIPConstantPropagationPass - This pass propagates constants from call sites into the bodies of functions. More... | |
| ModulePass * | createIPSCCPPass () |
| createIPSCCPPass - This pass propagates constants from call sites into the bodies of functions, and keeps track of whether basic blocks are executable in the process. More... | |
| Pass * | createLoopExtractorPass () |
| createLoopExtractorPass - This pass extracts all natural loops from the program into a function if it can. More... | |
| Pass * | createSingleLoopExtractorPass () |
| createSingleLoopExtractorPass - This pass extracts one natural loop from the program into a function if it can. More... | |
| ModulePass * | createBlockExtractorPass () |
| createBlockExtractorPass - This pass extracts all the specified blocks from the functions in the module. More... | |
| ModulePass * | createBlockExtractorPass (const SmallVectorImpl< BasicBlock *> &BlocksToExtract, bool EraseFunctions) |
| ModulePass * | createBlockExtractorPass (const SmallVectorImpl< SmallVector< BasicBlock *, 16 >> &GroupsOfBlocksToExtract, bool EraseFunctions) |
| ModulePass * | createStripDeadPrototypesPass () |
| createStripDeadPrototypesPass - This pass removes any function declarations (prototypes) that are not used. More... | |
| Pass * | createReversePostOrderFunctionAttrsPass () |
| createReversePostOrderFunctionAttrsPass - This pass walks SCCs of the call graph in RPO to deduce and propagate function attributes. More... | |
| ModulePass * | createMergeFunctionsPass () |
| createMergeFunctionsPass - This pass discovers identical functions and collapses them. More... | |
| ModulePass * | createHotColdSplittingPass () |
| createHotColdSplittingPass - This pass outlines cold blocks into a separate function(s). More... | |
| ModulePass * | createPartialInliningPass () |
| createPartialInliningPass - This pass inlines parts of functions. More... | |
| ModulePass * | createBarrierNoopPass () |
| createBarrierNoopPass - This pass is purely a module pass barrier in a pass manager. More... | |
| ModulePass * | createCalledValuePropagationPass () |
| createCalledValuePropagationPass - Attach metadata to indirct call sites indicating the set of functions they may target at run-time. More... | |
| ModulePass * | createLowerTypeTestsPass (ModuleSummaryIndex *ExportSummary, const ModuleSummaryIndex *ImportSummary) |
| This pass lowers type metadata and the llvm.type.test intrinsic to bitsets. More... | |
| ModulePass * | createCrossDSOCFIPass () |
| This pass export CFI checks for use by external modules. More... | |
| ModulePass * | createWholeProgramDevirtPass (ModuleSummaryIndex *ExportSummary, const ModuleSummaryIndex *ImportSummary) |
| This pass implements whole-program devirtualization using type metadata. More... | |
| ModulePass * | createGlobalSplitPass () |
| This pass splits globals into pieces for the benefit of whole-program devirtualization and control-flow integrity. More... | |
| ModulePass * | createSampleProfileLoaderPass () |
| ModulePass * | createSampleProfileLoaderPass (StringRef Name) |
| ModulePass * | createWriteThinLTOBitcodePass (raw_ostream &Str, raw_ostream *ThinLinkOS=nullptr) |
| Write ThinLTO-ready bitcode to Str. More... | |
| Pass * | createObjCARCAPElimPass () |
| Pass * | createObjCARCExpandPass () |
| Pass * | createObjCARCContractPass () |
| Pass * | createObjCARCOptPass () |
| FunctionPass * | createGVNPass (bool NoMemDepAnalysis=false) |
| Create a legacy GVN pass. More... | |
| FunctionPass * | createInstSimplifyLegacyPass () |
| Create a legacy pass that does instruction simplification on each instruction in a function. More... | |
| template<typename LoopPassT > | |
| FunctionToLoopPassAdaptor< LoopPassT > | createFunctionToLoopPassAdaptor (LoopPassT Pass, bool UseMemorySSA=false, bool DebugLogging=false) |
| A function to deduce a loop pass type and wrap it in the templated adaptor. More... | |
| FunctionPass * | createScalarizerPass () |
| Create a legacy pass manager instance of the Scalarizer pass. More... | |
| bool | runIPSCCP (Module &M, const DataLayout &DL, std::function< const TargetLibraryInfo &(Function &)> GetTLI, function_ref< AnalysisResultsForFn(Function &)> getAnalysis) |
| Pass * | createSimpleLoopUnswitchLegacyPass (bool NonTrivial=false) |
| Create the legacy pass object for the simple loop unswitcher. More... | |
| Pass * | createWarnMissedTransformationsPass () |
| FunctionPass * | createConstantPropagationPass () |
| FunctionPass * | createAlignmentFromAssumptionsPass () |
| FunctionPass * | createSCCPPass () |
| Pass * | createDeadInstEliminationPass () |
| Pass * | createRedundantDbgInstEliminationPass () |
| FunctionPass * | createDeadCodeEliminationPass () |
| FunctionPass * | createDeadStoreEliminationPass () |
| FunctionPass * | createCallSiteSplittingPass () |
| FunctionPass * | createAggressiveDCEPass () |
| FunctionPass * | createGuardWideningPass () |
| Pass * | createLoopGuardWideningPass () |
| FunctionPass * | createBitTrackingDCEPass () |
| FunctionPass * | createSROAPass () |
| Pass * | createInductiveRangeCheckEliminationPass () |
| Pass * | createIndVarSimplifyPass () |
| Pass * | createLICMPass () |
| Pass * | createLICMPass (unsigned LicmMssaOptCap, unsigned LicmMssaNoAccForPromotionCap) |
| Pass * | createLoopSinkPass () |
| Pass * | createLoopPredicationPass () |
| Pass * | createLoopInterchangePass () |
| Pass * | createLoopStrengthReducePass () |
| Pass * | createLoopUnswitchPass (bool OptimizeForSize=false, bool hasBranchDivergence=false) |
| Pass * | createLoopInstSimplifyPass () |
| Pass * | createLoopUnrollPass (int OptLevel=2, bool OnlyWhenForced=false, bool ForgetAllSCEV=false, int Threshold=-1, int Count=-1, int AllowPartial=-1, int Runtime=-1, int UpperBound=-1, int AllowPeeling=-1) |
| Pass * | createSimpleLoopUnrollPass (int OptLevel=2, bool OnlyWhenForced=false, bool ForgetAllSCEV=false) |
| Pass * | createLoopUnrollAndJamPass (int OptLevel=2) |
| Pass * | createLoopRerollPass () |
| Pass * | createLoopRotatePass (int MaxHeaderSize=-1) |
| Pass * | createLoopIdiomPass () |
| Pass * | createLoopVersioningLICMPass () |
| FunctionPass * | createDemoteRegisterToMemoryPass () |
| FunctionPass * | createReassociatePass () |
| FunctionPass * | createJumpThreadingPass (int Threshold=-1) |
| FunctionPass * | createCFGSimplificationPass (unsigned Threshold=1, bool ForwardSwitchCond=false, bool ConvertSwitch=false, bool KeepLoops=true, bool SinkCommon=false, std::function< bool(const Function &)> Ftor=nullptr) |
| FunctionPass * | createFlattenCFGPass () |
| Pass * | createStructurizeCFGPass (bool SkipUniformRegions=false) |
When SkipUniformRegions is true the structizer will not structurize regions that only contain uniform branches. More... | |
| FunctionPass * | createTailCallEliminationPass () |
| FunctionPass * | createEarlyCSEPass (bool UseMemorySSA=false) |
| FunctionPass * | createGVNHoistPass () |
| FunctionPass * | createGVNSinkPass () |
| FunctionPass * | createMergedLoadStoreMotionPass (bool SplitFooterBB=false) |
| createMergedLoadStoreMotionPass - The public interface to this file. More... | |
| FunctionPass * | createNewGVNPass () |
| FunctionPass * | createDivRemPairsPass () |
| FunctionPass * | createMemCpyOptPass () |
| The public interface to this file... More... | |
| Pass * | createLoopDeletionPass () |
| FunctionPass * | createConstantHoistingPass () |
| FunctionPass * | createSinkingPass () |
| Pass * | createLowerAtomicPass () |
| Pass * | createLowerGuardIntrinsicPass () |
| Pass * | createLowerMatrixIntrinsicsPass () |
| Pass * | createLowerWidenableConditionPass () |
| Pass * | createMergeICmpsLegacyPass () |
| Pass * | createCorrelatedValuePropagationPass () |
| FunctionPass * | createInferAddressSpacesPass (unsigned AddressSpace=~0u) |
| FunctionPass * | createLowerExpectIntrinsicPass () |
| FunctionPass * | createLowerConstantIntrinsicsPass () |
| FunctionPass * | createPartiallyInlineLibCallsPass () |
| FunctionPass * | createSeparateConstOffsetFromGEPPass (bool LowerGEP=false) |
| FunctionPass * | createSpeculativeExecutionPass () |
| FunctionPass * | createSpeculativeExecutionIfHasBranchDivergencePass () |
| FunctionPass * | createStraightLineStrengthReducePass () |
| FunctionPass * | createPlaceSafepointsPass () |
| ModulePass * | createRewriteStatepointsForGCLegacyPass () |
| FunctionPass * | createFloat2IntPass () |
| FunctionPass * | createNaryReassociatePass () |
| FunctionPass * | createLoopDistributePass () |
| FunctionPass * | createLoopFusePass () |
| FunctionPass * | createLoopLoadEliminationPass () |
| FunctionPass * | createLoopVersioningPass () |
| FunctionPass * | createLoopDataPrefetchPass () |
| ModulePass * | createNameAnonGlobalPass () |
| ===------------------------------------------------------------------—===// More... | |
| ModulePass * | createCanonicalizeAliasesPass () |
| FunctionPass * | createLibCallsShrinkWrapPass () |
| Pass * | createLoopSimplifyCFGPass () |
| ASanStackFrameLayout | ComputeASanStackFrameLayout (SmallVectorImpl< ASanStackVariableDescription > &Vars, size_t Granularity, size_t MinHeaderSize) |
| SmallString< 64 > | ComputeASanStackFrameDescription (const SmallVectorImpl< ASanStackVariableDescription > &Vars) |
| SmallVector< uint8_t, 64 > | GetShadowBytes (const SmallVectorImpl< ASanStackVariableDescription > &Vars, const ASanStackFrameLayout &Layout) |
| SmallVector< uint8_t, 64 > | GetShadowBytesAfterScope (const SmallVectorImpl< ASanStackVariableDescription > &Vars, const ASanStackFrameLayout &Layout) |
| void | DetatchDeadBlocks (ArrayRef< BasicBlock *> BBs, SmallVectorImpl< DominatorTree::UpdateType > *Updates, bool KeepOneInputPHIs=false) |
Replace contents of every block in BBs with single unreachable instruction. More... | |
| void | DeleteDeadBlock (BasicBlock *BB, DomTreeUpdater *DTU=nullptr, bool KeepOneInputPHIs=false) |
| Delete the specified block, which must have no predecessors. More... | |
| void | DeleteDeadBlocks (ArrayRef< BasicBlock *> BBs, DomTreeUpdater *DTU=nullptr, bool KeepOneInputPHIs=false) |
Delete the specified blocks from BB. More... | |
| bool | EliminateUnreachableBlocks (Function &F, DomTreeUpdater *DTU=nullptr, bool KeepOneInputPHIs=false) |
Delete all basic blocks from F that are not reachable from its entry node. More... | |
| void | FoldSingleEntryPHINodes (BasicBlock *BB, MemoryDependenceResults *MemDep=nullptr) |
| We know that BB has one predecessor. More... | |
| bool | DeleteDeadPHIs (BasicBlock *BB, const TargetLibraryInfo *TLI=nullptr) |
| Examine each PHI in the given block and delete it if it is dead. More... | |
| bool | MergeBlockIntoPredecessor (BasicBlock *BB, DomTreeUpdater *DTU=nullptr, LoopInfo *LI=nullptr, MemorySSAUpdater *MSSAU=nullptr, MemoryDependenceResults *MemDep=nullptr, bool PredecessorWithTwoSuccessors=false) |
| Attempts to merge a block into its predecessor, if possible. More... | |
| bool | RemoveRedundantDbgInstrs (BasicBlock *BB) |
| Try to remove redundant dbg.value instructions from given basic block. More... | |
| void | ReplaceInstWithValue (BasicBlock::InstListType &BIL, BasicBlock::iterator &BI, Value *V) |
| Replace all uses of an instruction (specified by BI) with a value, then remove and delete the original instruction. More... | |
| void | ReplaceInstWithInst (BasicBlock::InstListType &BIL, BasicBlock::iterator &BI, Instruction *I) |
| Replace the instruction specified by BI with the instruction specified by I. More... | |
| void | ReplaceInstWithInst (Instruction *From, Instruction *To) |
| Replace the instruction specified by From with the instruction specified by To. More... | |
| BasicBlock * | SplitCriticalEdge (Instruction *TI, unsigned SuccNum, const CriticalEdgeSplittingOptions &Options=CriticalEdgeSplittingOptions()) |
| If this edge is a critical edge, insert a new node to split the critical edge. More... | |
| BasicBlock * | SplitCriticalEdge (BasicBlock *BB, succ_iterator SI, const CriticalEdgeSplittingOptions &Options=CriticalEdgeSplittingOptions()) |
| bool | SplitCriticalEdge (BasicBlock *Succ, pred_iterator PI, const CriticalEdgeSplittingOptions &Options=CriticalEdgeSplittingOptions()) |
| If the edge from *PI to BB is not critical, return false. More... | |
| BasicBlock * | SplitCriticalEdge (BasicBlock *Src, BasicBlock *Dst, const CriticalEdgeSplittingOptions &Options=CriticalEdgeSplittingOptions()) |
| If an edge from Src to Dst is critical, split the edge and return true, otherwise return false. More... | |
| unsigned | SplitAllCriticalEdges (Function &F, const CriticalEdgeSplittingOptions &Options=CriticalEdgeSplittingOptions()) |
| Loop over all of the edges in the CFG, breaking critical edges as they are found. More... | |
| BasicBlock * | SplitEdge (BasicBlock *From, BasicBlock *To, DominatorTree *DT=nullptr, LoopInfo *LI=nullptr, MemorySSAUpdater *MSSAU=nullptr) |
| Split the edge connecting specified block. More... | |
| BasicBlock * | SplitBlock (BasicBlock *Old, Instruction *SplitPt, DominatorTree *DT=nullptr, LoopInfo *LI=nullptr, MemorySSAUpdater *MSSAU=nullptr, const Twine &BBName="") |
| Split the specified block at the specified instruction - everything before SplitPt stays in Old and everything starting with SplitPt moves to a new block. More... | |
| BasicBlock * | SplitBlockPredecessors (BasicBlock *BB, ArrayRef< BasicBlock *> Preds, const char *Suffix, DominatorTree *DT=nullptr, LoopInfo *LI=nullptr, MemorySSAUpdater *MSSAU=nullptr, bool PreserveLCSSA=false) |
| This method introduces at least one new basic block into the function and moves some of the predecessors of BB to be predecessors of the new block. More... | |
| void | SplitLandingPadPredecessors (BasicBlock *OrigBB, ArrayRef< BasicBlock *> Preds, const char *Suffix, const char *Suffix2, SmallVectorImpl< BasicBlock *> &NewBBs, DominatorTree *DT=nullptr, LoopInfo *LI=nullptr, MemorySSAUpdater *MSSAU=nullptr, bool PreserveLCSSA=false) |
| This method transforms the landing pad, OrigBB, by introducing two new basic blocks into the function. More... | |
| ReturnInst * | FoldReturnIntoUncondBranch (ReturnInst *RI, BasicBlock *BB, BasicBlock *Pred, DomTreeUpdater *DTU=nullptr) |
| This method duplicates the specified return instruction into a predecessor which ends in an unconditional branch. More... | |
| Instruction * | SplitBlockAndInsertIfThen (Value *Cond, Instruction *SplitBefore, bool Unreachable, MDNode *BranchWeights=nullptr, DominatorTree *DT=nullptr, LoopInfo *LI=nullptr, BasicBlock *ThenBlock=nullptr) |
| Split the containing block at the specified instruction - everything before SplitBefore stays in the old basic block, and the rest of the instructions in the BB are moved to a new block. More... | |
| void | SplitBlockAndInsertIfThenElse (Value *Cond, Instruction *SplitBefore, Instruction **ThenTerm, Instruction **ElseTerm, MDNode *BranchWeights=nullptr) |
| SplitBlockAndInsertIfThenElse is similar to SplitBlockAndInsertIfThen, but also creates the ElseBlock. More... | |
| Value * | GetIfCondition (BasicBlock *BB, BasicBlock *&IfTrue, BasicBlock *&IfFalse) |
| Check whether BB is the merge point of a if-region. More... | |
| bool | SplitIndirectBrCriticalEdges (Function &F, BranchProbabilityInfo *BPI=nullptr, BlockFrequencyInfo *BFI=nullptr) |
| bool | inferLibFuncAttributes (Function &F, const TargetLibraryInfo &TLI) |
| Analyze the name and prototype of the given function and set any applicable attributes. More... | |
| bool | inferLibFuncAttributes (Module *M, StringRef Name, const TargetLibraryInfo &TLI) |
| bool | hasFloatFn (const TargetLibraryInfo *TLI, Type *Ty, LibFunc DoubleFn, LibFunc FloatFn, LibFunc LongDoubleFn) |
| Check whether the overloaded floating point function corresponding to Ty is available. More... | |
| StringRef | getFloatFnName (const TargetLibraryInfo *TLI, Type *Ty, LibFunc DoubleFn, LibFunc FloatFn, LibFunc LongDoubleFn) |
| Get the name of the overloaded floating point function corresponding to Ty. More... | |
| Value * | castToCStr (Value *V, IRBuilder<> &B) |
| Return V if it is an i8*, otherwise cast it to i8*. More... | |
| Value * | emitStrLen (Value *Ptr, IRBuilder<> &B, const DataLayout &DL, const TargetLibraryInfo *TLI) |
| Emit a call to the strlen function to the builder, for the specified pointer. More... | |
| Value * | emitStrDup (Value *Ptr, IRBuilder<> &B, const TargetLibraryInfo *TLI) |
| Emit a call to the strdup function to the builder, for the specified pointer. More... | |
| Value * | emitStrNLen (Value *Ptr, Value *MaxLen, IRBuilder<> &B, const DataLayout &DL, const TargetLibraryInfo *TLI) |
| Emit a call to the strnlen function to the builder, for the specified pointer. More... | |
| Value * | emitStrChr (Value *Ptr, char C, IRBuilder<> &B, const TargetLibraryInfo *TLI) |
| Emit a call to the strchr function to the builder, for the specified pointer and character. More... | |
| Value * | emitStrNCmp (Value *Ptr1, Value *Ptr2, Value *Len, IRBuilder<> &B, const DataLayout &DL, const TargetLibraryInfo *TLI) |
| Emit a call to the strncmp function to the builder. More... | |
| Value * | emitStrCpy (Value *Dst, Value *Src, IRBuilder<> &B, const TargetLibraryInfo *TLI) |
| Emit a call to the strcpy function to the builder, for the specified pointer arguments. More... | |
| Value * | emitStpCpy (Value *Dst, Value *Src, IRBuilder<> &B, const TargetLibraryInfo *TLI) |
| Emit a call to the stpcpy function to the builder, for the specified pointer arguments. More... | |
| Value * | emitStrNCpy (Value *Dst, Value *Src, Value *Len, IRBuilder<> &B, const TargetLibraryInfo *TLI) |
| Emit a call to the strncpy function to the builder, for the specified pointer arguments and length. More... | |
| Value * | emitStpNCpy (Value *Dst, Value *Src, Value *Len, IRBuilder<> &B, const TargetLibraryInfo *TLI) |
| Emit a call to the stpncpy function to the builder, for the specified pointer arguments and length. More... | |
| Value * | emitMemCpyChk (Value *Dst, Value *Src, Value *Len, Value *ObjSize, IRBuilder<> &B, const DataLayout &DL, const TargetLibraryInfo *TLI) |
| Emit a call to the __memcpy_chk function to the builder. More... | |
| Value * | emitMemChr (Value *Ptr, Value *Val, Value *Len, IRBuilder<> &B, const DataLayout &DL, const TargetLibraryInfo *TLI) |
| Emit a call to the memchr function. More... | |
| Value * | emitMemCmp (Value *Ptr1, Value *Ptr2, Value *Len, IRBuilder<> &B, const DataLayout &DL, const TargetLibraryInfo *TLI) |
| Emit a call to the memcmp function. More... | |
| Value * | emitBCmp (Value *Ptr1, Value *Ptr2, Value *Len, IRBuilder<> &B, const DataLayout &DL, const TargetLibraryInfo *TLI) |
| Emit a call to the bcmp function. More... | |
| Value * | emitMemCCpy (Value *Ptr1, Value *Ptr2, Value *Val, Value *Len, IRBuilder<> &B, const TargetLibraryInfo *TLI) |
| Emit a call to the memccpy function. More... | |
| Value * | emitSNPrintf (Value *Dest, Value *Size, Value *Fmt, ArrayRef< Value *> Args, IRBuilder<> &B, const TargetLibraryInfo *TLI) |
| Emit a call to the snprintf function. More... | |
| Value * | emitSPrintf (Value *Dest, Value *Fmt, ArrayRef< Value *> VariadicArgs, IRBuilder<> &B, const TargetLibraryInfo *TLI) |
| Emit a call to the sprintf function. More... | |
| Value * | emitStrCat (Value *Dest, Value *Src, IRBuilder<> &B, const TargetLibraryInfo *TLI) |
| Emit a call to the strcat function. More... | |
| Value * | emitStrLCpy (Value *Dest, Value *Src, Value *Size, IRBuilder<> &B, const TargetLibraryInfo *TLI) |
| Emit a call to the strlcpy function. More... | |
| Value * | emitStrLCat (Value *Dest, Value *Src, Value *Size, IRBuilder<> &B, const TargetLibraryInfo *TLI) |
| Emit a call to the strlcat function. More... | |
| Value * | emitStrNCat (Value *Dest, Value *Src, Value *Size, IRBuilder<> &B, const TargetLibraryInfo *TLI) |
| Emit a call to the strncat function. More... | |
| Value * | emitVSNPrintf (Value *Dest, Value *Size, Value *Fmt, Value *VAList, IRBuilder<> &B, const TargetLibraryInfo *TLI) |
| Emit a call to the vsnprintf function. More... | |
| Value * | emitVSPrintf (Value *Dest, Value *Fmt, Value *VAList, IRBuilder<> &B, const TargetLibraryInfo *TLI) |
| Emit a call to the vsprintf function. More... | |
| Value * | emitUnaryFloatFnCall (Value *Op, StringRef Name, IRBuilder<> &B, const AttributeList &Attrs) |
| Emit a call to the unary function named 'Name' (e.g. More... | |
| Value * | emitUnaryFloatFnCall (Value *Op, const TargetLibraryInfo *TLI, LibFunc DoubleFn, LibFunc FloatFn, LibFunc LongDoubleFn, IRBuilder<> &B, const AttributeList &Attrs) |
| Emit a call to the unary function DoubleFn, FloatFn or LongDoubleFn, depending of the type of Op. More... | |
| Value * | emitBinaryFloatFnCall (Value *Op1, Value *Op2, StringRef Name, IRBuilder<> &B, const AttributeList &Attrs) |
| Emit a call to the binary function named 'Name' (e.g. More... | |
| Value * | emitBinaryFloatFnCall (Value *Op1, Value *Op2, const TargetLibraryInfo *TLI, LibFunc DoubleFn, LibFunc FloatFn, LibFunc LongDoubleFn, IRBuilder<> &B, const AttributeList &Attrs) |
| Emit a call to the binary function DoubleFn, FloatFn or LongDoubleFn, depending of the type of Op1. More... | |
| Value * | emitPutChar (Value *Char, IRBuilder<> &B, const TargetLibraryInfo *TLI) |
| Emit a call to the putchar function. This assumes that Char is an integer. More... | |
| Value * | emitPutS (Value *Str, IRBuilder<> &B, const TargetLibraryInfo *TLI) |
| Emit a call to the puts function. This assumes that Str is some pointer. More... | |
| Value * | emitFPutC (Value *Char, Value *File, IRBuilder<> &B, const TargetLibraryInfo *TLI) |
| Emit a call to the fputc function. More... | |
| Value * | emitFPutCUnlocked (Value *Char, Value *File, IRBuilder<> &B, const TargetLibraryInfo *TLI) |
| Emit a call to the fputc_unlocked function. More... | |
| Value * | emitFPutS (Value *Str, Value *File, IRBuilder<> &B, const TargetLibraryInfo *TLI) |
| Emit a call to the fputs function. More... | |
| Value * | emitFPutSUnlocked (Value *Str, Value *File, IRBuilder<> &B, const TargetLibraryInfo *TLI) |
| Emit a call to the fputs_unlocked function. More... | |
| Value * | emitFWrite (Value *Ptr, Value *Size, Value *File, IRBuilder<> &B, const DataLayout &DL, const TargetLibraryInfo *TLI) |
| Emit a call to the fwrite function. More... | |
| Value * | emitMalloc (Value *Num, IRBuilder<> &B, const DataLayout &DL, const TargetLibraryInfo *TLI) |
| Emit a call to the malloc function. More... | |
| Value * | emitCalloc (Value *Num, Value *Size, const AttributeList &Attrs, IRBuilder<> &B, const TargetLibraryInfo &TLI) |
| Emit a call to the calloc function. More... | |
| Value * | emitFWriteUnlocked (Value *Ptr, Value *Size, Value *N, Value *File, IRBuilder<> &B, const DataLayout &DL, const TargetLibraryInfo *TLI) |
| Emit a call to the fwrite_unlocked function. More... | |
| Value * | emitFGetCUnlocked (Value *File, IRBuilder<> &B, const TargetLibraryInfo *TLI) |
| Emit a call to the fgetc_unlocked function. File is a pointer to FILE. More... | |
| Value * | emitFGetSUnlocked (Value *Str, Value *Size, Value *File, IRBuilder<> &B, const TargetLibraryInfo *TLI) |
| Emit a call to the fgets_unlocked function. More... | |
| Value * | emitFReadUnlocked (Value *Ptr, Value *Size, Value *N, Value *File, IRBuilder<> &B, const DataLayout &DL, const TargetLibraryInfo *TLI) |
| Emit a call to the fread_unlocked function. More... | |
| bool | bypassSlowDivision (BasicBlock *BB, const DenseMap< unsigned int, unsigned int > &BypassWidth) |
| This optimization identifies DIV instructions in a BB that can be profitably bypassed and carried out with a shorter, faster divide. More... | |
| bool | isLegalToPromote (CallSite CS, Function *Callee, const char **FailureReason=nullptr) |
Return true if the given indirect call site can be made to call Callee. More... | |
| Instruction * | promoteCall (CallSite CS, Function *Callee, CastInst **RetBitCast=nullptr) |
Promote the given indirect call site to unconditionally call Callee. More... | |
| Instruction * | promoteCallWithIfThenElse (CallSite CS, Function *Callee, MDNode *BranchWeights=nullptr) |
Promote the given indirect call site to conditionally call Callee. More... | |
| std::unique_ptr< Module > | CloneModule (const Module &M) |
| Return an exact copy of the specified module. More... | |
| std::unique_ptr< Module > | CloneModule (const Module &M, ValueToValueMapTy &VMap) |
| std::unique_ptr< Module > | CloneModule (const Module &M, ValueToValueMapTy &VMap, function_ref< bool(const GlobalValue *)> ShouldCloneDefinition) |
| Return a copy of the specified module. More... | |
| BasicBlock * | CloneBasicBlock (const BasicBlock *BB, ValueToValueMapTy &VMap, const Twine &NameSuffix="", Function *F=nullptr, ClonedCodeInfo *CodeInfo=nullptr, DebugInfoFinder *DIFinder=nullptr) |
| Return a copy of the specified basic block, but without embedding the block into a particular function. More... | |
| Function * | CloneFunction (Function *F, ValueToValueMapTy &VMap, ClonedCodeInfo *CodeInfo=nullptr) |
| Return a copy of the specified function and add it to that function's module. More... | |
| void | CloneFunctionInto (Function *NewFunc, const Function *OldFunc, ValueToValueMapTy &VMap, bool ModuleLevelChanges, SmallVectorImpl< ReturnInst *> &Returns, const char *NameSuffix="", ClonedCodeInfo *CodeInfo=nullptr, ValueMapTypeRemapper *TypeMapper=nullptr, ValueMaterializer *Materializer=nullptr) |
| Clone OldFunc into NewFunc, transforming the old arguments into references to VMap values. More... | |
| void | CloneAndPruneIntoFromInst (Function *NewFunc, const Function *OldFunc, const Instruction *StartingInst, ValueToValueMapTy &VMap, bool ModuleLevelChanges, SmallVectorImpl< ReturnInst *> &Returns, const char *NameSuffix="", ClonedCodeInfo *CodeInfo=nullptr) |
| This works like CloneAndPruneFunctionInto, except that it does not clone the entire function. More... | |
| void | CloneAndPruneFunctionInto (Function *NewFunc, const Function *OldFunc, ValueToValueMapTy &VMap, bool ModuleLevelChanges, SmallVectorImpl< ReturnInst *> &Returns, const char *NameSuffix="", ClonedCodeInfo *CodeInfo=nullptr, Instruction *TheCall=nullptr) |
| This works exactly like CloneFunctionInto, except that it does some simple constant prop and DCE on the fly. More... | |
| InlineResult | InlineFunction (CallBase *CB, InlineFunctionInfo &IFI, AAResults *CalleeAAR=nullptr, bool InsertLifetime=true) |
| This function inlines the called function into the basic block of the caller. More... | |
| InlineResult | InlineFunction (CallSite CS, InlineFunctionInfo &IFI, AAResults *CalleeAAR=nullptr, bool InsertLifetime=true, Function *ForwardVarArgsTo=nullptr) |
| This function inlines the called function into the basic block of the caller. More... | |
| Loop * | cloneLoopWithPreheader (BasicBlock *Before, BasicBlock *LoopDomBB, Loop *OrigLoop, ValueToValueMapTy &VMap, const Twine &NameSuffix, LoopInfo *LI, DominatorTree *DT, SmallVectorImpl< BasicBlock *> &Blocks) |
Clones a loop OrigLoop. More... | |
| void | remapInstructionsInBlocks (const SmallVectorImpl< BasicBlock *> &Blocks, ValueToValueMapTy &VMap) |
Remaps instructions in Blocks using the mapping in VMap. More... | |
| BasicBlock * | DuplicateInstructionsInSplitBetween (BasicBlock *BB, BasicBlock *PredBB, Instruction *StopAt, ValueToValueMapTy &ValueMapping, DomTreeUpdater &DTU) |
| Split edge between BB and PredBB and duplicate all non-Phi instructions from BB between its beginning and the StopAt instruction into the split block. More... | |
| void | updateProfileCallee (Function *Callee, int64_t entryDelta, const ValueMap< const Value *, WeakTrackingVH > *VMap=nullptr) |
| Updates profile information by adjusting the entry count by adding entryDelta then scaling callsite information by the new count divided by the old count. More... | |
| bool | isControlFlowEquivalent (const Instruction &I0, const Instruction &I1, const DominatorTree &DT, const PostDominatorTree &PDT) |
Return true if I0 and I1 are control flow equivalent. More... | |
| bool | isControlFlowEquivalent (const BasicBlock &BB0, const BasicBlock &BB1, const DominatorTree &DT, const PostDominatorTree &PDT) |
Return true if BB0 and BB1 are control flow equivalent. More... | |
| bool | isSafeToMoveBefore (Instruction &I, Instruction &InsertPoint, const DominatorTree &DT, const PostDominatorTree &PDT, DependenceInfo &DI) |
Return true if I can be safely moved before InsertPoint. More... | |
| void | moveInstsBottomUp (BasicBlock &FromBB, BasicBlock &ToBB, const DominatorTree &DT, const PostDominatorTree &PDT, DependenceInfo &DI) |
Move instructions from FromBB bottom up to the beginning of ToBB when proven safe. More... | |
| bool | optimizeGlobalCtorsList (Module &M, function_ref< bool(Function *)> ShouldRemove) |
| Call "ShouldRemove" for every entry in M's global_ctor list and remove the entries for which it returns true. More... | |
| bool | renameModuleForThinLTO (Module &M, const ModuleSummaryIndex &Index, SetVector< GlobalValue *> *GlobalsToImport=nullptr) |
| Perform in-place global value handling on the given Module for exported local functions renamed and promoted for ThinLTO. More... | |
| bool | isSafeToDestroyConstant (const Constant *C) |
| It is safe to destroy a constant iff it is only used by constants itself. More... | |
| void | makeGuardControlFlowExplicit (Function *DeoptIntrinsic, CallInst *Guard, bool UseWC) |
Splits control flow at point of Guard, replacing it with explicit branch by the condition of guard's first argument. More... | |
| void | widenWidenableBranch (BranchInst *WidenableBR, Value *NewCond) |
| Given a branch we know is widenable (defined per Analysis/GuardUtils.h), widen it such that condition 'NewCond' is also known to hold on the taken path. More... | |
| void | setWidenableBranchCond (BranchInst *WidenableBR, Value *Cond) |
| Given a branch we know is widenable (defined per Analysis/GuardUtils.h), set it's condition such that (only) 'Cond' is known to hold on the taken path and that the branch remains widenable after transform. More... | |
| bool | expandRemainder (BinaryOperator *Rem) |
| Generate code to calculate the remainder of two integers, replacing Rem with the generated code. More... | |
| bool | expandDivision (BinaryOperator *Div) |
| Generate code to divide two integers, replacing Div with the generated code. More... | |
| bool | expandRemainderUpTo32Bits (BinaryOperator *Rem) |
| Generate code to calculate the remainder of two integers, replacing Rem with the generated code. More... | |
| bool | expandRemainderUpTo64Bits (BinaryOperator *Rem) |
| Generate code to calculate the remainder of two integers, replacing Rem with the generated code. More... | |
| bool | expandDivisionUpTo32Bits (BinaryOperator *Div) |
| Generate code to divide two integers, replacing Div with the generated code. More... | |
| bool | expandDivisionUpTo64Bits (BinaryOperator *Div) |
| Generate code to divide two integers, replacing Div with the generated code. More... | |
| bool | ConstantFoldTerminator (BasicBlock *BB, bool DeleteDeadConditions=false, const TargetLibraryInfo *TLI=nullptr, DomTreeUpdater *DTU=nullptr) |
| If a terminator instruction is predicated on a constant value, convert it into an unconditional branch to the constant destination. More... | |
| bool | isInstructionTriviallyDead (Instruction *I, const TargetLibraryInfo *TLI=nullptr) |
| Return true if the result produced by the instruction is not used, and the instruction has no side effects. More... | |
| bool | wouldInstructionBeTriviallyDead (Instruction *I, const TargetLibraryInfo *TLI=nullptr) |
| Return true if the result produced by the instruction would have no side effects if it was not used. More... | |
| bool | RecursivelyDeleteTriviallyDeadInstructions (Value *V, const TargetLibraryInfo *TLI=nullptr, MemorySSAUpdater *MSSAU=nullptr) |
| If the specified value is a trivially dead instruction, delete it. More... | |
| void | RecursivelyDeleteTriviallyDeadInstructions (SmallVectorImpl< Instruction *> &DeadInsts, const TargetLibraryInfo *TLI=nullptr, MemorySSAUpdater *MSSAU=nullptr) |
Delete all of the instructions in DeadInsts, and all other instructions that deleting these in turn causes to be trivially dead. More... | |
| bool | RecursivelyDeleteDeadPHINode (PHINode *PN, const TargetLibraryInfo *TLI=nullptr) |
| If the specified value is an effectively dead PHI node, due to being a def-use chain of single-use nodes that either forms a cycle or is terminated by a trivially dead instruction, delete it. More... | |
| bool | SimplifyInstructionsInBlock (BasicBlock *BB, const TargetLibraryInfo *TLI=nullptr) |
| Scan the specified basic block and try to simplify any instructions in it and recursively delete dead instructions. More... | |
| bool | replaceDbgUsesWithUndef (Instruction *I) |
| Replace all the uses of an SSA value in .dbg intrinsics with undef. More... | |
| void | RemovePredecessorAndSimplify (BasicBlock *BB, BasicBlock *Pred, DomTreeUpdater *DTU=nullptr) |
| Like BasicBlock::removePredecessor, this method is called when we're about to delete Pred as a predecessor of BB. More... | |
| void | MergeBasicBlockIntoOnlyPred (BasicBlock *BB, DomTreeUpdater *DTU=nullptr) |
| BB is a block with one predecessor and its predecessor is known to have one successor (BB!). More... | |
| bool | TryToSimplifyUncondBranchFromEmptyBlock (BasicBlock *BB, DomTreeUpdater *DTU=nullptr) |
| BB is known to contain an unconditional branch, and contains no instructions other than PHI nodes, potential debug intrinsics and the branch. More... | |
| bool | EliminateDuplicatePHINodes (BasicBlock *BB) |
| Check for and eliminate duplicate PHI nodes in this block. More... | |
| bool | simplifyCFG (BasicBlock *BB, const TargetTransformInfo &TTI, const SimplifyCFGOptions &Options={}, SmallPtrSetImpl< BasicBlock *> *LoopHeaders=nullptr) |
| This function is used to do simplification of a CFG. More... | |
| bool | FlattenCFG (BasicBlock *BB, AliasAnalysis *AA=nullptr) |
| This function is used to flatten a CFG. More... | |
| bool | FoldBranchToCommonDest (BranchInst *BI, MemorySSAUpdater *MSSAU=nullptr, unsigned BonusInstThreshold=1) |
| If this basic block is ONLY a setcc and a branch, and if a predecessor branches to us and one of our successors, fold the setcc into the predecessor and use logical operations to pick the right destination. More... | |
| AllocaInst * | DemoteRegToStack (Instruction &X, bool VolatileLoads=false, Instruction *AllocaPoint=nullptr) |
| This function takes a virtual register computed by an Instruction and replaces it with a slot in the stack frame, allocated via alloca. More... | |
| AllocaInst * | DemotePHIToStack (PHINode *P, Instruction *AllocaPoint=nullptr) |
| This function takes a virtual register computed by a phi node and replaces it with a slot in the stack frame, allocated via alloca. More... | |
| unsigned | getOrEnforceKnownAlignment (Value *V, unsigned PrefAlign, const DataLayout &DL, const Instruction *CxtI=nullptr, AssumptionCache *AC=nullptr, const DominatorTree *DT=nullptr) |
Try to ensure that the alignment of V is at least PrefAlign bytes. More... | |
| unsigned | getKnownAlignment (Value *V, const DataLayout &DL, const Instruction *CxtI=nullptr, AssumptionCache *AC=nullptr, const DominatorTree *DT=nullptr) |
| Try to infer an alignment for the specified pointer. More... | |
| CallInst * | createCallMatchingInvoke (InvokeInst *II) |
Create a call that matches the invoke II in terms of arguments, attributes, debug information, etc. More... | |
| void | changeToCall (InvokeInst *II, DomTreeUpdater *DTU=nullptr) |
| This function converts the specified invoek into a normall call. More... | |
| void | ConvertDebugDeclareToDebugValue (DbgVariableIntrinsic *DII, StoreInst *SI, DIBuilder &Builder) |
| ===---------------------------------------------------------------——===// Dbg Intrinsic utilities More... | |
| void | ConvertDebugDeclareToDebugValue (DbgVariableIntrinsic *DII, LoadInst *LI, DIBuilder &Builder) |
| Inserts a llvm.dbg.value intrinsic before a load of an alloca'd value that has an associated llvm.dbg.declare or llvm.dbg.addr intrinsic. More... | |
| void | ConvertDebugDeclareToDebugValue (DbgVariableIntrinsic *DII, PHINode *LI, DIBuilder &Builder) |
| Inserts a llvm.dbg.value intrinsic after a phi that has an associated llvm.dbg.declare or llvm.dbg.addr intrinsic. More... | |
| bool | LowerDbgDeclare (Function &F) |
| Lowers llvm.dbg.declare intrinsics into appropriate set of llvm.dbg.value intrinsics. More... | |
| void | insertDebugValuesForPHIs (BasicBlock *BB, SmallVectorImpl< PHINode *> &InsertedPHIs) |
| Propagate dbg.value intrinsics through the newly inserted PHIs. More... | |
| TinyPtrVector< DbgVariableIntrinsic * > | FindDbgAddrUses (Value *V) |
| Finds all intrinsics declaring local variables as living in the memory that 'V' points to. More... | |
| void | findDbgValues (SmallVectorImpl< DbgValueInst *> &DbgValues, Value *V) |
| Finds the llvm.dbg.value intrinsics describing a value. More... | |
| void | findDbgUsers (SmallVectorImpl< DbgVariableIntrinsic *> &DbgInsts, Value *V) |
| Finds the debug info intrinsics describing a value. More... | |
| bool | replaceDbgDeclare (Value *Address, Value *NewAddress, Instruction *InsertBefore, DIBuilder &Builder, uint8_t DIExprFlags, int Offset) |
| Replaces llvm.dbg.declare instruction when the address it describes is replaced with a new value. More... | |
| bool | replaceDbgDeclareForAlloca (AllocaInst *AI, Value *NewAllocaAddress, DIBuilder &Builder, uint8_t DIExprFlags, int Offset) |
| Replaces llvm.dbg.declare instruction when the alloca it describes is replaced with a new value. More... | |
| void | replaceDbgValueForAlloca (AllocaInst *AI, Value *NewAllocaAddress, DIBuilder &Builder, int Offset=0) |
| Replaces multiple llvm.dbg.value instructions when the alloca it describes is replaced with a new value. More... | |
| AllocaInst * | findAllocaForValue (Value *V, DenseMap< Value *, AllocaInst *> &AllocaForValue) |
| Finds alloca where the value comes from. More... | |
| bool | salvageDebugInfo (Instruction &I) |
Assuming the instruction I is going to be deleted, attempt to salvage debug users of I by writing the effect of I in a DIExpression. More... | |
| void | salvageDebugInfoOrMarkUndef (Instruction &I) |
Salvage all debug users of the instruction I or mark it as undef if it cannot be salvaged. More... | |
| bool | salvageDebugInfoForDbgValues (Instruction &I, ArrayRef< DbgVariableIntrinsic *> Insns) |
Implementation of salvageDebugInfo, applying only to instructions in Insns, rather than all debug users of I. More... | |
| DIExpression * | salvageDebugInfoImpl (Instruction &I, DIExpression *DIExpr, bool StackVal) |
Given an instruction I and DIExpression DIExpr operating on it, write the effects of I into the returned DIExpression, or return nullptr if it cannot be salvaged. More... | |
| bool | replaceAllDbgUsesWith (Instruction &From, Value &To, Instruction &DomPoint, DominatorTree &DT) |
Point debug users of From to To or salvage them. More... | |
| unsigned | removeAllNonTerminatorAndEHPadInstructions (BasicBlock *BB) |
| Remove all instructions from a basic block other than it's terminator and any present EH pad instructions. More... | |
| unsigned | changeToUnreachable (Instruction *I, bool UseLLVMTrap, bool PreserveLCSSA=false, DomTreeUpdater *DTU=nullptr, MemorySSAUpdater *MSSAU=nullptr) |
| Insert an unreachable instruction before the specified instruction, making it and the rest of the code in the block dead. More... | |
| BasicBlock * | changeToInvokeAndSplitBasicBlock (CallInst *CI, BasicBlock *UnwindEdge) |
| Convert the CallInst to InvokeInst with the specified unwind edge basic block. More... | |
| void | removeUnwindEdge (BasicBlock *BB, DomTreeUpdater *DTU=nullptr) |
| Replace 'BB's terminator with one that does not have an unwind successor block. More... | |
| bool | removeUnreachableBlocks (Function &F, DomTreeUpdater *DTU=nullptr, MemorySSAUpdater *MSSAU=nullptr) |
| Remove all blocks that can not be reached from the function's entry. More... | |
| void | combineMetadata (Instruction *K, const Instruction *J, ArrayRef< unsigned > KnownIDs, bool DoesKMove) |
| Combine the metadata of two instructions so that K can replace J. More... | |
| void | combineMetadataForCSE (Instruction *K, const Instruction *J, bool DoesKMove) |
| Combine the metadata of two instructions so that K can replace J. More... | |
| void | copyMetadataForLoad (LoadInst &Dest, const LoadInst &Source) |
| Copy the metadata from the source instruction to the destination (the replacement for the source instruction). More... | |
| void | patchReplacementInstruction (Instruction *I, Value *Repl) |
| Patch the replacement so that it is not more restrictive than the value being replaced. More... | |
| unsigned | replaceNonLocalUsesWith (Instruction *From, Value *To) |
| unsigned | replaceDominatedUsesWith (Value *From, Value *To, DominatorTree &DT, const BasicBlockEdge &Edge) |
| Replace each use of 'From' with 'To' if that use is dominated by the given edge. More... | |
| unsigned | replaceDominatedUsesWith (Value *From, Value *To, DominatorTree &DT, const BasicBlock *BB) |
| Replace each use of 'From' with 'To' if that use is dominated by the end of the given BasicBlock. More... | |
| bool | callsGCLeafFunction (const CallBase *Call, const TargetLibraryInfo &TLI) |
| Return true if this call calls a gc leaf function. More... | |
| void | copyNonnullMetadata (const LoadInst &OldLI, MDNode *N, LoadInst &NewLI) |
| Copy a nonnull metadata node to a new load instruction. More... | |
| void | copyRangeMetadata (const DataLayout &DL, const LoadInst &OldLI, MDNode *N, LoadInst &NewLI) |
| Copy a range metadata node to a new load instruction. More... | |
| void | dropDebugUsers (Instruction &I) |
| Remove the debug intrinsic instructions for the given instruction. More... | |
| void | hoistAllInstructionsInto (BasicBlock *DomBlock, Instruction *InsertPt, BasicBlock *BB) |
Hoist all of the instructions in the IfBlock to the dominant block DomBlock, by moving its instructions to the insertion point InsertPt. More... | |
| bool | recognizeBSwapOrBitReverseIdiom (Instruction *I, bool MatchBSwaps, bool MatchBitReversals, SmallVectorImpl< Instruction *> &InsertedInsts) |
| Try to match a bswap or bitreverse idiom. More... | |
| void | maybeMarkSanitizerLibraryCallNoBuiltin (CallInst *CI, const TargetLibraryInfo *TLI) |
| Given a CallInst, check if it calls a string function known to CodeGen, and mark it with NoBuiltin if so. More... | |
| bool | canReplaceOperandWithVariable (const Instruction *I, unsigned OpIdx) |
| Given an instruction, is it legal to set operand OpIdx to a non-constant value? More... | |
| bool | LoopRotation (Loop *L, LoopInfo *LI, const TargetTransformInfo *TTI, AssumptionCache *AC, DominatorTree *DT, ScalarEvolution *SE, MemorySSAUpdater *MSSAU, const SimplifyQuery &SQ, bool RotationOnly, unsigned Threshold, bool IsUtilMode) |
| Convert a loop into a loop with bottom test. More... | |
| bool | simplifyLoop (Loop *L, DominatorTree *DT, LoopInfo *LI, ScalarEvolution *SE, AssumptionCache *AC, MemorySSAUpdater *MSSAU, bool PreserveLCSSA) |
| Simplify each loop in a loop nest recursively. More... | |
| BasicBlock * | InsertPreheaderForLoop (Loop *L, DominatorTree *DT, LoopInfo *LI, MemorySSAUpdater *MSSAU, bool PreserveLCSSA) |
| InsertPreheaderForLoop - Once we discover that a loop doesn't have a preheader, this method is called to insert one. More... | |
| bool | formDedicatedExitBlocks (Loop *L, DominatorTree *DT, LoopInfo *LI, MemorySSAUpdater *MSSAU, bool PreserveLCSSA) |
| Ensure that all exit blocks of the loop are dedicated exits. More... | |
| bool | formLCSSAForInstructions (SmallVectorImpl< Instruction *> &Worklist, DominatorTree &DT, LoopInfo &LI, ScalarEvolution *SE) |
| Ensures LCSSA form for every instruction from the Worklist in the scope of innermost containing loop. More... | |
| bool | formLCSSA (Loop &L, DominatorTree &DT, LoopInfo *LI, ScalarEvolution *SE) |
| Put loop into LCSSA form. More... | |
| bool | formLCSSARecursively (Loop &L, DominatorTree &DT, LoopInfo *LI, ScalarEvolution *SE) |
| Put a loop nest into LCSSA form. More... | |
| bool | sinkRegion (DomTreeNode *, AliasAnalysis *, LoopInfo *, DominatorTree *, TargetLibraryInfo *, TargetTransformInfo *, Loop *, AliasSetTracker *, MemorySSAUpdater *, ICFLoopSafetyInfo *, SinkAndHoistLICMFlags &, OptimizationRemarkEmitter *) |
| Walk the specified region of the CFG (defined by all blocks dominated by the specified block, and that are in the current loop) in reverse depth first order w.r.t the DominatorTree. More... | |
| bool | hoistRegion (DomTreeNode *, AliasAnalysis *, LoopInfo *, DominatorTree *, TargetLibraryInfo *, Loop *, AliasSetTracker *, MemorySSAUpdater *, ScalarEvolution *, ICFLoopSafetyInfo *, SinkAndHoistLICMFlags &, OptimizationRemarkEmitter *) |
| Walk the specified region of the CFG (defined by all blocks dominated by the specified block, and that are in the current loop) in depth first order w.r.t the DominatorTree. More... | |
| void | deleteDeadLoop (Loop *L, DominatorTree *DT, ScalarEvolution *SE, LoopInfo *LI) |
| This function deletes dead loops. More... | |
| bool | promoteLoopAccessesToScalars (const SmallSetVector< Value *, 8 > &, SmallVectorImpl< BasicBlock *> &, SmallVectorImpl< Instruction *> &, SmallVectorImpl< MemoryAccess *> &, PredIteratorCache &, LoopInfo *, DominatorTree *, const TargetLibraryInfo *, Loop *, AliasSetTracker *, MemorySSAUpdater *, ICFLoopSafetyInfo *, OptimizationRemarkEmitter *) |
| Try to promote memory values to scalars by sinking stores out of the loop and moving loads to before the loop. More... | |
| SmallVector< DomTreeNode *, 16 > | collectChildrenInLoop (DomTreeNode *N, const Loop *CurLoop) |
| Does a BFS from a given node to all of its children inside a given loop. More... | |
| SmallVector< Instruction *, 8 > | findDefsUsedOutsideOfLoop (Loop *L) |
| Returns the instructions that use values defined in the loop. More... | |
| Optional< const MDOperand * > | findStringMetadataForLoop (const Loop *TheLoop, StringRef Name) |
| Find string metadata for loop. More... | |
| llvm::Optional< int > | getOptionalIntLoopAttribute (Loop *TheLoop, StringRef Name) |
| Find named metadata for a loop with an integer value. More... | |
| Optional< MDNode * > | makeFollowupLoopID (MDNode *OrigLoopID, ArrayRef< StringRef > FollowupAttrs, const char *InheritOptionsAttrsPrefix="", bool AlwaysNew=false) |
| Create a new loop identifier for a loop created from a loop transformation. More... | |
| bool | hasDisableAllTransformsHint (const Loop *L) |
| Look for the loop attribute that disables all transformation heuristic. More... | |
| bool | hasDisableLICMTransformsHint (const Loop *L) |
| Look for the loop attribute that disables the LICM transformation heuristics. More... | |
| void | addStringMetadataToLoop (Loop *TheLoop, const char *MDString, unsigned V=0) |
| Set input string into loop metadata by keeping other values intact. More... | |
| Optional< unsigned > | getLoopEstimatedTripCount (Loop *L) |
| Get a loop's estimated trip count based on branch weight metadata. More... | |
| bool | hasIterationCountInvariantInParent (Loop *L, ScalarEvolution &SE) |
| Check inner loop (L) backedge count is known to be invariant on all iterations of its outer loop. More... | |
| void | getLoopAnalysisUsage (AnalysisUsage &AU) |
Helper to consistently add the set of standard passes to a loop pass's AnalysisUsage. More... | |
| bool | canSinkOrHoistInst (Instruction &I, AAResults *AA, DominatorTree *DT, Loop *CurLoop, AliasSetTracker *CurAST, MemorySSAUpdater *MSSAU, bool TargetExecutesOncePerLoop, SinkAndHoistLICMFlags *LICMFlags=nullptr, OptimizationRemarkEmitter *ORE=nullptr) |
| Returns true if is legal to hoist or sink this instruction disregarding the possible introduction of faults. More... | |
| Value * | createMinMaxOp (IRBuilder<> &Builder, RecurrenceDescriptor::MinMaxRecurrenceKind RK, Value *Left, Value *Right) |
| Returns a Min/Max operation corresponding to MinMaxRecurrenceKind. More... | |
| Value * | getOrderedReduction (IRBuilder<> &Builder, Value *Acc, Value *Src, unsigned Op, RecurrenceDescriptor::MinMaxRecurrenceKind MinMaxKind=RecurrenceDescriptor::MRK_Invalid, ArrayRef< Value *> RedOps=None) |
| Generates an ordered vector reduction using extracts to reduce the value. More... | |
| Value * | getShuffleReduction (IRBuilder<> &Builder, Value *Src, unsigned Op, RecurrenceDescriptor::MinMaxRecurrenceKind MinMaxKind=RecurrenceDescriptor::MRK_Invalid, ArrayRef< Value *> RedOps=None) |
| Generates a vector reduction using shufflevectors to reduce the value. More... | |
| Value * | createSimpleTargetReduction (IRBuilder<> &B, const TargetTransformInfo *TTI, unsigned Opcode, Value *Src, TargetTransformInfo::ReductionFlags Flags=TargetTransformInfo::ReductionFlags(), ArrayRef< Value *> RedOps=None) |
| Create a target reduction of the given vector. More... | |
| Value * | createTargetReduction (IRBuilder<> &B, const TargetTransformInfo *TTI, RecurrenceDescriptor &Desc, Value *Src, bool NoNaN=false) |
Create a generic target reduction using a recurrence descriptor Desc The target is queried to determine if intrinsics or shuffle sequences are required to implement the reduction. More... | |
| void | propagateIRFlags (Value *I, ArrayRef< Value *> VL, Value *OpValue=nullptr) |
| Get the intersection (logical and) of all of the potential IR flags of each scalar operation (VL) that will be converted into a vector (I). More... | |
| bool | isKnownNegativeInLoop (const SCEV *S, const Loop *L, ScalarEvolution &SE) |
Returns true if we can prove that S is defined and always negative in loop L. More... | |
| bool | isKnownNonNegativeInLoop (const SCEV *S, const Loop *L, ScalarEvolution &SE) |
Returns true if we can prove that S is defined and always non-negative in loop L. More... | |
| bool | cannotBeMaxInLoop (const SCEV *S, const Loop *L, ScalarEvolution &SE, bool Signed) |
Returns true if S is defined and never is equal to signed/unsigned max. More... | |
| bool | cannotBeMinInLoop (const SCEV *S, const Loop *L, ScalarEvolution &SE, bool Signed) |
Returns true if S is defined and never is equal to signed/unsigned min. More... | |
| void | createMemCpyLoopUnknownSize (Instruction *InsertBefore, Value *SrcAddr, Value *DstAddr, Value *CopyLen, unsigned SrcAlign, unsigned DestAlign, bool SrcIsVolatile, bool DstIsVolatile, const TargetTransformInfo &TTI) |
| Emit a loop implementing the semantics of llvm.memcpy where the size is not a compile-time constant. More... | |
| void | createMemCpyLoopKnownSize (Instruction *InsertBefore, Value *SrcAddr, Value *DstAddr, ConstantInt *CopyLen, unsigned SrcAlign, unsigned DestAlign, bool SrcIsVolatile, bool DstIsVolatile, const TargetTransformInfo &TTI) |
| Emit a loop implementing the semantics of an llvm.memcpy whose size is a compile time constant. More... | |
| void | expandMemCpyAsLoop (MemCpyInst *MemCpy, const TargetTransformInfo &TTI) |
Expand MemCpy as a loop. MemCpy is not deleted. More... | |
| void | expandMemMoveAsLoop (MemMoveInst *MemMove) |
Expand MemMove as a loop. MemMove is not deleted. More... | |
| void | expandMemSetAsLoop (MemSetInst *MemSet) |
Expand MemSet as a loop. MemSet is not deleted. More... | |
| void | appendToGlobalCtors (Module &M, Function *F, int Priority, Constant *Data=nullptr) |
| Append F to the list of global ctors of module M with the given Priority. More... | |
| void | appendToGlobalDtors (Module &M, Function *F, int Priority, Constant *Data=nullptr) |
| Same as appendToGlobalCtors(), but for global dtors. More... | |
| FunctionCallee | declareSanitizerInitFunction (Module &M, StringRef InitName, ArrayRef< Type *> InitArgTypes) |
| std::pair< Function *, FunctionCallee > | createSanitizerCtorAndInitFunctions (Module &M, StringRef CtorName, StringRef InitName, ArrayRef< Type *> InitArgTypes, ArrayRef< Value *> InitArgs, StringRef VersionCheckName=StringRef()) |
| Creates sanitizer constructor function, and calls sanitizer's init function from it. More... | |
| std::pair< Function *, FunctionCallee > | getOrCreateSanitizerCtorAndInitFunctions (Module &M, StringRef CtorName, StringRef InitName, ArrayRef< Type *> InitArgTypes, ArrayRef< Value *> InitArgs, function_ref< void(Function *, FunctionCallee)> FunctionsCreatedCallback, StringRef VersionCheckName=StringRef()) |
| Creates sanitizer constructor function lazily. More... | |
| Function * | getOrCreateInitFunction (Module &M, StringRef Name) |
| bool | nameUnamedGlobals (Module &M) |
| Rename all the anon globals in the module using a hash computed from the list of public globals in the module. More... | |
| void | appendToUsed (Module &M, ArrayRef< GlobalValue *> Values) |
| Adds global values to the llvm.used list. More... | |
| void | appendToCompilerUsed (Module &M, ArrayRef< GlobalValue *> Values) |
| Adds global values to the llvm.compiler.used list. More... | |
| void | filterDeadComdatFunctions (Module &M, SmallVectorImpl< Function *> &DeadComdatFunctions) |
| Filter out potentially dead comdat functions where other entries keep the entire comdat group alive. More... | |
| std::string | getUniqueModuleId (Module *M) |
| Produce a unique identifier for this module by taking the MD5 sum of the names of the module's strong external symbols that are not comdat members. More... | |
| bool | isAllocaPromotable (const AllocaInst *AI) |
| Return true if this alloca is legal for promotion. More... | |
| void | PromoteMemToReg (ArrayRef< AllocaInst *> Allocas, DominatorTree &DT, AssumptionCache *AC=nullptr) |
| Promote the specified list of alloca instructions into scalar registers, inserting PHI nodes as appropriate. More... | |
| bool | simplifyUsersOfIV (PHINode *CurrIV, ScalarEvolution *SE, DominatorTree *DT, LoopInfo *LI, SmallVectorImpl< WeakTrackingVH > &Dead, SCEVExpander &Rewriter, IVVisitor *V=nullptr) |
| simplifyUsersOfIV - Simplify instructions that use this induction variable by using ScalarEvolution to analyze the IV's recurrence. More... | |
| bool | simplifyLoopIVs (Loop *L, ScalarEvolution *SE, DominatorTree *DT, LoopInfo *LI, SmallVectorImpl< WeakTrackingVH > &Dead) |
| SimplifyLoopIVs - Simplify users of induction variables within this loop. More... | |
| template<typename AdapterT , typename FuncT , typename BFIT > | |
| bool | shouldFuncOptimizeForSizeImpl (const FuncT *F, ProfileSummaryInfo *PSI, BFIT *BFI, PGSOQueryType QueryType) |
| template<typename AdapterT , typename BlockT , typename BFIT > | |
| bool | shouldOptimizeForSizeImpl (const BlockT *BB, ProfileSummaryInfo *PSI, BFIT *BFI, PGSOQueryType QueryType) |
| bool | shouldOptimizeForSize (const Function *F, ProfileSummaryInfo *PSI, BlockFrequencyInfo *BFI, PGSOQueryType QueryType=PGSOQueryType::Other) |
Returns true if function F is suggested to be size-optimized based on the profile. More... | |
| bool | shouldOptimizeForSize (const BasicBlock *BB, ProfileSummaryInfo *PSI, BlockFrequencyInfo *BFI, PGSOQueryType QueryType=PGSOQueryType::Other) |
Returns true if basic block BB is suggested to be size-optimized based on the profile. More... | |
| void | SplitModule (std::unique_ptr< Module > M, unsigned N, function_ref< void(std::unique_ptr< Module > MPart)> ModuleCallback, bool PreserveLocals=false) |
| Splits the module M into N linkable partitions. More... | |
| ModulePass * | createRewriteSymbolsPass () |
| ModulePass * | createRewriteSymbolsPass (SymbolRewriter::RewriteDescriptorList &) |
| Pass * | createUnifyFunctionExitNodesPass () |
| const Loop * | addClonedBlockToLoopInfo (BasicBlock *OriginalBB, BasicBlock *ClonedBB, LoopInfo *LI, NewLoopsMap &NewLoops) |
| Adds ClonedBB to LoopInfo, creates a new loop for ClonedBB if necessary and adds a mapping from the original loop to the new loop to NewLoops. More... | |
| LoopUnrollResult | UnrollLoop (Loop *L, UnrollLoopOptions ULO, LoopInfo *LI, ScalarEvolution *SE, DominatorTree *DT, AssumptionCache *AC, OptimizationRemarkEmitter *ORE, bool PreserveLCSSA, Loop **RemainderLoop=nullptr) |
| Unroll the given loop by Count. More... | |
| bool | UnrollRuntimeLoopRemainder (Loop *L, unsigned Count, bool AllowExpensiveTripCount, bool UseEpilogRemainder, bool UnrollRemainder, bool ForgetAllSCEV, LoopInfo *LI, ScalarEvolution *SE, DominatorTree *DT, AssumptionCache *AC, bool PreserveLCSSA, Loop **ResultLoop=nullptr) |
| Insert code in the prolog/epilog code when unrolling a loop with a run-time trip-count. More... | |
| void | computePeelCount (Loop *L, unsigned LoopSize, TargetTransformInfo::UnrollingPreferences &UP, unsigned &TripCount, ScalarEvolution &SE) |
| bool | canPeel (Loop *L) |
| bool | peelLoop (Loop *L, unsigned PeelCount, LoopInfo *LI, ScalarEvolution *SE, DominatorTree *DT, AssumptionCache *AC, bool PreserveLCSSA) |
Peel off the first PeelCount iterations of loop L. More... | |
| LoopUnrollResult | UnrollAndJamLoop (Loop *L, unsigned Count, unsigned TripCount, unsigned TripMultiple, bool UnrollRemainder, LoopInfo *LI, ScalarEvolution *SE, DominatorTree *DT, AssumptionCache *AC, OptimizationRemarkEmitter *ORE, Loop **EpilogueLoop=nullptr) |
| bool | isSafeToUnrollAndJam (Loop *L, ScalarEvolution &SE, DominatorTree &DT, DependenceInfo &DI) |
| bool | computeUnrollCount (Loop *L, const TargetTransformInfo &TTI, DominatorTree &DT, LoopInfo *LI, ScalarEvolution &SE, const SmallPtrSetImpl< const Value *> &EphValues, OptimizationRemarkEmitter *ORE, unsigned &TripCount, unsigned MaxTripCount, bool MaxOrZero, unsigned &TripMultiple, unsigned LoopSize, TargetTransformInfo::UnrollingPreferences &UP, bool &UseUpperBound) |
| void | remapInstruction (Instruction *I, ValueToValueMapTy &VMap) |
| Convert the instruction operands from referencing the current values into those specified by VMap. More... | |
| void | simplifyLoopAfterUnroll (Loop *L, bool SimplifyIVs, LoopInfo *LI, ScalarEvolution *SE, DominatorTree *DT, AssumptionCache *AC) |
| Perform some cleanup and simplifications on loops after unrolling. More... | |
| MDNode * | GetUnrollMetadata (MDNode *LoopID, StringRef Name) |
| Given an llvm.loop loop id metadata node, returns the loop hint metadata node with the given name (for example, "llvm.loop.unroll.count"). More... | |
| TargetTransformInfo::UnrollingPreferences | gatherUnrollingPreferences (Loop *L, ScalarEvolution &SE, const TargetTransformInfo &TTI, BlockFrequencyInfo *BFI, ProfileSummaryInfo *PSI, int OptLevel, Optional< unsigned > UserThreshold, Optional< unsigned > UserCount, Optional< bool > UserAllowPartial, Optional< bool > UserRuntime, Optional< bool > UserUpperBound, Optional< bool > UserAllowPeeling, Optional< bool > UserAllowProfileBasedPeeling, Optional< unsigned > UserFullUnrollMaxCount) |
| Gather the various unrolling parameters based on the defaults, compiler flags, TTI overrides and user specified parameters. More... | |
| unsigned | ApproximateLoopSize (const Loop *L, unsigned &NumCalls, bool &NotDuplicatable, bool &Convergent, const TargetTransformInfo &TTI, const SmallPtrSetImpl< const Value *> &EphValues, unsigned BEInsns) |
| ApproximateLoopSize - Approximate the size of the loop. More... | |
| RemapFlags | operator| (RemapFlags LHS, RemapFlags RHS) |
| Value * | MapValue (const Value *V, ValueToValueMapTy &VM, RemapFlags Flags=RF_None, ValueMapTypeRemapper *TypeMapper=nullptr, ValueMaterializer *Materializer=nullptr) |
| Look up or compute a value in the value map. More... | |
| Metadata * | MapMetadata (const Metadata *MD, ValueToValueMapTy &VM, RemapFlags Flags=RF_None, ValueMapTypeRemapper *TypeMapper=nullptr, ValueMaterializer *Materializer=nullptr) |
| Lookup or compute a mapping for a piece of metadata. More... | |
| MDNode * | MapMetadata (const MDNode *MD, ValueToValueMapTy &VM, RemapFlags Flags=RF_None, ValueMapTypeRemapper *TypeMapper=nullptr, ValueMaterializer *Materializer=nullptr) |
| Version of MapMetadata with type safety for MDNode. More... | |
| void | RemapInstruction (Instruction *I, ValueToValueMapTy &VM, RemapFlags Flags=RF_None, ValueMapTypeRemapper *TypeMapper=nullptr, ValueMaterializer *Materializer=nullptr) |
| Convert the instruction operands from referencing the current values into those specified by VM. More... | |
| void | RemapFunction (Function &F, ValueToValueMapTy &VM, RemapFlags Flags=RF_None, ValueMapTypeRemapper *TypeMapper=nullptr, ValueMaterializer *Materializer=nullptr) |
| Remap the operands, metadata, arguments, and instructions of a function. More... | |
| Constant * | MapValue (const Constant *V, ValueToValueMapTy &VM, RemapFlags Flags=RF_None, ValueMapTypeRemapper *TypeMapper=nullptr, ValueMaterializer *Materializer=nullptr) |
| Version of MapValue with type safety for Constant. More... | |
| ModulePass * | createMetaRenamerPass () |
| FunctionPass * | createLowerInvokePass () |
| FunctionPass * | createInstructionNamerPass () |
| FunctionPass * | createLowerSwitchPass () |
| FunctionPass * | createEntryExitInstrumenterPass () |
| FunctionPass * | createPostInlineEntryExitInstrumenterPass () |
| FunctionPass * | createBreakCriticalEdgesPass () |
| Pass * | createLCSSAPass () |
| FunctionPass * | createAddDiscriminatorsPass () |
| FunctionPass * | createPromoteMemoryToRegisterPass () |
| Pass * | createLoopSimplifyPass () |
| ModulePass * | createStripNonLineTableDebugInfoPass () |
| This function returns a new pass that downgrades the debug info in the module to line tables only. More... | |
| FunctionPass * | createControlHeightReductionLegacyPass () |
| FunctionPass * | createInjectTLIMappingsLegacyPass () |
| Pass * | createLoadStoreVectorizerPass () |
| Create a legacy pass manager instance of the LoadStoreVectorizer pass. More... | |
| void | reportVectorizationFailure (const StringRef DebugMsg, const StringRef OREMsg, const StringRef ORETag, OptimizationRemarkEmitter *ORE, Loop *TheLoop, Instruction *I=nullptr) |
Reports a vectorization failure: print DebugMsg for debugging purposes along with the corresponding optimization remark RemarkName. More... | |
| Pass * | createLoopVectorizePass () |
| Pass * | createLoopVectorizePass (bool InterleaveOnlyWhenForced, bool VectorizeOnlyWhenForced) |
| Pass * | createSLPVectorizerPass () |
| bool | vectorizeBasicBlock (Pass *P, BasicBlock &BB, const VectorizeConfig &C=VectorizeConfig()) |
| Vectorize the BasicBlock. More... | |
| static GVDAGType | getGVDT () |
| template const SimplifyQuery | getBestSimplifyQuery (AnalysisManager< Function > &, Function &) |
| Pass * | createLAAPass () |
| bool | operator== (const DbgValueLoc &A, const DbgValueLoc &B) |
| Compare two DbgValueLocs for equality. More... | |
| bool | operator< (const DbgValueLoc &A, const DbgValueLoc &B) |
| Compare two fragments based on their offset. More... | |
| template<> | |
| raw_ostream & | WriteGraph (raw_ostream &O, const EdgeBundles &G, bool ShortNames, const Twine &Title) |
| cl::opt< bool > | UseSegmentSetForPhysRegs ("use-segment-set-for-physregs", cl::Hidden, cl::init(true), cl::desc("Use segment set for the computation of the live ranges of physregs.")) |
| template<typename LiveRangeT , typename EqClassesT > | |
| static void | DistributeRange (LiveRangeT &LR, LiveRangeT *SplitLRs[], EqClassesT VNIClasses) |
Helper function that distributes live range value numbers and the corresponding segments of a master live range LR to a list of newly created live ranges SplitLRs. More... | |
| cl::opt< bool > | SwpEnableCopyToPhi ("pipeliner-enable-copytophi", cl::ReallyHidden, cl::init(true), cl::ZeroOrMore, cl::desc("Enable CopyToPhi DAG Mutation")) |
| FunctionPass * | createMachineRegionInfoPass () |
| cl::opt< bool > | ForceTopDown ("misched-topdown", cl::Hidden, cl::desc("Force top-down list scheduling")) |
| cl::opt< bool > | ForceBottomUp ("misched-bottomup", cl::Hidden, cl::desc("Force bottom-up list scheduling")) |
| cl::opt< bool > | VerifyScheduling ("verify-misched", cl::Hidden, cl::desc("Verify machine instrs before and after machine scheduling")) |
| StringRef | lexMIToken (StringRef Source, MIToken &Token, function_ref< void(StringRef::iterator, const Twine &)> ErrorCallback) |
| Consume a single machine instruction token in the given source and return the remaining source string. More... | |
| MachineBasicBlock::iterator | findPHICopyInsertPoint (MachineBasicBlock *MBB, MachineBasicBlock *SuccMBB, unsigned SrcReg) |
| findPHICopyInsertPoint - Find a safe place in MBB to insert a copy from SrcReg when following the CFG edge to SuccMBB. More... | |
| STATISTIC (NumFunctions, "Total number of functions") | |
| STATISTIC (NumUnsafeStackFunctions, "Number of functions with unsafe stack") | |
| STATISTIC (NumUnsafeStackRestorePointsFunctions, "Number of functions that use setjmp or exceptions") | |
| STATISTIC (NumAllocas, "Total number of allocas") | |
| STATISTIC (NumUnsafeStaticAllocas, "Number of unsafe static allocas") | |
| STATISTIC (NumUnsafeDynamicAllocas, "Number of unsafe dynamic allocas") | |
| STATISTIC (NumUnsafeByValArguments, "Number of unsafe byval arguments") | |
| STATISTIC (NumUnsafeStackRestorePoints, "Number of setjmps and landingpads") | |
| Spiller * | createInlineSpiller (MachineFunctionPass &pass, MachineFunction &mf, VirtRegMap &vrm) |
| Create and return a spiller that will insert spill code directly instead of deferring though VirtRegMap. More... | |
| static DescVector | getDescriptions () |
| static DWARFExpression::Operation::Description | getOpDesc (unsigned OpCode) |
| static uint8_t | getRefAddrSize (uint8_t AddrSize, uint16_t Version) |
| static bool | prettyPrintRegisterOp (raw_ostream &OS, uint8_t Opcode, uint64_t Operands[2], const MCRegisterInfo *MRI, bool isEH) |
| llvm::raw_ostream & | operator<< (llvm::raw_ostream &OS, const GUID &G) |
| static bool | inFunctionScope (CompileUnit &U, unsigned Idx) |
Check if the DIE at Idx is in the scope of a function. More... | |
| static void | __register_frame (void *p) |
| static void | __deregister_frame (void *p) |
| static int | jit_noop () |
| static void | dumpSectionMemory (const SectionEntry &S, StringRef State) |
| static Error | getOffset (const SymbolRef &Sym, SectionRef Sec, uint64_t &Result) |
| static uint64_t | computeAllocationSizeForSections (std::vector< uint64_t > &SectionSizes, uint64_t Alignment) |
| static bool | isRequiredForExecution (const SectionRef Section) |
| static bool | isReadOnlyData (const SectionRef Section) |
| static bool | isZeroInit (const SectionRef Section) |
| static std::unique_ptr< RuntimeDyldCOFF > | createRuntimeDyldCOFF (Triple::ArchType Arch, RuntimeDyld::MemoryManager &MM, JITSymbolResolver &Resolver, bool ProcessAllSections, RuntimeDyld::NotifyStubEmittedFunction NotifyStubEmitted) |
| static std::unique_ptr< RuntimeDyldELF > | createRuntimeDyldELF (Triple::ArchType Arch, RuntimeDyld::MemoryManager &MM, JITSymbolResolver &Resolver, bool ProcessAllSections, RuntimeDyld::NotifyStubEmittedFunction NotifyStubEmitted) |
| static std::unique_ptr< RuntimeDyldMachO > | createRuntimeDyldMachO (Triple::ArchType Arch, RuntimeDyld::MemoryManager &MM, JITSymbolResolver &Resolver, bool ProcessAllSections, RuntimeDyld::NotifyStubEmittedFunction NotifyStubEmitted) |
| void | jitLinkForORC (object::ObjectFile &Obj, std::unique_ptr< MemoryBuffer > UnderlyingBuffer, RuntimeDyld::MemoryManager &MemMgr, JITSymbolResolver &Resolver, bool ProcessAllSections, unique_function< Error(std::unique_ptr< RuntimeDyld::LoadedObjectInfo > LoadedObj, std::map< StringRef, JITEvaluatedSymbol >)> OnLoaded, unique_function< void(Error)> OnEmitted) |
| static uint16_t | applyPPClo (uint64_t value) |
| static uint16_t | applyPPChi (uint64_t value) |
| static uint16_t | applyPPCha (uint64_t value) |
| static uint16_t | applyPPChigher (uint64_t value) |
| static uint16_t | applyPPChighera (uint64_t value) |
| static uint16_t | applyPPChighest (uint64_t value) |
| static uint16_t | applyPPChighesta (uint64_t value) |
| static int64_t | computeDelta (SectionEntry *A, SectionEntry *B) |
| static void | add16 (uint8_t *p, int16_t v) |
| static void | or32le (void *P, int32_t V) |
| static void | write32AArch64Imm (uint8_t *T, uint64_t imm, uint32_t rangeLimit) |
| static void | write32AArch64Ldr (uint8_t *T, uint64_t imm) |
| static void | write32AArch64Addr (void *T, uint64_t s, uint64_t p, int shift) |
| static bool | isThumbFunc (object::symbol_iterator Symbol, const object::ObjectFile &Obj, object::section_iterator Section) |
| static sys::MemoryBlock | trimBlockToPageSize (sys::MemoryBlock M) |
| Constant * | ConstantFoldCastInstruction (unsigned opcode, Constant *V, Type *DestTy) |
| Constant * | ConstantFoldUnaryInstruction (unsigned Opcode, Constant *V) |
| Constant * | ConstantFoldBinaryInstruction (unsigned Opcode, Constant *V1, Constant *V2) |
| Constant * | ConstantFoldCompareInstruction (unsigned short predicate, Constant *C1, Constant *C2) |
| Constant * | ConstantFoldGetElementPtr (Type *Ty, Constant *C, bool InBounds, Optional< unsigned > InRangeIndex, ArrayRef< Value *> Idxs) |
| static const Metadata * | get_hashable_data (const MDOperand &X) |
| Make MDOperand transparent for hashing. More... | |
| template<class T , class InfoT > | |
| static T * | getUniqued (DenseSet< T *, InfoT > &Store, const typename InfoT::KeyTy &Key) |
| static bool | matchPassManager (StringRef PassID) |
| raw_ostream & | operator<< (raw_ostream &OS, const MCFixup &AF) |
| MCAsmParserExtension * | createDarwinAsmParser () |
| MCAsmParserExtension * | createELFAsmParser () |
| MCAsmParserExtension * | createCOFFAsmParser () |
| MCAsmParserExtension * | createWasmAsmParser () |
| static ErrorOr< SmallString< 128 > > | canonicalizePath (StringRef P) |
| static StringRef | stripDirPrefix (StringRef PathNameStr, uint32_t NumPrefix) |
| uint32_t | getNumValueKindsInstrProf (const void *Record) |
| ValueProfRecordClosure Interface implementation for InstrProfRecord class. More... | |
| uint32_t | getNumValueSitesInstrProf (const void *Record, uint32_t VKind) |
| uint32_t | getNumValueDataInstrProf (const void *Record, uint32_t VKind) |
| uint32_t | getNumValueDataForSiteInstrProf (const void *R, uint32_t VK, uint32_t S) |
| void | getValueForSiteInstrProf (const void *R, InstrProfValueData *Dst, uint32_t K, uint32_t S) |
| ValueProfData * | allocValueProfDataInstrProf (size_t TotalSizeInBytes) |
| template<class T > | |
| static T | swapToHostOrder (const unsigned char *&D, support::endianness Orig) |
| static std::unique_ptr< ValueProfData > | allocValueProfData (uint32_t TotalSize) |
| static Error | createError (const Twine &Err) |
| static unsigned int | partCountForBits (unsigned int bits) |
| static unsigned int | decDigitValue (unsigned int c) |
| static Expected< int > | readExponent (StringRef::iterator begin, StringRef::iterator end) |
| static Expected< int > | totalExponent (StringRef::iterator p, StringRef::iterator end, int exponentAdjustment) |
| static Expected< StringRef::iterator > | skipLeadingZeroesAndAnyDot (StringRef::iterator begin, StringRef::iterator end, StringRef::iterator *dot) |
| static Error | interpretDecimal (StringRef::iterator begin, StringRef::iterator end, decimalInfo *D) |
| static Expected< lostFraction > | trailingHexadecimalFraction (StringRef::iterator p, StringRef::iterator end, unsigned int digitValue) |
| static lostFraction | lostFractionThroughTruncation (const APFloatBase::integerPart *parts, unsigned int partCount, unsigned int bits) |
| static lostFraction | shiftRight (APFloatBase::integerPart *dst, unsigned int parts, unsigned int bits) |
| static lostFraction | combineLostFractions (lostFraction moreSignificant, lostFraction lessSignificant) |
| static unsigned int | HUerrBound (bool inexactMultiply, unsigned int HUerr1, unsigned int HUerr2) |
| static APFloatBase::integerPart | ulpsFromBoundary (const APFloatBase::integerPart *parts, unsigned int bits, bool isNearest) |
| static unsigned int | powerOf5 (APFloatBase::integerPart *dst, unsigned int power) |
| static unsigned int | partAsHex (char *dst, APFloatBase::integerPart part, unsigned int count, const char *hexDigitChars) |
| static char * | writeUnsignedDecimal (char *dst, unsigned int n) |
| static char * | writeSignedDecimal (char *dst, int value) |
| static struct tm | getStructTM (TimePoint<> TP) |
| static Boolean | isLegalUTF8 (const UTF8 *source, int length) |
| static unsigned | findMaximalSubpartOfIllFormedUTF8Sequence (const UTF8 *source, const UTF8 *sourceEnd) |
| static ConversionResult | ConvertUTF8toUTF32Impl (const UTF8 **sourceStart, const UTF8 *sourceEnd, UTF32 **targetStart, UTF32 *targetEnd, ConversionFlags flags, Boolean InputIsPartial) |
| template<typename TResult > | |
| static bool | ConvertUTF8toWideInternal (llvm::StringRef Source, TResult &Result) |
| void * | SearchForAddressOfSpecialSymbol (const char *SymbolName) |
| PrettyStackTraceEntry * | ReverseStackTrace (PrettyStackTraceEntry *Head) |
| static void | PrintMessage (ArrayRef< SMLoc > Loc, SourceMgr::DiagKind Kind, const Twine &Msg) |
| FunctionPass * | createAArch64DeadRegisterDefinitions () |
| FunctionPass * | createAArch64RedundantCopyEliminationPass () |
| FunctionPass * | createAArch64CondBrTuning () |
| FunctionPass * | createAArch64CompressJumpTablesPass () |
| FunctionPass * | createAArch64ConditionalCompares () |
| FunctionPass * | createAArch64AdvSIMDScalar () |
| FunctionPass * | createAArch64ISelDag (AArch64TargetMachine &TM, CodeGenOpt::Level OptLevel) |
| createAArch64ISelDag - This pass converts a legalized DAG into a AArch64-specific DAG, ready for instruction scheduling. More... | |
| FunctionPass * | createAArch64StorePairSuppressPass () |
| FunctionPass * | createAArch64ExpandPseudoPass () |
| Returns an instance of the pseudo instruction expansion pass. More... | |
| FunctionPass * | createAArch64SpeculationHardeningPass () |
| Returns an instance of the pseudo instruction expansion pass. More... | |
| FunctionPass * | createAArch64LoadStoreOptimizationPass () |
| createAArch64LoadStoreOptimizationPass - returns an instance of the load / store optimization pass. More... | |
| FunctionPass * | createAArch64SIMDInstrOptPass () |
| Returns an instance of the high cost ASIMD instruction replacement optimization pass. More... | |
| ModulePass * | createAArch64PromoteConstantPass () |
| FunctionPass * | createAArch64ConditionOptimizerPass () |
| FunctionPass * | createAArch64A57FPLoadBalancing () |
| FunctionPass * | createAArch64A53Fix835769 () |
| FunctionPass * | createFalkorHWPFFixPass () |
| FunctionPass * | createFalkorMarkStridedAccessesPass () |
| FunctionPass * | createAArch64BranchTargetsPass () |
| FunctionPass * | createAArch64CleanupLocalDynamicTLSPass () |
| FunctionPass * | createAArch64CollectLOHPass () |
| InstructionSelector * | createAArch64InstructionSelector (const AArch64TargetMachine &, AArch64Subtarget &, AArch64RegisterBankInfo &) |
| FunctionPass * | createAArch64PreLegalizeCombiner (bool IsOptNone) |
| FunctionPass * | createAArch64StackTaggingPass (bool MergeInit) |
| FunctionPass * | createAArch64StackTaggingPreRAPass () |
| void | initializeAArch64A53Fix835769Pass (PassRegistry &) |
| void | initializeAArch64A57FPLoadBalancingPass (PassRegistry &) |
| void | initializeAArch64AdvSIMDScalarPass (PassRegistry &) |
| void | initializeAArch64BranchTargetsPass (PassRegistry &) |
| void | initializeAArch64CollectLOHPass (PassRegistry &) |
| void | initializeAArch64CondBrTuningPass (PassRegistry &) |
| void | initializeAArch64CompressJumpTablesPass (PassRegistry &) |
| void | initializeAArch64ConditionalComparesPass (PassRegistry &) |
| void | initializeAArch64ConditionOptimizerPass (PassRegistry &) |
| void | initializeAArch64DeadRegisterDefinitionsPass (PassRegistry &) |
| void | initializeAArch64ExpandPseudoPass (PassRegistry &) |
| void | initializeAArch64SpeculationHardeningPass (PassRegistry &) |
| void | initializeAArch64LoadStoreOptPass (PassRegistry &) |
| void | initializeAArch64SIMDInstrOptPass (PassRegistry &) |
| void | initializeAArch64PreLegalizerCombinerPass (PassRegistry &) |
| void | initializeAArch64PromoteConstantPass (PassRegistry &) |
| void | initializeAArch64RedundantCopyEliminationPass (PassRegistry &) |
| void | initializeAArch64StorePairSuppressPass (PassRegistry &) |
| void | initializeFalkorHWPFFixPass (PassRegistry &) |
| void | initializeFalkorMarkStridedAccessesLegacyPass (PassRegistry &) |
| void | initializeLDTLSCleanupPass (PassRegistry &) |
| void | initializeAArch64StackTaggingPass (PassRegistry &) |
| void | initializeAArch64StackTaggingPreRAPass (PassRegistry &) |
| bool | CC_AArch64_AAPCS (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
| bool | CC_AArch64_DarwinPCS_VarArg (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
| bool | CC_AArch64_DarwinPCS (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
| bool | CC_AArch64_DarwinPCS_ILP32_VarArg (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
| bool | CC_AArch64_Win64_VarArg (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
| bool | CC_AArch64_Win64_CFGuard_Check (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
| bool | CC_AArch64_WebKit_JS (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
| bool | CC_AArch64_GHC (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
| bool | RetCC_AArch64_AAPCS (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
| bool | RetCC_AArch64_WebKit_JS (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
| void | emitFrameOffset (MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI, const DebugLoc &DL, unsigned DestReg, unsigned SrcReg, StackOffset Offset, const TargetInstrInfo *TII, MachineInstr::MIFlag=MachineInstr::NoFlags, bool SetNZCV=false, bool NeedsWinCFI=false, bool *HasWinCFI=nullptr) |
| emitFrameOffset - Emit instructions as needed to set DestReg to SrcReg plus Offset. More... | |
| bool | rewriteAArch64FrameIndex (MachineInstr &MI, unsigned FrameRegIdx, unsigned FrameReg, StackOffset &Offset, const AArch64InstrInfo *TII) |
| rewriteAArch64FrameIndex - Rewrite MI to access 'Offset' bytes from the FP. More... | |
| int | isAArch64FrameOffsetLegal (const MachineInstr &MI, StackOffset &Offset, bool *OutUseUnscaledOp=nullptr, unsigned *OutUnscaledOp=nullptr, int64_t *EmittableOffset=nullptr) |
Check if the Offset is a valid frame offset for MI. More... | |
| static bool | isUncondBranchOpcode (int Opc) |
| static bool | isCondBranchOpcode (int Opc) |
| static bool | isIndirectBranchOpcode (int Opc) |
| std::unique_ptr< ScheduleDAGMutation > | createAArch64MacroFusionDAGMutation () |
| Note that you have to add: DAG.addMutation(createAArch64MacroFusionDAGMutation()); to AArch64PassConfig::createMachineScheduler() to have an effect. More... | |
| MCTargetStreamer * | createAArch64AsmTargetStreamer (MCStreamer &S, formatted_raw_ostream &OS, MCInstPrinter *InstPrint, bool isVerboseAsm) |
| MCELFStreamer * | createAArch64ELFStreamer (MCContext &Context, std::unique_ptr< MCAsmBackend > TAB, std::unique_ptr< MCObjectWriter > OW, std::unique_ptr< MCCodeEmitter > Emitter, bool RelaxAll) |
| MCCodeEmitter * | createAArch64MCCodeEmitter (const MCInstrInfo &MCII, const MCRegisterInfo &MRI, MCContext &Ctx) |
| MCAsmBackend * | createAArch64leAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options) |
| MCAsmBackend * | createAArch64beAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options) |
| std::unique_ptr< MCObjectTargetWriter > | createAArch64ELFObjectWriter (uint8_t OSABI, bool IsILP32) |
| std::unique_ptr< MCObjectTargetWriter > | createAArch64MachObjectWriter (uint32_t CPUType, uint32_t CPUSubtype, bool IsILP32) |
| std::unique_ptr< MCObjectTargetWriter > | createAArch64WinCOFFObjectWriter () |
| MCTargetStreamer * | createAArch64ObjectTargetStreamer (MCStreamer &S, const MCSubtargetInfo &STI) |
| MCWinCOFFStreamer * | createAArch64WinCOFFStreamer (MCContext &Context, std::unique_ptr< MCAsmBackend > MAB, std::unique_ptr< MCObjectWriter > OW, std::unique_ptr< MCCodeEmitter > Emitter, bool RelaxAll, bool IncrementalLinkerCompatible) |
| Target & | getTheAArch64leTarget () |
| Target & | getTheAArch64beTarget () |
| Target & | getTheAArch64_32Target () |
| Target & | getTheARM64Target () |
| Target & | getTheARM64_32Target () |
| static unsigned | getWRegFromXReg (unsigned Reg) |
| static unsigned | getXRegFromWReg (unsigned Reg) |
| static unsigned | getBRegFromDReg (unsigned Reg) |
| static unsigned | getDRegFromBReg (unsigned Reg) |
| static bool | atomicBarrierDroppedOnZero (unsigned Opcode) |
| static const char * | AArch64VectorLayoutToString (AArch64Layout::VectorLayout Layout) |
| static AArch64Layout::VectorLayout | AArch64StringToVectorLayout (StringRef LayoutStr) |
| FunctionPass * | createR600VectorRegMerger () |
| FunctionPass * | createR600ExpandSpecialInstrsPass () |
| FunctionPass * | createR600EmitClauseMarkers () |
| FunctionPass * | createR600ClauseMergePass () |
| FunctionPass * | createR600Packetizer () |
| FunctionPass * | createR600ControlFlowFinalizer () |
| FunctionPass * | createAMDGPUCFGStructurizerPass () |
| FunctionPass * | createR600ISelDag (TargetMachine *TM, CodeGenOpt::Level OptLevel) |
| This pass converts a legalized DAG into a R600-specific. More... | |
| FunctionPass * | createGCNDPPCombinePass () |
| FunctionPass * | createSIAnnotateControlFlowPass () |
| Create the annotation pass. More... | |
| FunctionPass * | createSIFoldOperandsPass () |
| FunctionPass * | createSIPeepholeSDWAPass () |
| FunctionPass * | createSILowerI1CopiesPass () |
| FunctionPass * | createSIFixupVectorISelPass () |
| FunctionPass * | createSIAddIMGInitPass () |
| FunctionPass * | createSIShrinkInstructionsPass () |
| FunctionPass * | createSILoadStoreOptimizerPass () |
| FunctionPass * | createSIWholeQuadModePass () |
| FunctionPass * | createSIFixControlFlowLiveIntervalsPass () |
| FunctionPass * | createSIOptimizeExecMaskingPreRAPass () |
| FunctionPass * | createSIFixSGPRCopiesPass () |
| FunctionPass * | createSIMemoryLegalizerPass () |
| FunctionPass * | createSIInsertWaitcntsPass () |
| FunctionPass * | createSIPreAllocateWWMRegsPass () |
| FunctionPass * | createSIFormMemoryClausesPass () |
| FunctionPass * | createAMDGPUSimplifyLibCallsPass (const TargetOptions &, const TargetMachine *) |
| FunctionPass * | createAMDGPUUseNativeCallsPass () |
| FunctionPass * | createAMDGPUCodeGenPreparePass () |
| FunctionPass * | createAMDGPUMachineCFGStructurizerPass () |
| FunctionPass * | createAMDGPUPropagateAttributesEarlyPass (const TargetMachine *) |
| ModulePass * | createAMDGPUPropagateAttributesLatePass (const TargetMachine *) |
| FunctionPass * | createAMDGPURewriteOutArgumentsPass () |
| FunctionPass * | createSIModeRegisterPass () |
| void | initializeAMDGPUDAGToDAGISelPass (PassRegistry &) |
| void | initializeAMDGPUMachineCFGStructurizerPass (PassRegistry &) |
| void | initializeAMDGPUAlwaysInlinePass (PassRegistry &) |
| Pass * | createAMDGPUAnnotateKernelFeaturesPass () |
| void | initializeAMDGPUAnnotateKernelFeaturesPass (PassRegistry &) |
| FunctionPass * | createAMDGPUAtomicOptimizerPass () |
| void | initializeAMDGPUAtomicOptimizerPass (PassRegistry &) |
| ModulePass * | createAMDGPULowerIntrinsicsPass () |
| void | initializeAMDGPULowerIntrinsicsPass (PassRegistry &) |
| ModulePass * | createAMDGPUFixFunctionBitcastsPass () |
| void | initializeAMDGPUFixFunctionBitcastsPass (PassRegistry &) |
| FunctionPass * | createAMDGPULowerKernelArgumentsPass () |
| void | initializeAMDGPULowerKernelArgumentsPass (PassRegistry &) |
| ModulePass * | createAMDGPULowerKernelAttributesPass () |
| void | initializeAMDGPULowerKernelAttributesPass (PassRegistry &) |
| void | initializeAMDGPUPropagateAttributesEarlyPass (PassRegistry &) |
| void | initializeAMDGPUPropagateAttributesLatePass (PassRegistry &) |
| void | initializeAMDGPURewriteOutArgumentsPass (PassRegistry &) |
| void | initializeGCNDPPCombinePass (PassRegistry &) |
| void | initializeR600ClauseMergePassPass (PassRegistry &) |
| void | initializeR600ControlFlowFinalizerPass (PassRegistry &) |
| void | initializeR600ExpandSpecialInstrsPassPass (PassRegistry &) |
| void | initializeR600VectorRegMergerPass (PassRegistry &) |
| void | initializeR600PacketizerPass (PassRegistry &) |
| void | initializeSIFoldOperandsPass (PassRegistry &) |
| void | initializeSIPeepholeSDWAPass (PassRegistry &) |
| void | initializeSIShrinkInstructionsPass (PassRegistry &) |
| void | initializeSIFixSGPRCopiesPass (PassRegistry &) |
| void | initializeSIFixVGPRCopiesPass (PassRegistry &) |
| void | initializeSIFixupVectorISelPass (PassRegistry &) |
| void | initializeSILowerI1CopiesPass (PassRegistry &) |
| void | initializeSILowerSGPRSpillsPass (PassRegistry &) |
| void | initializeSILoadStoreOptimizerPass (PassRegistry &) |
| void | initializeSIWholeQuadModePass (PassRegistry &) |
| void | initializeSILowerControlFlowPass (PassRegistry &) |
| void | initializeSIInsertSkipsPass (PassRegistry &) |
| void | initializeSIOptimizeExecMaskingPass (PassRegistry &) |
| void | initializeSIPreAllocateWWMRegsPass (PassRegistry &) |
| void | initializeAMDGPUSimplifyLibCallsPass (PassRegistry &) |
| void | initializeAMDGPUUseNativeCallsPass (PassRegistry &) |
| void | initializeSIAddIMGInitPass (PassRegistry &) |
| void | initializeAMDGPUPerfHintAnalysisPass (PassRegistry &) |
| FunctionPass * | createAMDGPUPromoteAlloca () |
| void | initializeAMDGPUPromoteAllocaPass (PassRegistry &) |
| Pass * | createAMDGPUStructurizeCFGPass () |
| FunctionPass * | createAMDGPUISelDag (TargetMachine *TM=nullptr, CodeGenOpt::Level OptLevel=CodeGenOpt::Default) |
| This pass converts a legalized DAG into a AMDGPU-specific. More... | |
| ModulePass * | createAMDGPUAlwaysInlinePass (bool GlobalOpt=true) |
| ModulePass * | createR600OpenCLImageTypeLoweringPass () |
| FunctionPass * | createAMDGPUAnnotateUniformValues () |
| ModulePass * | createAMDGPUPrintfRuntimeBinding () |
| void | initializeAMDGPUPrintfRuntimeBindingPass (PassRegistry &) |
| ModulePass * | createAMDGPUUnifyMetadataPass () |
| void | initializeAMDGPUUnifyMetadataPass (PassRegistry &) |
| void | initializeSIOptimizeExecMaskingPreRAPass (PassRegistry &) |
| void | initializeAMDGPUAnnotateUniformValuesPass (PassRegistry &) |
| void | initializeAMDGPUCodeGenPreparePass (PassRegistry &) |
| void | initializeSIAnnotateControlFlowPass (PassRegistry &) |
| void | initializeSIMemoryLegalizerPass (PassRegistry &) |
| void | initializeSIModeRegisterPass (PassRegistry &) |
| void | initializeSIInsertWaitcntsPass (PassRegistry &) |
| void | initializeSIFormMemoryClausesPass (PassRegistry &) |
| void | initializeAMDGPUUnifyDivergentExitNodesPass (PassRegistry &) |
| ImmutablePass * | createAMDGPUAAWrapperPass () |
| void | initializeAMDGPUAAWrapperPassPass (PassRegistry &) |
| ImmutablePass * | createAMDGPUExternalAAWrapperPass () |
| void | initializeAMDGPUExternalAAWrapperPass (PassRegistry &) |
| void | initializeAMDGPUArgumentUsageInfoPass (PassRegistry &) |
| Pass * | createAMDGPUFunctionInliningPass () |
| void | initializeAMDGPUInlinerPass (PassRegistry &) |
| ModulePass * | createAMDGPUOpenCLEnqueuedBlockLoweringPass () |
| void | initializeAMDGPUOpenCLEnqueuedBlockLoweringPass (PassRegistry &) |
| void | initializeGCNRegBankReassignPass (PassRegistry &) |
| void | initializeGCNNSAReassignPass (PassRegistry &) |
| raw_ostream & | operator<< (raw_ostream &OS, const ArgDescriptor &Arg) |
| static double | log2 (double V) |
| std::unique_ptr< ScheduleDAGMutation > | createAMDGPUMacroFusionDAGMutation () |
| Note that you have to add: DAG.addMutation(createAMDGPUMacroFusionDAGMutation()); to AMDGPUPassConfig::createMachineScheduler() to have an effect. More... | |
| void | initializeAMDGPUCFGStructurizerPass (PassRegistry &) |
| std::vector< const SUnit * > | makeGCNILPScheduler (ArrayRef< const SUnit *> BotRoots, const ScheduleDAG &DAG) |
| std::vector< const SUnit * > | makeMinRegSchedule (ArrayRef< const SUnit *> TopRoots, const ScheduleDAG &DAG) |
| GCNRegPressure | max (const GCNRegPressure &P1, const GCNRegPressure &P2) |
| LaneBitmask | getLiveLaneMask (unsigned Reg, SlotIndex SI, const LiveIntervals &LIS, const MachineRegisterInfo &MRI) |
| GCNRPTracker::LiveRegSet | getLiveRegs (SlotIndex SI, const LiveIntervals &LIS, const MachineRegisterInfo &MRI) |
| template<typename Range > | |
| DenseMap< MachineInstr *, GCNRPTracker::LiveRegSet > | getLiveRegMap (Range &&R, bool After, LiveIntervals &LIS) |
| creates a map MachineInstr -> LiveRegSet R - range of iterators on instructions After - upon entry or exit of every instruction Note: there is no entry in the map for instructions with empty live reg set Complexity = O(NumVirtRegs * averageLiveRangeSegmentsPerReg * lg(R)) More... | |
| GCNRPTracker::LiveRegSet | getLiveRegsAfter (const MachineInstr &MI, const LiveIntervals &LIS) |
| GCNRPTracker::LiveRegSet | getLiveRegsBefore (const MachineInstr &MI, const LiveIntervals &LIS) |
| template<typename Range > | |
| GCNRegPressure | getRegPressure (const MachineRegisterInfo &MRI, Range &&LiveRegs) |
| bool | isEqual (const GCNRPTracker::LiveRegSet &S1, const GCNRPTracker::LiveRegSet &S2) |
| void | printLivesAt (SlotIndex SI, const LiveIntervals &LIS, const MachineRegisterInfo &MRI) |
| MCELFStreamer * | createAMDGPUELFStreamer (const Triple &T, MCContext &Context, std::unique_ptr< MCAsmBackend > MAB, std::unique_ptr< MCObjectWriter > OW, std::unique_ptr< MCCodeEmitter > Emitter, bool RelaxAll) |
| MCCodeEmitter * | createR600MCCodeEmitter (const MCInstrInfo &MCII, const MCRegisterInfo &MRI, MCContext &Ctx) |
| MCInstrInfo * | createR600MCInstrInfo () |
| MCCodeEmitter * | createSIMCCodeEmitter (const MCInstrInfo &MCII, const MCRegisterInfo &MRI, MCContext &Ctx) |
| MCAsmBackend * | createAMDGPUAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options) |
| std::unique_ptr< MCObjectTargetWriter > | createAMDGPUELFObjectWriter (bool Is64Bit, uint8_t OSABI, bool HasRelocationAddend, uint8_t ABIVersion) |
| AsmPrinter * | createR600AsmPrinterPass (TargetMachine &TM, std::unique_ptr< MCStreamer > &&Streamer) |
| void | initializeR600EmitClauseMarkersPass (PassRegistry &) |
| bool | isOfRegClass (const TargetInstrInfo::RegSubRegPair &P, const TargetRegisterClass &TRC, MachineRegisterInfo &MRI) |
| Returns true if a reg:subreg pair P has a TRC class. More... | |
| TargetInstrInfo::RegSubRegPair | getRegSubRegPair (const MachineOperand &O) |
| Create RegSubRegPair from a register MachineOperand. More... | |
| TargetInstrInfo::RegSubRegPair | getRegSequenceSubReg (MachineInstr &MI, unsigned SubReg) |
| Return the SubReg component from REG_SEQUENCE. More... | |
| MachineInstr * | getVRegSubRegDef (const TargetInstrInfo::RegSubRegPair &P, MachineRegisterInfo &MRI) |
| Return the defining instruction for a given reg:subreg pair skipping copy like instructions and subreg-manipulation pseudos. More... | |
| bool | execMayBeModifiedBeforeUse (const MachineRegisterInfo &MRI, Register VReg, const MachineInstr &DefMI, const MachineInstr &UseMI) |
Return false if EXEC is not changed between the def of VReg at DefMI and the use at UseMI. More... | |
| bool | execMayBeModifiedBeforeAnyUse (const MachineRegisterInfo &MRI, Register VReg, const MachineInstr &DefMI) |
Return false if EXEC is not changed between the def of VReg at DefMI and all its uses. More... | |
| Target & | getTheAMDGPUTarget () |
| The target which supports all AMD GPUs. More... | |
| Target & | getTheGCNTarget () |
| The target for GCN GPUs. More... | |
| void | printAmdKernelCodeField (const amd_kernel_code_t &C, int FldIndex, raw_ostream &OS) |
| void | dumpAmdKernelCode (const amd_kernel_code_t *C, raw_ostream &OS, const char *tab) |
| bool | parseAmdKernelCodeField (StringRef ID, MCAsmParser &Parser, amd_kernel_code_t &C, raw_ostream &Err) |
| FunctionPass * | createARCISelDag (ARCTargetMachine &TM, CodeGenOpt::Level OptLevel) |
| This pass converts a legalized DAG into a ARC-specific DAG, ready for instruction scheduling. More... | |
| FunctionPass * | createARCExpandPseudosPass () |
| FunctionPass * | createARCOptAddrMode () |
| FunctionPass * | createARCBranchFinalizePass () |
| void | initializeARCBranchFinalizePass (PassRegistry &Registry) |
| void | initializeARCOptAddrModePass (PassRegistry &) |
| Target & | getTheARCTarget () |
| Pass * | createMVETailPredicationPass () |
| FunctionPass * | createARMLowOverheadLoopsPass () |
| Pass * | createARMParallelDSPPass () |
| FunctionPass * | createARMISelDag (ARMBaseTargetMachine &TM, CodeGenOpt::Level OptLevel) |
| createARMISelDag - This pass converts a legalized DAG into a ARM-specific DAG, ready for instruction scheduling. More... | |
| FunctionPass * | createA15SDOptimizerPass () |
| FunctionPass * | createARMLoadStoreOptimizationPass (bool PreAlloc=false) |
| Returns an instance of the load / store optimization pass. More... | |
| FunctionPass * | createARMExpandPseudoPass () |
| createARMExpandPseudoPass - returns an instance of the pseudo instruction expansion pass. More... | |
| FunctionPass * | createARMConstantIslandPass () |
| createARMConstantIslandPass - returns an instance of the constpool island pass. More... | |
| FunctionPass * | createMLxExpansionPass () |
| FunctionPass * | createThumb2ITBlockPass () |
| createThumb2ITBlockPass - Returns an instance of the Thumb2 IT blocks insertion pass. More... | |
| FunctionPass * | createMVEVPTBlockPass () |
| createMVEVPTBlock - Returns an instance of the MVE VPT block insertion pass. More... | |
| FunctionPass * | createARMOptimizeBarriersPass () |
| createARMOptimizeBarriersPass - Returns an instance of the remove double barriers pass. More... | |
| FunctionPass * | createThumb2SizeReductionPass (std::function< bool(const Function &)> Ftor=nullptr) |
| createThumb2SizeReductionPass - Returns an instance of the Thumb2 size reduction pass. More... | |
| InstructionSelector * | createARMInstructionSelector (const ARMBaseTargetMachine &TM, const ARMSubtarget &STI, const ARMRegisterBankInfo &RBI) |
| Pass * | createMVEGatherScatterLoweringPass () |
| void | LowerARMMachineInstrToMCInst (const MachineInstr *MI, MCInst &OutMI, ARMAsmPrinter &AP) |
| void | initializeARMParallelDSPPass (PassRegistry &) |
| void | initializeARMLoadStoreOptPass (PassRegistry &) |
| void | initializeARMPreAllocLoadStoreOptPass (PassRegistry &) |
| void | initializeARMConstantIslandsPass (PassRegistry &) |
| void | initializeARMExpandPseudoPass (PassRegistry &) |
| void | initializeThumb2SizeReducePass (PassRegistry &) |
| void | initializeThumb2ITBlockPass (PassRegistry &) |
| void | initializeMVEVPTBlockPass (PassRegistry &) |
| void | initializeARMLowOverheadLoopsPass (PassRegistry &) |
| void | initializeMVETailPredicationPass (PassRegistry &) |
| void | initializeMVEGatherScatterLoweringPass (PassRegistry &) |
| template<> | |
| bool | IsCPSRDead< MachineInstr > (const MachineInstr *MI) |
| static std::array< MachineOperand, 2 > | predOps (ARMCC::CondCodes Pred, unsigned PredReg=0) |
Get the operands corresponding to the given Pred value. More... | |
| static MachineOperand | condCodeOp (unsigned CCReg=0) |
| Get the operand corresponding to the conditional code result. More... | |
| static MachineOperand | t1CondCodeOp (bool isDead=false) |
| Get the operand corresponding to the conditional code result for Thumb1. More... | |
| static bool | isUncondBranchOpcode (int Opc) |
| static bool | isVPTOpcode (int Opc) |
| static unsigned | VCMPOpcodeToVPT (unsigned Opcode) |
| static unsigned | VCTPOpcodeToLSTP (unsigned Opcode, bool IsDoLoop) |
| static bool | isVCTP (MachineInstr *MI) |
| static bool | isLoopStart (MachineInstr &MI) |
| static bool | isCondBranchOpcode (int Opc) |
| static bool | isJumpTableBranchOpcode (int Opc) |
| static bool | isIndirectBranchOpcode (int Opc) |
| static bool | isPopOpcode (int Opc) |
| static bool | isPushOpcode (int Opc) |
| static bool | isValidCoprocessorNumber (unsigned Num, const FeatureBitset &featureBits) |
| isValidCoprocessorNumber - decide whether an explicit coprocessor number is legal in generic instructions like CDP. More... | |
| ARMCC::CondCodes | getInstrPredicate (const MachineInstr &MI, unsigned &PredReg) |
| getInstrPredicate - If instruction is predicated, returns its predicate condition, otherwise returns AL. More... | |
| unsigned | getMatchingCondBranchOpcode (unsigned Opc) |
| unsigned | convertAddSubFlagsOpcode (unsigned OldOpc) |
| Map pseudo instructions that imply an 'S' bit onto real opcodes. More... | |
| void | emitARMRegPlusImmediate (MachineBasicBlock &MBB, MachineBasicBlock::iterator &MBBI, const DebugLoc &dl, unsigned DestReg, unsigned BaseReg, int NumBytes, ARMCC::CondCodes Pred, unsigned PredReg, const ARMBaseInstrInfo &TII, unsigned MIFlags=0) |
| emitARMRegPlusImmediate / emitT2RegPlusImmediate - Emits a series of instructions to materializea destreg = basereg + immediate in ARM / Thumb2 code. More... | |
| void | emitT2RegPlusImmediate (MachineBasicBlock &MBB, MachineBasicBlock::iterator &MBBI, const DebugLoc &dl, unsigned DestReg, unsigned BaseReg, int NumBytes, ARMCC::CondCodes Pred, unsigned PredReg, const ARMBaseInstrInfo &TII, unsigned MIFlags=0) |
| void | emitThumbRegPlusImmediate (MachineBasicBlock &MBB, MachineBasicBlock::iterator &MBBI, const DebugLoc &dl, unsigned DestReg, unsigned BaseReg, int NumBytes, const TargetInstrInfo &TII, const ARMBaseRegisterInfo &MRI, unsigned MIFlags=0) |
| emitThumbRegPlusImmediate - Emits a series of instructions to materialize a destreg = basereg + immediate in Thumb code. More... | |
| bool | tryFoldSPUpdateIntoPushPop (const ARMSubtarget &Subtarget, MachineFunction &MF, MachineInstr *MI, unsigned NumBytes) |
| Tries to add registers to the reglist of a given base-updating push/pop instruction to adjust the stack by an additional NumBytes. More... | |
| bool | rewriteARMFrameIndex (MachineInstr &MI, unsigned FrameRegIdx, unsigned FrameReg, int &Offset, const ARMBaseInstrInfo &TII) |
| rewriteARMFrameIndex / rewriteT2FrameIndex - Rewrite MI to access 'Offset' bytes from the FP. More... | |
| bool | rewriteT2FrameIndex (MachineInstr &MI, unsigned FrameRegIdx, unsigned FrameReg, int &Offset, const ARMBaseInstrInfo &TII, const TargetRegisterInfo *TRI) |
| bool | registerDefinedBetween (unsigned Reg, MachineBasicBlock::iterator From, MachineBasicBlock::iterator To, const TargetRegisterInfo *TRI) |
| Return true if Reg is defd between From and To. More... | |
| MachineInstr * | findCMPToFoldIntoCBZ (MachineInstr *Br, const TargetRegisterInfo *TRI) |
| Search backwards from a tBcc to find a tCMPi8 against 0, meaning we can convert them to a tCBZ or tCBNZ. More... | |
| void | addUnpredicatedMveVpredNOp (MachineInstrBuilder &MIB) |
| void | addUnpredicatedMveVpredROp (MachineInstrBuilder &MIB, unsigned DestReg) |
| void | addPredicatedMveVpredNOp (MachineInstrBuilder &MIB, unsigned Cond) |
| void | addPredicatedMveVpredROp (MachineInstrBuilder &MIB, unsigned Cond, unsigned Inactive) |
| unsigned | ConstantMaterializationCost (unsigned Val, const ARMSubtarget *Subtarget, bool ForCodesize=false) |
| Returns the number of instructions required to materialize the given constant in a register, or 3 if a literal pool load is needed. More... | |
| bool | HasLowerConstantMaterializationCost (unsigned Val1, unsigned Val2, const ARMSubtarget *Subtarget, bool ForCodesize=false) |
| Returns true if Val1 has a lower Constant Materialization Cost than Val2. More... | |
| static bool | isARMArea1Register (unsigned Reg, bool isIOS) |
| isARMArea1Register - Returns true if the register is a low register (r0-r7) or a stack/pc register that we should push/pop. More... | |
| static bool | isARMArea2Register (unsigned Reg, bool isIOS) |
| static bool | isARMArea3Register (unsigned Reg, bool isIOS) |
| static bool | isCalleeSavedRegister (unsigned Reg, const MCPhysReg *CSRegs) |
| static bool | mayOptimizeThumb2Instruction (const MachineInstr *MI) |
| unsigned | UnknownPadding (Align Alignment, unsigned KnownBits) |
| UnknownPadding - Return the worst case padding that could result from unknown offset bits. More... | |
| bool | CC_ARM_AAPCS (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
| bool | CC_ARM_AAPCS_VFP (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
| bool | CC_ARM_APCS (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
| bool | CC_ARM_APCS_GHC (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
| bool | FastCC_ARM_APCS (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
| bool | CC_ARM_Win32_CFGuard_Check (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
| bool | RetCC_ARM_AAPCS (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
| bool | RetCC_ARM_AAPCS_VFP (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
| bool | RetCC_ARM_APCS (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
| bool | RetFastCC_ARM_APCS (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
| raw_ostream & | operator<< (raw_ostream &O, const ARMConstantPoolValue &V) |
| template<typename InstrType > | |
| bool | IsCPSRDead (const InstrType *Instr) |
| template<typename InstrType > | |
| bool | isV8EligibleForIT (const InstrType *Instr) |
| static bool | isAESPair (const MachineInstr *FirstMI, const MachineInstr &SecondMI) |
| static bool | isLiteralsPair (const MachineInstr *FirstMI, const MachineInstr &SecondMI) |
| static bool | shouldScheduleAdjacent (const TargetInstrInfo &TII, const TargetSubtargetInfo &TSI, const MachineInstr *FirstMI, const MachineInstr &SecondMI) |
| Check if the instr pair, FirstMI and SecondMI, should be fused together. More... | |
| std::unique_ptr< ScheduleDAGMutation > | createARMMacroFusionDAGMutation () |
| Note that you have to add: DAG.addMutation(createARMMacroFusionDAGMutation()); to ARMPassConfig::createMachineScheduler() to have an effect. More... | |
| void | initializeARMExecutionDomainFixPass (PassRegistry &) |
| template<> | |
| bool | IsCPSRDead< MCInst > (const MCInst *Instr) |
| static bool | isARMLowRegister (unsigned Reg) |
| isARMLowRegister - Returns true if the register is a low register (r0-r7). More... | |
| MCTargetStreamer * | createARMTargetAsmStreamer (MCStreamer &S, formatted_raw_ostream &OS, MCInstPrinter *InstPrint, bool isVerboseAsm) |
| MCTargetStreamer * | createARMNullTargetStreamer (MCStreamer &S) |
| MCTargetStreamer * | createARMObjectTargetStreamer (MCStreamer &S, const MCSubtargetInfo &STI) |
| MCCodeEmitter * | createARMLEMCCodeEmitter (const MCInstrInfo &MCII, const MCRegisterInfo &MRI, MCContext &Ctx) |
| MCCodeEmitter * | createARMBEMCCodeEmitter (const MCInstrInfo &MCII, const MCRegisterInfo &MRI, MCContext &Ctx) |
| MCAsmBackend * | createARMLEAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options) |
| MCAsmBackend * | createARMBEAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options) |
| MCStreamer * | createARMWinCOFFStreamer (MCContext &Context, std::unique_ptr< MCAsmBackend > &&MAB, std::unique_ptr< MCObjectWriter > &&OW, std::unique_ptr< MCCodeEmitter > &&Emitter, bool RelaxAll, bool IncrementalLinkerCompatible) |
| std::unique_ptr< MCObjectTargetWriter > | createARMELFObjectWriter (uint8_t OSABI) |
| Construct an ELF Mach-O object writer. More... | |
| std::unique_ptr< MCObjectTargetWriter > | createARMMachObjectWriter (bool Is64Bit, uint32_t CPUType, uint32_t CPUSubtype) |
| Construct an ARM Mach-O object writer. More... | |
| std::unique_ptr< MCObjectTargetWriter > | createARMWinCOFFObjectWriter (bool Is64Bit) |
| Construct an ARM PE/COFF object writer. More... | |
| MCRelocationInfo * | createARMMachORelocationInfo (MCContext &Ctx) |
| Construct ARM Mach-O relocation info. More... | |
| Target & | getTheARMLETarget () |
| Target & | getTheARMBETarget () |
| Target & | getTheThumbLETarget () |
| Target & | getTheThumbBETarget () |
| ARMCC::CondCodes | getITInstrPredicate (const MachineInstr &MI, unsigned &PredReg) |
| getITInstrPredicate - Valid only in Thumb2 mode. More... | |
| int | findFirstVPTPredOperandIdx (const MachineInstr &MI) |
| ARMVCC::VPTCodes | getVPTInstrPredicate (const MachineInstr &MI, unsigned &PredReg) |
| static unsigned | getARMVPTBlockMask (unsigned NumInsts) |
| static const char * | ARMVPTPredToString (ARMVCC::VPTCodes CC) |
| static unsigned | ARMVectorCondCodeFromString (StringRef CC) |
| static const char * | ARMCondCodeToString (ARMCC::CondCodes CC) |
| static unsigned | ARMCondCodeFromString (StringRef CC) |
| FunctionPass * | createAVRISelDag (AVRTargetMachine &TM, CodeGenOpt::Level OptLevel) |
| FunctionPass * | createAVRExpandPseudoPass () |
| FunctionPass * | createAVRFrameAnalyzerPass () |
| Creates instance of the frame analyzer pass. More... | |
| FunctionPass * | createAVRRelaxMemPass () |
| FunctionPass * | createAVRDynAllocaSRPass () |
| createAVRDynAllocaSRPass - returns an instance of the dynalloca stack pointer save/restore pass. More... | |
| FunctionPass * | createAVRBranchSelectionPass () |
| void | initializeAVRExpandPseudoPass (PassRegistry &) |
| void | initializeAVRRelaxMemPass (PassRegistry &) |
| static void | fixStackStores (MachineBasicBlock &MBB, MachineBasicBlock::iterator MI, const TargetInstrInfo &TII, bool insertPushes) |
| Replace pseudo store instructions that pass arguments through the stack with real instructions. More... | |
| template<> | |
| bool | AVRDAGToDAGISel::select< ISD::FrameIndex > (SDNode *N) |
| template<> | |
| bool | AVRDAGToDAGISel::select< ISD::STORE > (SDNode *N) |
| template<> | |
| bool | AVRDAGToDAGISel::select< ISD::LOAD > (SDNode *N) |
| template<> | |
| bool | AVRDAGToDAGISel::select< AVRISD::CALL > (SDNode *N) |
| template<> | |
| bool | AVRDAGToDAGISel::select< ISD::BRIND > (SDNode *N) |
| static AVRCC::CondCodes | intCCToAVRCC (ISD::CondCode CC) |
| IntCCToAVRCC - Convert a DAG integer condition code to an AVR CC. More... | |
| static void | parseFunctionArgs (const SmallVectorImpl< ISD::InputArg > &Ins, SmallVectorImpl< unsigned > &Out) |
| For each argument in a function store the number of pieces it is composed of. More... | |
| static void | parseExternFuncCallArgs (const SmallVectorImpl< ISD::OutputArg > &In, SmallVectorImpl< unsigned > &Out) |
| For external symbols there is no function prototype information so we have to rely directly on argument sizes. More... | |
| static StringRef | getFunctionName (TargetLowering::CallLoweringInfo &CLI) |
| static void | analyzeStandardArguments (TargetLowering::CallLoweringInfo *CLI, const Function *F, const DataLayout *TD, const SmallVectorImpl< ISD::OutputArg > *Outs, const SmallVectorImpl< ISD::InputArg > *Ins, CallingConv::ID CallConv, SmallVectorImpl< CCValAssign > &ArgLocs, CCState &CCInfo, bool IsCall, bool IsVarArg) |
| Analyze incoming and outgoing function arguments. More... | |
| static void | analyzeBuiltinArguments (TargetLowering::CallLoweringInfo &CLI, const Function *F, const DataLayout *TD, const SmallVectorImpl< ISD::OutputArg > *Outs, const SmallVectorImpl< ISD::InputArg > *Ins, CallingConv::ID CallConv, SmallVectorImpl< CCValAssign > &ArgLocs, CCState &CCInfo, bool IsCall, bool IsVarArg) |
| static void | analyzeArguments (TargetLowering::CallLoweringInfo *CLI, const Function *F, const DataLayout *TD, const SmallVectorImpl< ISD::OutputArg > *Outs, const SmallVectorImpl< ISD::InputArg > *Ins, CallingConv::ID CallConv, SmallVectorImpl< CCValAssign > &ArgLocs, CCState &CCInfo, bool IsCall, bool IsVarArg) |
| static bool | isCopyMulResult (MachineBasicBlock::iterator const &I) |
| static void | foldFrameOffset (MachineBasicBlock::iterator &II, int &Offset, unsigned DstReg) |
| Fold a frame offset shared between two add instructions into a single one. More... | |
| static StringRef | getCPU (StringRef CPU) |
| Processes a CPU name. More... | |
| static Reloc::Model | getEffectiveRelocModel (Optional< Reloc::Model > RM) |
| LLVM_EXTERNAL_VISIBILITY void | LLVMInitializeAVRTarget () |
| MCAsmBackend * | createAVRAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const llvm::MCTargetOptions &TO) |
| Creates an assembly backend for AVR. More... | |
| std::unique_ptr< MCObjectTargetWriter > | createAVRELFObjectWriter (uint8_t OSABI) |
| Creates an ELF object writer for AVR. More... | |
| static unsigned | getEFlagsForFeatureSet (const FeatureBitset &Features) |
| MCStreamer * | createAVRELFStreamer (Triple const &TT, MCContext &Context, std::unique_ptr< MCAsmBackend > MAB, std::unique_ptr< MCObjectWriter > OW, std::unique_ptr< MCCodeEmitter > CE) |
| MCInstrInfo * | createAVRMCInstrInfo () |
| MCCodeEmitter * | createAVRMCCodeEmitter (const MCInstrInfo &MCII, const MCRegisterInfo &MRI, MCContext &Ctx) |
| Creates a machine code emitter for AVR. More... | |
| Target & | getTheAVRTarget () |
| ModulePass * | createBPFAbstractMemberAccess (BPFTargetMachine *TM) |
| FunctionPass * | createBPFISelDag (BPFTargetMachine &TM) |
| FunctionPass * | createBPFMISimplifyPatchablePass () |
| FunctionPass * | createBPFMIPeepholePass () |
| FunctionPass * | createBPFMIPeepholeTruncElimPass () |
| FunctionPass * | createBPFMIPreEmitPeepholePass () |
| FunctionPass * | createBPFMIPreEmitCheckingPass () |
| void | initializeBPFAbstractMemberAccessPass (PassRegistry &) |
| void | initializeBPFMISimplifyPatchablePass (PassRegistry &) |
| void | initializeBPFMIPeepholePass (PassRegistry &) |
| void | initializeBPFMIPeepholeTruncElimPass (PassRegistry &) |
| void | initializeBPFMIPreEmitPeepholePass (PassRegistry &) |
| void | initializeBPFMIPreEmitCheckingPass (PassRegistry &) |
| MCCodeEmitter * | createBPFMCCodeEmitter (const MCInstrInfo &MCII, const MCRegisterInfo &MRI, MCContext &Ctx) |
| MCCodeEmitter * | createBPFbeMCCodeEmitter (const MCInstrInfo &MCII, const MCRegisterInfo &MRI, MCContext &Ctx) |
| MCAsmBackend * | createBPFAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options) |
| MCAsmBackend * | createBPFbeAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options) |
| std::unique_ptr< MCObjectTargetWriter > | createBPFELFObjectWriter (uint8_t OSABI) |
| Target & | getTheBPFleTarget () |
| Target & | getTheBPFbeTarget () |
| Target & | getTheBPFTarget () |
| raw_ostream & | operator<< (raw_ostream &OS, const BT::BitValue &BV) |
| raw_ostream & | operator<< (raw_ostream &OS, const BT::RegisterCell &RC) |
| ImmutablePass * | createHexagonTargetTransformInfoPass (const HexagonTargetMachine *TM) |
| Creates a Hexagon-specific Target Transformation Info pass. More... | |
| void | HexagonLowerToMC (const MCInstrInfo &MCII, const MachineInstr *MI, MCInst &MCB, HexagonAsmPrinter &AP) |
| void | initializeHexagonBitSimplifyPass (PassRegistry &Registry) |
| FunctionPass * | createHexagonBitSimplify () |
| FunctionPass * | createHexagonLoopRescheduling () |
| void | initializeHexagonLoopReschedulingPass (PassRegistry &) |
| raw_ostream & | operator<< (raw_ostream &OS, HexagonBlockRanges::IndexType Idx) |
| raw_ostream & | operator<< (raw_ostream &OS, const HexagonBlockRanges::IndexRange &IR) |
| raw_ostream & | operator<< (raw_ostream &OS, const HexagonBlockRanges::RangeList &RL) |
| raw_ostream & | operator<< (raw_ostream &OS, const HexagonBlockRanges::InstrIndexMap &M) |
| raw_ostream & | operator<< (raw_ostream &OS, const HexagonBlockRanges::PrintRangeMap &P) |
| FunctionPass * | createHexagonBranchRelaxation () |
| void | initializeHexagonBranchRelaxationPass (PassRegistry &) |
| FunctionPass * | createHexagonCFGOptimizer () |
| void | initializeHexagonCFGOptimizerPass (PassRegistry &) |
| void | initializeHexagonCommonGEPPass (PassRegistry &) |
| FunctionPass * | createHexagonCommonGEP () |
| void | initializeHexagonConstExtendersPass (PassRegistry &) |
| FunctionPass * | createHexagonConstExtenders () |
| FunctionPass * | createHexagonConstPropagationPass () |
| void | initializeHexagonConstPropagationPass (PassRegistry &Registry) |
| FunctionPass * | createHexagonCopyToCombine () |
| void | initializeHexagonCopyToCombinePass (PassRegistry &) |
| bool | is_TC3x (unsigned SchedClass) |
| bool | is_TC2early (unsigned SchedClass) |
| bool | is_TC4x (unsigned SchedClass) |
| bool | is_TC2 (unsigned SchedClass) |
| bool | is_TC1 (unsigned SchedClass) |
| FunctionPass * | createHexagonEarlyIfConversion () |
| void | initializeHexagonEarlyIfConversionPass (PassRegistry &Registry) |
| void | initializeHexagonExpandCondsetsPass (PassRegistry &) |
| FunctionPass * | createHexagonExpandCondsets () |
| FunctionPass * | createHexagonFixupHwLoops () |
| void | initializeHexagonFixupHwLoopsPass (PassRegistry &) |
| void | initializeHexagonCallFrameInformationPass (PassRegistry &) |
| FunctionPass * | createHexagonCallFrameInformation () |
| void | initializeHexagonGenExtractPass (PassRegistry &) |
| FunctionPass * | createHexagonGenExtract () |
| void | initializeHexagonGenInsertPass (PassRegistry &) |
| FunctionPass * | createHexagonGenInsert () |
| FunctionPass * | createHexagonGenMux () |
| void | initializeHexagonGenMuxPass (PassRegistry &Registry) |
| void | initializeHexagonGenPredicatePass (PassRegistry &Registry) |
| FunctionPass * | createHexagonGenPredicate () |
| FunctionPass * | createHexagonHardwareLoops () |
| void | initializeHexagonHardwareLoopsPass (PassRegistry &) |
| FunctionPass * | createHexagonISelDag (HexagonTargetMachine &TM, CodeGenOpt::Level OptLevel) |
| void | initializeHexagonLoopIdiomRecognizePass (PassRegistry &) |
| Pass * | createHexagonLoopIdiomPass () |
| FunctionPass * | createHexagonNewValueJump () |
| void | initializeHexagonNewValueJumpPass (PassRegistry &) |
| FunctionPass * | createHexagonOptAddrMode () |
| void | initializeHexagonOptAddrModePass (PassRegistry &) |
| FunctionPass * | createHexagonOptimizeSZextends () |
| void | initializeHexagonOptimizeSZextendsPass (PassRegistry &) |
| FunctionPass * | createHexagonPeephole () |
| void | initializeHexagonPeepholePass (PassRegistry &) |
| void | initializeHexagonRDFOptPass (PassRegistry &) |
| FunctionPass * | createHexagonRDFOpt () |
| FunctionPass * | createHexagonSplitConst32AndConst64 () |
| void | initializeHexagonSplitConst32AndConst64Pass (PassRegistry &) |
| FunctionPass * | createHexagonSplitDoubleRegs () |
| void | initializeHexagonSplitDoubleRegsPass (PassRegistry &) |
| FunctionPass * | createHexagonStoreWidening () |
| void | initializeHexagonStoreWideningPass (PassRegistry &) |
| void | initializeHexagonVectorLoopCarriedReusePass (PassRegistry &) |
| void | initializeHexagonPacketizerPass (PassRegistry &) |
| void | initializeHexagonVExtractPass (PassRegistry &) |
| Pass * | createHexagonVectorLoopCarriedReusePass () |
| FunctionPass * | createHexagonPacketizer (bool Minimal) |
| FunctionPass * | createHexagonVectorPrint () |
| FunctionPass * | createHexagonVExtract () |
| void | initializeHexagonVectorPrintPass (PassRegistry &) |
| MCStreamer * | createHexagonELFStreamer (Triple const &TT, MCContext &Context, std::unique_ptr< MCAsmBackend > MAB, std::unique_ptr< MCObjectWriter > OW, std::unique_ptr< MCCodeEmitter > CE) |
| bool | HexagonMCShuffle (MCContext &Context, bool Fatal, MCInstrInfo const &MCII, MCSubtargetInfo const &STI, MCInst &MCB) |
| bool | HexagonMCShuffle (MCContext &Context, MCInstrInfo const &MCII, MCSubtargetInfo const &STI, MCInst &MCB, MCInst const &AddMI, int fixupCount) |
| bool | HexagonMCShuffle (MCContext &Context, MCInstrInfo const &MCII, MCSubtargetInfo const &STI, MCInst &MCB, SmallVector< DuplexCandidate, 8 > possibleDuplexes) |
| MCInstrInfo * | createHexagonMCInstrInfo () |
| MCRegisterInfo * | createHexagonMCRegisterInfo (StringRef TT) |
| MCCodeEmitter * | createHexagonMCCodeEmitter (const MCInstrInfo &MCII, const MCRegisterInfo &MRI, MCContext &MCT) |
| MCAsmBackend * | createHexagonAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options) |
| std::unique_ptr< MCObjectTargetWriter > | createHexagonELFObjectWriter (uint8_t OSABI, StringRef CPU) |
| unsigned | HexagonGetLastSlot () |
| Target & | getTheHexagonTarget () |
| Target & | getTheLanaiTarget () |
| FunctionPass * | createLanaiISelDag (LanaiTargetMachine &TM) |
| FunctionPass * | createLanaiDelaySlotFillerPass (const LanaiTargetMachine &TM) |
| FunctionPass * | createLanaiMemAluCombinerPass () |
| FunctionPass * | createLanaiSetflagAluCombinerPass () |
| static bool | isSPLSOpcode (unsigned Opcode) |
| static bool | isRMOpcode (unsigned Opcode) |
| static bool | isRRMOpcode (unsigned Opcode) |
| void | initializeLanaiMemAluCombinerPass (PassRegistry &) |
| static unsigned | getLanaiRegisterNumbering (unsigned Reg) |
| static Lanai::Fixups | FixupKind (const MCExpr *Expr) |
| static unsigned | adjustPqBits (const MCInst &Inst, unsigned Value, unsigned PBitShift, unsigned QBitShift) |
| MCCodeEmitter * | createLanaiMCCodeEmitter (const MCInstrInfo &MCII, const MCRegisterInfo &MRI, MCContext &Ctx) |
| MCAsmBackend * | createLanaiAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options) |
| std::unique_ptr< MCObjectTargetWriter > | createLanaiELFObjectWriter (uint8_t OSABI) |
| MCStreamer & | operator<< (MCStreamer &OS, MipsABIFlagsSection &ABIFlagsSection) |
| MCELFStreamer * | createMipsELFStreamer (MCContext &Context, std::unique_ptr< MCAsmBackend > MAB, std::unique_ptr< MCObjectWriter > OW, std::unique_ptr< MCCodeEmitter > Emitter, bool RelaxAll) |
| MCCodeEmitter * | createMipsMCCodeEmitterEB (const MCInstrInfo &MCII, const MCRegisterInfo &MRI, MCContext &Ctx) |
| MCCodeEmitter * | createMipsMCCodeEmitterEL (const MCInstrInfo &MCII, const MCRegisterInfo &MRI, MCContext &Ctx) |
| bool | isBasePlusOffsetMemoryAccess (unsigned Opcode, unsigned *AddrIdx, bool *IsStore=nullptr) |
| bool | baseRegNeedsLoadStoreMask (unsigned Reg) |
| MCELFStreamer * | createMipsNaClELFStreamer (MCContext &Context, std::unique_ptr< MCAsmBackend > TAB, std::unique_ptr< MCObjectWriter > OW, std::unique_ptr< MCCodeEmitter > Emitter, bool RelaxAll) |
| MCAsmBackend * | createMipsAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options) |
| std::unique_ptr< MCObjectTargetWriter > | createMipsELFObjectWriter (const Triple &TT, bool IsN32) |
| ModulePass * | createMipsOs16Pass () |
| ModulePass * | createMips16HardFloatPass () |
| FunctionPass * | createMipsModuleISelDagPass () |
| FunctionPass * | createMipsOptimizePICCallPass () |
| Return an OptimizeCall object. More... | |
| FunctionPass * | createMipsDelaySlotFillerPass () |
| createMipsDelaySlotFillerPass - Returns a pass that fills in delay slots in Mips MachineFunctions More... | |
| FunctionPass * | createMipsBranchExpansion () |
| FunctionPass * | createMipsConstantIslandPass () |
| Returns a pass that converts branches to long branches. More... | |
| FunctionPass * | createMicroMipsSizeReducePass () |
| Returns an instance of the MicroMips size reduction pass. More... | |
| FunctionPass * | createMipsExpandPseudoPass () |
| createMipsExpandPseudoPass - returns an instance of the pseudo instruction expansion pass. More... | |
| FunctionPass * | createMipsPreLegalizeCombiner () |
| InstructionSelector * | createMipsInstructionSelector (const MipsTargetMachine &, MipsSubtarget &, MipsRegisterBankInfo &) |
| void | initializeMipsDelaySlotFillerPass (PassRegistry &) |
| void | initializeMipsBranchExpansionPass (PassRegistry &) |
| void | initializeMicroMipsSizeReducePass (PassRegistry &) |
| void | initializeMipsPreLegalizerCombinerPass (PassRegistry &) |
| FunctionPass * | createMips16ISelDag (MipsTargetMachine &TM, CodeGenOpt::Level OptLevel) |
| const MipsFrameLowering * | createMips16FrameLowering (const MipsSubtarget &ST) |
| Create MipsFrameLowering objects. More... | |
| const MipsFrameLowering * | createMipsSEFrameLowering (const MipsSubtarget &ST) |
| const MipsInstrInfo * | createMips16InstrInfo (const MipsSubtarget &STI) |
| Create MipsInstrInfo objects. More... | |
| const MipsInstrInfo * | createMipsSEInstrInfo (const MipsSubtarget &STI) |
| const MipsTargetLowering * | createMips16TargetLowering (const MipsTargetMachine &TM, const MipsSubtarget &STI) |
| Create MipsTargetLowering objects. More... | |
| const MipsTargetLowering * | createMipsSETargetLowering (const MipsTargetMachine &TM, const MipsSubtarget &STI) |
| FunctionPass * | createMipsSEISelDag (MipsTargetMachine &TM, CodeGenOpt::Level OptLevel) |
| Target & | getTheMipsTarget () |
| Target & | getTheMipselTarget () |
| Target & | getTheMips64Target () |
| Target & | getTheMips64elTarget () |
| MCTargetStreamer * | createMSP430ObjectTargetStreamer (MCStreamer &S, const MCSubtargetInfo &STI) |
| MCCodeEmitter * | createMSP430MCCodeEmitter (const MCInstrInfo &MCII, const MCRegisterInfo &MRI, MCContext &Ctx) |
| Creates a machine code emitter for MSP430. More... | |
| MCAsmBackend * | createMSP430MCAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options) |
| std::unique_ptr< MCObjectTargetWriter > | createMSP430ELFObjectWriter (uint8_t OSABI) |
| FunctionPass * | createMSP430ISelDag (MSP430TargetMachine &TM, CodeGenOpt::Level OptLevel) |
| createMSP430ISelDag - This pass converts a legalized DAG into a MSP430-specific DAG, ready for instruction scheduling. More... | |
| FunctionPass * | createMSP430BranchSelectionPass () |
| Returns an instance of the Branch Selection Pass. More... | |
| Target & | getTheMSP430Target () |
| FunctionPass * | createNVPTXISelDag (NVPTXTargetMachine &TM, llvm::CodeGenOpt::Level OptLevel) |
| createNVPTXISelDag - This pass converts a legalized DAG into a NVPTX-specific DAG, ready for instruction scheduling. More... | |
| ModulePass * | createNVPTXAssignValidGlobalNamesPass () |
| ModulePass * | createGenericToNVVMPass () |
| FunctionPass * | createNVVMIntrRangePass (unsigned int SmVersion) |
| FunctionPass * | createNVVMReflectPass (unsigned int SmVersion) |
| MachineFunctionPass * | createNVPTXPrologEpilogPass () |
| MachineFunctionPass * | createNVPTXReplaceImageHandlesPass () |
| FunctionPass * | createNVPTXImageOptimizerPass () |
| FunctionPass * | createNVPTXLowerArgsPass (const NVPTXTargetMachine *TM) |
| FunctionPass * | createNVPTXLowerAllocaPass () |
| MachineFunctionPass * | createNVPTXPeephole () |
| MachineFunctionPass * | createNVPTXProxyRegErasurePass () |
| void | initializeNVPTXAllocaHoistingPass (PassRegistry &) |
| FunctionPass * | createAllocaHoisting () |
| void | initializeNVPTXAssignValidGlobalNamesPass (PassRegistry &) |
| void | initializeGenericToNVVMPass (PassRegistry &) |
| void | initializeNVPTXLowerAggrCopiesPass (PassRegistry &) |
| FunctionPass * | createLowerAggrCopies () |
| void | initializeNVPTXLowerAllocaPass (PassRegistry &) |
| void | initializeNVPTXLowerArgsPass (PassRegistry &) |
| void | initializeNVPTXPeepholePass (PassRegistry &) |
| void | initializeNVPTXProxyRegErasurePass (PassRegistry &) |
| std::string | getNVPTXRegClassName (TargetRegisterClass const *RC) |
| std::string | getNVPTXRegClassStr (TargetRegisterClass const *RC) |
| void | initializeNVVMIntrRangePass (PassRegistry &) |
| void | initializeNVVMReflectPass (PassRegistry &) |
| void | clearAnnotationCache (const Module *Mod) |
| static void | cacheAnnotationFromMD (const MDNode *md, key_val_pair_t &retval) |
| static void | cacheAnnotationFromMD (const Module *m, const GlobalValue *gv) |
| bool | findOneNVVMAnnotation (const GlobalValue *gv, const std::string &prop, unsigned &retval) |
| bool | findAllNVVMAnnotation (const GlobalValue *gv, const std::string &prop, std::vector< unsigned > &retval) |
| bool | isTexture (const Value &val) |
| bool | isSurface (const Value &val) |
| bool | isSampler (const Value &val) |
| bool | isImageReadOnly (const Value &val) |
| bool | isImageWriteOnly (const Value &val) |
| bool | isImageReadWrite (const Value &val) |
| bool | isImage (const Value &val) |
| bool | isManaged (const Value &val) |
| std::string | getTextureName (const Value &val) |
| std::string | getSurfaceName (const Value &val) |
| std::string | getSamplerName (const Value &val) |
| bool | getMaxNTIDx (const Function &F, unsigned &x) |
| bool | getMaxNTIDy (const Function &F, unsigned &y) |
| bool | getMaxNTIDz (const Function &F, unsigned &z) |
| bool | getReqNTIDx (const Function &F, unsigned &x) |
| bool | getReqNTIDy (const Function &F, unsigned &y) |
| bool | getReqNTIDz (const Function &F, unsigned &z) |
| bool | getMinCTASm (const Function &F, unsigned &x) |
| bool | getMaxNReg (const Function &F, unsigned &x) |
| bool | isKernelFunction (const Function &F) |
| bool | getAlign (const Function &F, unsigned index, unsigned &align) |
| bool | getAlign (const CallInst &I, unsigned index, unsigned &align) |
| Target & | getTheNVPTXTarget32 () |
| Target & | getTheNVPTXTarget64 () |
| MCCodeEmitter * | createPPCMCCodeEmitter (const MCInstrInfo &MCII, const MCRegisterInfo &MRI, MCContext &Ctx) |
| MCAsmBackend * | createPPCAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options) |
| std::unique_ptr< MCObjectTargetWriter > | createPPCELFObjectWriter (bool Is64Bit, uint8_t OSABI) |
| Construct an PPC ELF object writer. More... | |
| std::unique_ptr< MCObjectTargetWriter > | createPPCMachObjectWriter (bool Is64Bit, uint32_t CPUType, uint32_t CPUSubtype) |
| Construct a PPC Mach-O object writer. More... | |
| std::unique_ptr< MCObjectTargetWriter > | createPPCXCOFFObjectWriter (bool Is64Bit) |
| Construct a PPC XCOFF object writer. More... | |
| static bool | isRunOfOnes (unsigned Val, unsigned &MB, unsigned &ME) |
| Returns true iff Val consists of one contiguous run of 1s with any number of 0s on either side. More... | |
| static bool | isRunOfOnes64 (uint64_t Val, unsigned &MB, unsigned &ME) |
| FunctionPass * | createPPCCTRLoops () |
| FunctionPass * | createPPCCTRLoopsVerify () |
| FunctionPass * | createPPCLoopInstrFormPrepPass (PPCTargetMachine &TM) |
| FunctionPass * | createPPCTOCRegDepsPass () |
| FunctionPass * | createPPCEarlyReturnPass () |
| FunctionPass * | createPPCVSXCopyPass () |
| FunctionPass * | createPPCVSXFMAMutatePass () |
| FunctionPass * | createPPCVSXSwapRemovalPass () |
| FunctionPass * | createPPCReduceCRLogicalsPass () |
| FunctionPass * | createPPCMIPeepholePass () |
| FunctionPass * | createPPCBranchSelectionPass () |
| FunctionPass * | createPPCBranchCoalescingPass () |
| createPPCBranchCoalescingPass - returns an instance of the Branch Coalescing Pass More... | |
| FunctionPass * | createPPCQPXLoadSplatPass () |
| FunctionPass * | createPPCISelDag (PPCTargetMachine &TM, CodeGenOpt::Level OL) |
| createPPCISelDag - This pass converts a legalized DAG into a PowerPC-specific DAG, ready for instruction scheduling. More... | |
| FunctionPass * | createPPCTLSDynamicCallPass () |
| FunctionPass * | createPPCBoolRetToIntPass () |
| FunctionPass * | createPPCExpandISELPass () |
| FunctionPass * | createPPCPreEmitPeepholePass () |
| void | LowerPPCMachineInstrToMCInst (const MachineInstr *MI, MCInst &OutMI, AsmPrinter &AP, bool IsDarwin) |
| bool | LowerPPCMachineOperandToMCOperand (const MachineOperand &MO, MCOperand &OutMO, AsmPrinter &AP, bool IsDarwin) |
| void | initializePPCCTRLoopsPass (PassRegistry &) |
| void | initializePPCCTRLoopsVerifyPass (PassRegistry &) |
| void | initializePPCLoopInstrFormPrepPass (PassRegistry &) |
| void | initializePPCTOCRegDepsPass (PassRegistry &) |
| void | initializePPCEarlyReturnPass (PassRegistry &) |
| void | initializePPCVSXCopyPass (PassRegistry &) |
| void | initializePPCVSXFMAMutatePass (PassRegistry &) |
| void | initializePPCVSXSwapRemovalPass (PassRegistry &) |
| void | initializePPCReduceCRLogicalsPass (PassRegistry &) |
| void | initializePPCBSelPass (PassRegistry &) |
| void | initializePPCBranchCoalescingPass (PassRegistry &) |
| void | initializePPCQPXLoadSplatPass (PassRegistry &) |
| void | initializePPCBoolRetToIntPass (PassRegistry &) |
| void | initializePPCExpandISELPass (PassRegistry &) |
| void | initializePPCPreEmitPeepholePass (PassRegistry &) |
| void | initializePPCTLSDynamicCallPass (PassRegistry &) |
| void | initializePPCMIPeepholePass (PassRegistry &) |
| ModulePass * | createPPCLowerMASSVEntriesPass () |
| void | initializePPCLowerMASSVEntriesPass (PassRegistry &) |
| bool | RetCC_PPC (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
| bool | RetCC_PPC64_ELF_FIS (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
| bool | RetCC_PPC_Cold (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
| bool | CC_PPC32_SVR4 (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
| bool | CC_PPC64_ELF_FIS (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
| bool | CC_PPC32_SVR4_ByVal (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
| bool | CC_PPC32_SVR4_VarArg (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
| static const MachineInstrBuilder & | addFrameReference (const MachineInstrBuilder &MIB, int FI, int Offset=0, bool mem=true) |
| addFrameReference - This function is used to add a reference to the base of an abstract object on the stack frame of the current function. More... | |
| bool | isIntS16Immediate (SDNode *N, int16_t &Imm) |
| isIntS16Immediate - This method tests to see if the node is either a 32-bit or 64-bit immediate, and if the value can be accurately represented as a sign extension from a 16-bit value. More... | |
| bool | isIntS16Immediate (SDValue Op, int16_t &Imm) |
| static unsigned | getCRFromCRBit (unsigned SrcReg) |
| Target & | getThePPC32Target () |
| Target & | getThePPC64Target () |
| Target & | getThePPC64LETarget () |
| MCCodeEmitter * | createRISCVMCCodeEmitter (const MCInstrInfo &MCII, const MCRegisterInfo &MRI, MCContext &Ctx) |
| MCAsmBackend * | createRISCVAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options) |
| std::unique_ptr< MCObjectTargetWriter > | createRISCVELFObjectWriter (uint8_t OSABI, bool Is64Bit) |
| void | LowerRISCVMachineInstrToMCInst (const MachineInstr *MI, MCInst &OutMI, const AsmPrinter &AP) |
| bool | LowerRISCVMachineOperandToMCOperand (const MachineOperand &MO, MCOperand &MCOp, const AsmPrinter &AP) |
| FunctionPass * | createRISCVISelDag (RISCVTargetMachine &TM) |
| FunctionPass * | createRISCVMergeBaseOffsetOptPass () |
| Returns an instance of the Merge Base Offset Optimization pass. More... | |
| void | initializeRISCVMergeBaseOffsetOptPass (PassRegistry &) |
| FunctionPass * | createRISCVExpandPseudoPass () |
| void | initializeRISCVExpandPseudoPass (PassRegistry &) |
| InstructionSelector * | createRISCVInstructionSelector (const RISCVTargetMachine &, RISCVSubtarget &, RISCVRegisterBankInfo &) |
| Target & | getTheRISCV32Target () |
| Target & | getTheRISCV64Target () |
| MCCodeEmitter * | createSparcMCCodeEmitter (const MCInstrInfo &MCII, const MCRegisterInfo &MRI, MCContext &Ctx) |
| MCAsmBackend * | createSparcAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options) |
| std::unique_ptr< MCObjectTargetWriter > | createSparcELFObjectWriter (bool Is64Bit, uint8_t OSABI) |
| FunctionPass * | createSparcISelDag (SparcTargetMachine &TM) |
| createSparcISelDag - This pass converts a legalized DAG into a SPARC-specific DAG, ready for instruction scheduling. More... | |
| FunctionPass * | createSparcDelaySlotFillerPass () |
| createSparcDelaySlotFillerPass - Returns a pass that fills in delay slots in Sparc MachineFunctions More... | |
| void | LowerSparcMachineInstrToMCInst (const MachineInstr *MI, MCInst &OutMI, AsmPrinter &AP) |
| static const char * | SPARCCondCodeToString (SPCC::CondCodes CC) |
| static unsigned | HI22 (int64_t imm) |
| static unsigned | LO10 (int64_t imm) |
| static unsigned | HIX22 (int64_t imm) |
| static unsigned | LOX10 (int64_t imm) |
| Target & | getTheSparcTarget () |
| Target & | getTheSparcV9Target () |
| Target & | getTheSparcelTarget () |
| MCCodeEmitter * | createSystemZMCCodeEmitter (const MCInstrInfo &MCII, const MCRegisterInfo &MRI, MCContext &Ctx) |
| MCAsmBackend * | createSystemZMCAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options) |
| std::unique_ptr< MCObjectTargetWriter > | createSystemZObjectWriter (uint8_t OSABI) |
| FunctionPass * | createSystemZISelDag (SystemZTargetMachine &TM, CodeGenOpt::Level OptLevel) |
| FunctionPass * | createSystemZElimComparePass (SystemZTargetMachine &TM) |
| FunctionPass * | createSystemZShortenInstPass (SystemZTargetMachine &TM) |
| FunctionPass * | createSystemZLongBranchPass (SystemZTargetMachine &TM) |
| FunctionPass * | createSystemZLDCleanupPass (SystemZTargetMachine &TM) |
| FunctionPass * | createSystemZPostRewritePass (SystemZTargetMachine &TM) |
| FunctionPass * | createSystemZTDCPass () |
| bool | CC_SystemZ_I128Indirect (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State) |
| bool | CC_SystemZ_GHC_Error (unsigned &, MVT &, MVT &, CCValAssign::LocInfo &, ISD::ArgFlagsTy &, CCState &) |
| static const MachineInstrBuilder & | addFrameReference (const MachineInstrBuilder &MIB, int FI) |
| Add a BDX memory reference for frame object FI to MIB. More... | |
| void | initializeSystemZPostRewritePass (PassRegistry &) |
| void | initializeSystemZTDCPassPass (PassRegistry &) |
| Target & | getTheSystemZTarget () |
| Target & | getTheVETarget () |
| FunctionPass * | createVEISelDag (VETargetMachine &TM) |
| createVEISelDag - This pass converts a legalized DAG into a VE-specific DAG, ready for instruction scheduling. More... | |
| FunctionPass * | createVEPromoteToI1Pass () |
| void | LowerVEMachineInstrToMCInst (const MachineInstr *MI, MCInst &OutMI, AsmPrinter &AP) |
| static const char * | VECondCodeToString (VECC::CondCodes CC) |
| static int64_t | HI32 (int64_t imm) |
| static int64_t | LO32 (int64_t imm) |
| MCCodeEmitter * | createWebAssemblyMCCodeEmitter (const MCInstrInfo &MCII) |
| MCAsmBackend * | createWebAssemblyAsmBackend (const Triple &TT) |
| std::unique_ptr< MCObjectTargetWriter > | createWebAssemblyWasmObjectWriter (bool Is64Bit, bool IsEmscripten) |
| Target & | getTheWebAssemblyTarget32 () |
| Target & | getTheWebAssemblyTarget64 () |
| ModulePass * | createWebAssemblyLowerEmscriptenEHSjLj (bool DoEH, bool DoSjLj) |
| ModulePass * | createWebAssemblyLowerGlobalDtors () |
| ModulePass * | createWebAssemblyAddMissingPrototypes () |
| ModulePass * | createWebAssemblyFixFunctionBitcasts () |
| FunctionPass * | createWebAssemblyOptimizeReturned () |
| FunctionPass * | createWebAssemblyISelDag (WebAssemblyTargetMachine &TM, CodeGenOpt::Level OptLevel) |
| This pass converts a legalized DAG into a WebAssembly-specific DAG, ready for instruction scheduling. More... | |
| FunctionPass * | createWebAssemblyArgumentMove () |
| FunctionPass * | createWebAssemblySetP2AlignOperands () |
| FunctionPass * | createWebAssemblyReplacePhysRegs () |
| FunctionPass * | createWebAssemblyPrepareForLiveIntervals () |
| FunctionPass * | createWebAssemblyOptimizeLiveIntervals () |
| FunctionPass * | createWebAssemblyMemIntrinsicResults () |
| FunctionPass * | createWebAssemblyRegStackify () |
| FunctionPass * | createWebAssemblyRegColoring () |
| FunctionPass * | createWebAssemblyFixIrreducibleControlFlow () |
| FunctionPass * | createWebAssemblyLateEHPrepare () |
| FunctionPass * | createWebAssemblyCFGSort () |
| FunctionPass * | createWebAssemblyCFGStackify () |
| FunctionPass * | createWebAssemblyExplicitLocals () |
| FunctionPass * | createWebAssemblyLowerBrUnless () |
| FunctionPass * | createWebAssemblyRegNumbering () |
| FunctionPass * | createWebAssemblyPeephole () |
| FunctionPass * | createWebAssemblyCallIndirectFixup () |
| void | initializeWebAssemblyAddMissingPrototypesPass (PassRegistry &) |
| void | initializeWebAssemblyLowerEmscriptenEHSjLjPass (PassRegistry &) |
| void | initializeLowerGlobalDtorsPass (PassRegistry &) |
| void | initializeFixFunctionBitcastsPass (PassRegistry &) |
| void | initializeOptimizeReturnedPass (PassRegistry &) |
| void | initializeWebAssemblyArgumentMovePass (PassRegistry &) |
| void | initializeWebAssemblySetP2AlignOperandsPass (PassRegistry &) |
| void | initializeWebAssemblyReplacePhysRegsPass (PassRegistry &) |
| void | initializeWebAssemblyPrepareForLiveIntervalsPass (PassRegistry &) |
| void | initializeWebAssemblyOptimizeLiveIntervalsPass (PassRegistry &) |
| void | initializeWebAssemblyMemIntrinsicResultsPass (PassRegistry &) |
| void | initializeWebAssemblyRegStackifyPass (PassRegistry &) |
| void | initializeWebAssemblyRegColoringPass (PassRegistry &) |
| void | initializeWebAssemblyFixIrreducibleControlFlowPass (PassRegistry &) |
| void | initializeWebAssemblyLateEHPreparePass (PassRegistry &) |
| void | initializeWebAssemblyExceptionInfoPass (PassRegistry &) |
| void | initializeWebAssemblyCFGSortPass (PassRegistry &) |
| void | initializeWebAssemblyCFGStackifyPass (PassRegistry &) |
| void | initializeWebAssemblyExplicitLocalsPass (PassRegistry &) |
| void | initializeWebAssemblyLowerBrUnlessPass (PassRegistry &) |
| void | initializeWebAssemblyRegNumberingPass (PassRegistry &) |
| void | initializeWebAssemblyPeepholePass (PassRegistry &) |
| void | initializeWebAssemblyCallIndirectFixupPass (PassRegistry &) |
| raw_ostream & | operator<< (raw_ostream &OS, const WebAssemblyException &WE) |
| void | computeLegalValueVTs (const Function &F, const TargetMachine &TM, Type *Ty, SmallVectorImpl< MVT > &ValueVTs) |
| void | computeSignatureVTs (const FunctionType *Ty, const Function &F, const TargetMachine &TM, SmallVectorImpl< MVT > &Params, SmallVectorImpl< MVT > &Results) |
| void | valTypesFromMVTs (const ArrayRef< MVT > &In, SmallVectorImpl< wasm::ValType > &Out) |
| std::unique_ptr< wasm::WasmSignature > | signatureFromMVTs (const SmallVectorImpl< MVT > &Results, const SmallVectorImpl< MVT > &Params) |
| void | getLibcallSignature (const WebAssemblySubtarget &Subtarget, RTLIB::Libcall LC, SmallVectorImpl< wasm::ValType > &Rets, SmallVectorImpl< wasm::ValType > &Params) |
| void | getLibcallSignature (const WebAssemblySubtarget &Subtarget, const char *Name, SmallVectorImpl< wasm::ValType > &Rets, SmallVectorImpl< wasm::ValType > &Params) |
| bool | isImmSExti16i8Value (uint64_t Value) |
| bool | isImmSExti32i8Value (uint64_t Value) |
| bool | isImmSExti64i8Value (uint64_t Value) |
| bool | isImmSExti64i32Value (uint64_t Value) |
| bool | isImmUnsignedi8Value (uint64_t Value) |
| bool | isImmUnsignedi4Value (uint64_t Value) |
| bool | EmitAnyX86InstComments (const MCInst *MI, raw_ostream &OS, const MCInstrInfo &MCII) |
| EmitAnyX86InstComments - This function decodes x86 instructions and prints newline terminated strings to the specified string if desired. More... | |
| MCCodeEmitter * | createX86MCCodeEmitter (const MCInstrInfo &MCII, const MCRegisterInfo &MRI, MCContext &Ctx) |
| MCAsmBackend * | createX86_32AsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options) |
| MCAsmBackend * | createX86_64AsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options) |
| MCTargetStreamer * | createX86AsmTargetStreamer (MCStreamer &S, formatted_raw_ostream &OS, MCInstPrinter *InstPrint, bool isVerboseAsm) |
| Implements X86-only directives for assembly emission. More... | |
| MCTargetStreamer * | createX86ObjectTargetStreamer (MCStreamer &OS, const MCSubtargetInfo &STI) |
| Implements X86-only directives for object files. More... | |
| MCStreamer * | createX86WinCOFFStreamer (MCContext &C, std::unique_ptr< MCAsmBackend > &&AB, std::unique_ptr< MCObjectWriter > &&OW, std::unique_ptr< MCCodeEmitter > &&CE, bool RelaxAll, bool IncrementalLinkerCompatible) |
| Construct an X86 Windows COFF machine code streamer which will generate PE/COFF format object files. More... | |
| std::unique_ptr< MCObjectTargetWriter > | createX86MachObjectWriter (bool Is64Bit, uint32_t CPUType, uint32_t CPUSubtype) |
| Construct an X86 Mach-O object writer. More... | |
| std::unique_ptr< MCObjectTargetWriter > | createX86ELFObjectWriter (bool IsELF64, uint8_t OSABI, uint16_t EMachine) |
| Construct an X86 ELF object writer. More... | |
| std::unique_ptr< MCObjectTargetWriter > | createX86WinCOFFObjectWriter (bool Is64Bit) |
| Construct an X86 Win COFF object writer. More... | |
| MCRegister | getX86SubSuperRegister (MCRegister, unsigned, bool High=false) |
| Returns the sub or super register of a specific X86 register. More... | |
| MCRegister | getX86SubSuperRegisterOrZero (MCRegister, unsigned, bool High=false) |
| Returns the sub or super register of a specific X86 register. More... | |
| Target & | getTheX86_32Target () |
| Target & | getTheX86_64Target () |
| void | DecodeINSERTPSMask (unsigned Imm, SmallVectorImpl< int > &ShuffleMask) |
| Decode a 128-bit INSERTPS instruction as a v4f32 shuffle mask. More... | |
| void | DecodeInsertElementMask (unsigned NumElts, unsigned Idx, unsigned Len, SmallVectorImpl< int > &ShuffleMask) |
| void | DecodeMOVHLPSMask (unsigned NElts, SmallVectorImpl< int > &ShuffleMask) |
| Decode a MOVHLPS instruction as a v2f64/v4f32 shuffle mask. More... | |
| void | DecodeMOVLHPSMask (unsigned NElts, SmallVectorImpl< int > &ShuffleMask) |
| Decode a MOVLHPS instruction as a v2f64/v4f32 shuffle mask. More... | |
| void | DecodeMOVSLDUPMask (unsigned NumElts, SmallVectorImpl< int > &ShuffleMask) |
| void | DecodeMOVSHDUPMask (unsigned NumElts, SmallVectorImpl< int > &ShuffleMask) |
| void | DecodeMOVDDUPMask (unsigned NumElts, SmallVectorImpl< int > &ShuffleMask) |
| void | DecodePSLLDQMask (unsigned NumElts, unsigned Imm, SmallVectorImpl< int > &ShuffleMask) |
| void | DecodePSRLDQMask (unsigned NumElts, unsigned Imm, SmallVectorImpl< int > &ShuffleMask) |
| void | DecodePALIGNRMask (unsigned NumElts, unsigned Imm, SmallVectorImpl< int > &ShuffleMask) |
| void | DecodeVALIGNMask (unsigned NumElts, unsigned Imm, SmallVectorImpl< int > &ShuffleMask) |
| void | DecodePSHUFMask (unsigned NumElts, unsigned ScalarBits, unsigned Imm, SmallVectorImpl< int > &ShuffleMask) |
| DecodePSHUFMask - This decodes the shuffle masks for pshufw, pshufd, and vpermilp*. More... | |
| void | DecodePSHUFHWMask (unsigned NumElts, unsigned Imm, SmallVectorImpl< int > &ShuffleMask) |
| Decodes the shuffle masks for pshufhw. More... | |
| void | DecodePSHUFLWMask (unsigned NumElts, unsigned Imm, SmallVectorImpl< int > &ShuffleMask) |
| Decodes the shuffle masks for pshuflw. More... | |
| void | DecodePSWAPMask (unsigned NumElts, SmallVectorImpl< int > &ShuffleMask) |
| Decodes a PSWAPD 3DNow! instruction. More... | |
| void | DecodeSHUFPMask (unsigned NumElts, unsigned ScalarBits, unsigned Imm, SmallVectorImpl< int > &ShuffleMask) |
| DecodeSHUFPMask - This decodes the shuffle masks for shufp*. More... | |
| void | DecodeUNPCKHMask (unsigned NumElts, unsigned ScalarBits, SmallVectorImpl< int > &ShuffleMask) |
| DecodeUNPCKHMask - This decodes the shuffle masks for unpckhps/unpckhpd and punpckh*. More... | |
| void | DecodeUNPCKLMask (unsigned NumElts, unsigned ScalarBits, SmallVectorImpl< int > &ShuffleMask) |
| DecodeUNPCKLMask - This decodes the shuffle masks for unpcklps/unpcklpd and punpckl*. More... | |
| void | DecodeVectorBroadcast (unsigned NumElts, SmallVectorImpl< int > &ShuffleMask) |
| Decodes a broadcast of the first element of a vector. More... | |
| void | DecodeSubVectorBroadcast (unsigned DstNumElts, unsigned SrcNumElts, SmallVectorImpl< int > &ShuffleMask) |
| Decodes a broadcast of a subvector to a larger vector type. More... | |
| void | decodeVSHUF64x2FamilyMask (unsigned NumElts, unsigned ScalarSize, unsigned Imm, SmallVectorImpl< int > &ShuffleMask) |
| Decode a shuffle packed values at 128-bit granularity (SHUFF32x4/SHUFF64x2/SHUFI32x4/SHUFI64x2) immediate mask into a shuffle mask. More... | |
| void | DecodeVPERM2X128Mask (unsigned NumElts, unsigned Imm, SmallVectorImpl< int > &ShuffleMask) |
| void | DecodePSHUFBMask (ArrayRef< uint64_t > RawMask, const APInt &UndefElts, SmallVectorImpl< int > &ShuffleMask) |
| Decode a PSHUFB mask from a raw array of constants such as from BUILD_VECTOR. More... | |
| void | DecodeBLENDMask (unsigned NumElts, unsigned Imm, SmallVectorImpl< int > &ShuffleMask) |
| Decode a BLEND immediate mask into a shuffle mask. More... | |
| void | DecodeVPPERMMask (ArrayRef< uint64_t > RawMask, const APInt &UndefElts, SmallVectorImpl< int > &ShuffleMask) |
| Decode a VPPERM mask from a raw array of constants such as from BUILD_VECTOR. More... | |
| void | DecodeVPERMMask (unsigned NumElts, unsigned Imm, SmallVectorImpl< int > &ShuffleMask) |
| DecodeVPERMMask - this decodes the shuffle masks for VPERMQ/VPERMPD. More... | |
| void | DecodeZeroExtendMask (unsigned SrcScalarBits, unsigned DstScalarBits, unsigned NumDstElts, bool IsAnyExtend, SmallVectorImpl< int > &ShuffleMask) |
| Decode a zero extension instruction as a shuffle mask. More... | |
| void | DecodeZeroMoveLowMask (unsigned NumElts, SmallVectorImpl< int > &ShuffleMask) |
| Decode a move lower and zero upper instruction as a shuffle mask. More... | |
| void | DecodeScalarMoveMask (unsigned NumElts, bool IsLoad, SmallVectorImpl< int > &ShuffleMask) |
| Decode a scalar float move instruction as a shuffle mask. More... | |
| void | DecodeEXTRQIMask (unsigned NumElts, unsigned EltSize, int Len, int Idx, SmallVectorImpl< int > &ShuffleMask) |
| Decode a SSE4A EXTRQ instruction as a shuffle mask. More... | |
| void | DecodeINSERTQIMask (unsigned NumElts, unsigned EltSize, int Len, int Idx, SmallVectorImpl< int > &ShuffleMask) |
| Decode a SSE4A INSERTQ instruction as a shuffle mask. More... | |
| void | DecodeVPERMILPMask (unsigned NumElts, unsigned ScalarBits, ArrayRef< uint64_t > RawMask, const APInt &UndefElts, SmallVectorImpl< int > &ShuffleMask) |
| Decode a VPERMILPD/VPERMILPS variable mask from a raw array of constants. More... | |
| void | DecodeVPERMIL2PMask (unsigned NumElts, unsigned ScalarBits, unsigned M2Z, ArrayRef< uint64_t > RawMask, const APInt &UndefElts, SmallVectorImpl< int > &ShuffleMask) |
| Decode a VPERMIL2PD/VPERMIL2PS variable mask from a raw array of constants. More... | |
| void | DecodeVPERMVMask (ArrayRef< uint64_t > RawMask, const APInt &UndefElts, SmallVectorImpl< int > &ShuffleMask) |
| Decode a VPERM W/D/Q/PS/PD mask from a raw array of constants. More... | |
| void | DecodeVPERMV3Mask (ArrayRef< uint64_t > RawMask, const APInt &UndefElts, SmallVectorImpl< int > &ShuffleMask) |
| Decode a VPERMT2 W/D/Q/PS/PD mask from a raw array of constants. More... | |
| FunctionPass * | createX86ISelDag (X86TargetMachine &TM, CodeGenOpt::Level OptLevel) |
| This pass converts a legalized DAG into a X86-specific DAG, ready for instruction scheduling. More... | |
| FunctionPass * | createX86GlobalBaseRegPass () |
| This pass initializes a global base register for PIC on x86-32. More... | |
| FunctionPass * | createCleanupLocalDynamicTLSPass () |
| This pass combines multiple accesses to local-dynamic TLS variables so that the TLS base address for the module is only fetched once per execution path through the function. More... | |
| FunctionPass * | createX86FloatingPointStackifierPass () |
| This function returns a pass which converts floating-point register references and pseudo instructions into floating-point stack references and physical instructions. More... | |
| FunctionPass * | createX86IssueVZeroUpperPass () |
| This pass inserts AVX vzeroupper instructions before each call to avoid transition penalty between functions encoded with AVX and SSE. More... | |
| FunctionPass * | createX86IndirectBranchTrackingPass () |
| This pass inserts ENDBR instructions before indirect jump/call destinations as part of CET IBT mechanism. More... | |
| FunctionPass * | createX86PadShortFunctions () |
| Return a pass that pads short functions with NOOPs. More... | |
| FunctionPass * | createX86FixupLEAs () |
| Return a pass that selectively replaces certain instructions (like add, sub, inc, dec, some shifts, and some multiplies) by equivalent LEA instructions, in order to eliminate execution delays in some processors. More... | |
| FunctionPass * | createX86OptimizeLEAs () |
| Return a pass that removes redundant LEA instructions and redundant address recalculations. More... | |
| FunctionPass * | createX86FixupSetCC () |
| Return a pass that transforms setcc + movzx pairs into xor + setcc. More... | |
| FunctionPass * | createX86CondBrFolding () |
| Return a pass that folds conditional branch jumps. More... | |
| FunctionPass * | createX86AvoidStoreForwardingBlocks () |
| Return a pass that avoids creating store forward block issues in the hardware. More... | |
| FunctionPass * | createX86FlagsCopyLoweringPass () |
| Return a pass that lowers EFLAGS copy pseudo instructions. More... | |
| FunctionPass * | createX86WinAllocaExpander () |
| Return a pass that expands WinAlloca pseudo-instructions. More... | |
| FunctionPass * | createX86AvoidTrailingCallPass () |
| Return a pass that inserts int3 at the end of the function if it ends with a CALL instruction. More... | |
| FunctionPass * | createX86CallFrameOptimization () |
| Return a pass that optimizes the code-size of x86 call sequences. More... | |
| FunctionPass * | createX86WinEHStatePass () |
| Return an IR pass that inserts EH registration stack objects and explicit EH state updates. More... | |
| FunctionPass * | createX86ExpandPseudoPass () |
| Return a Machine IR pass that expands X86-specific pseudo instructions into a sequence of actual instructions. More... | |
| FunctionPass * | createX86CmovConverterPass () |
| This pass converts X86 cmov instructions into branch when profitable. More... | |
| FunctionPass * | createX86FixupBWInsts () |
| Return a Machine IR pass that selectively replaces certain byte and word instructions by equivalent 32 bit instructions, in order to eliminate partial register usage, false dependences on the upper portions of registers, and to save code size. More... | |
| FunctionPass * | createX86DomainReassignmentPass () |
| Return a Machine IR pass that reassigns instruction chains from one domain to another, when profitable. More... | |
| FunctionPass * | createX86EvexToVexInsts () |
| This pass replaces EVEX encoded of AVX-512 instructiosn by VEX encoding when possible in order to reduce code size. More... | |
| FunctionPass * | createX86RetpolineThunksPass () |
| This pass creates the thunks for the retpoline feature. More... | |
| FunctionPass * | createX86DiscriminateMemOpsPass () |
| This pass ensures instructions featuring a memory operand have distinctive <LineNumber, Discriminator> (with respect to eachother) More... | |
| FunctionPass * | createX86InsertPrefetchPass () |
| This pass applies profiling information to insert cache prefetches. More... | |
| InstructionSelector * | createX86InstructionSelector (const X86TargetMachine &TM, X86Subtarget &, X86RegisterBankInfo &) |
| FunctionPass * | createX86SpeculativeLoadHardeningPass () |
| void | initializeEvexToVexInstPassPass (PassRegistry &) |
| void | initializeFixupBWInstPassPass (PassRegistry &) |
| void | initializeFixupLEAPassPass (PassRegistry &) |
| void | initializeFPSPass (PassRegistry &) |
| void | initializeWinEHStatePassPass (PassRegistry &) |
| void | initializeX86AvoidSFBPassPass (PassRegistry &) |
| void | initializeX86CallFrameOptimizationPass (PassRegistry &) |
| void | initializeX86CmovConverterPassPass (PassRegistry &) |
| void | initializeX86CondBrFoldingPassPass (PassRegistry &) |
| void | initializeX86DomainReassignmentPass (PassRegistry &) |
| void | initializeX86ExecutionDomainFixPass (PassRegistry &) |
| void | initializeX86ExpandPseudoPass (PassRegistry &) |
| void | initializeX86FlagsCopyLoweringPassPass (PassRegistry &) |
| void | initializeX86OptimizeLEAPassPass (PassRegistry &) |
| void | initializeX86SpeculativeLoadHardeningPassPass (PassRegistry &) |
| bool | RetCC_X86 (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
| bool | CC_X86 (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
| static X86AddressMode | getAddressFromInstr (const MachineInstr *MI, unsigned Operand) |
| Compute the addressing mode from an machine instruction starting with the given operand. More... | |
| static const MachineInstrBuilder & | addDirectMem (const MachineInstrBuilder &MIB, unsigned Reg) |
| addDirectMem - This function is used to add a direct memory reference to the current instruction – that is, a dereference of an address in a register, with no scale, index or displacement. More... | |
| static void | setDirectAddressInInstr (MachineInstr *MI, unsigned Operand, unsigned Reg) |
| Replace the address used in the instruction with the direct memory reference. More... | |
| static const MachineInstrBuilder & | addOffset (const MachineInstrBuilder &MIB, int Offset) |
| static const MachineInstrBuilder & | addOffset (const MachineInstrBuilder &MIB, const MachineOperand &Offset) |
| static const MachineInstrBuilder & | addRegOffset (const MachineInstrBuilder &MIB, unsigned Reg, bool isKill, int Offset) |
| addRegOffset - This function is used to add a memory reference of the form [Reg + Offset], i.e., one with no scale or index, but with a displacement. More... | |
| static const MachineInstrBuilder & | addRegReg (const MachineInstrBuilder &MIB, unsigned Reg1, bool isKill1, unsigned Reg2, bool isKill2) |
| addRegReg - This function is used to add a memory reference of the form: [Reg + Reg]. More... | |
| static const MachineInstrBuilder & | addFullAddress (const MachineInstrBuilder &MIB, const X86AddressMode &AM) |
| static const MachineInstrBuilder & | addFrameReference (const MachineInstrBuilder &MIB, int FI, int Offset=0) |
| addFrameReference - This function is used to add a reference to the base of an abstract object on the stack frame of the current function. More... | |
| static const MachineInstrBuilder & | addConstantPoolReference (const MachineInstrBuilder &MIB, unsigned CPI, unsigned GlobalBaseReg, unsigned char OpFlags) |
| addConstantPoolReference - This function is used to add a reference to the base of a constant value spilled to the per-function constant pool. More... | |
| const X86InstrFMA3Group * | getFMA3Group (unsigned Opcode, uint64_t TSFlags) |
Returns a reference to a group of FMA3 opcodes to where the given Opcode is included. More... | |
| const X86MemoryFoldTableEntry * | lookupTwoAddrFoldTable (unsigned RegOp) |
| const X86MemoryFoldTableEntry * | lookupFoldTable (unsigned RegOp, unsigned OpNum) |
| const X86MemoryFoldTableEntry * | lookupUnfoldTable (unsigned MemOp) |
| static bool | isGlobalStubReference (unsigned char TargetFlag) |
| isGlobalStubReference - Return true if the specified TargetFlag operand is a reference to a stub for a global, not the global itself. More... | |
| static bool | isGlobalRelativeToPICBase (unsigned char TargetFlag) |
| isGlobalRelativeToPICBase - Return true if the specified global value reference is relative to a 32-bit PIC base (X86ISD::GlobalBaseReg). More... | |
| static bool | isScale (const MachineOperand &MO) |
| static bool | isLeaMem (const MachineInstr &MI, unsigned Op) |
| static bool | isMem (const MachineInstr &MI, unsigned Op) |
| static const IntrinsicData * | getIntrinsicWithChain (unsigned IntNo) |
| static const IntrinsicData * | getIntrinsicWithoutChain (unsigned IntNo) |
| static void | verifyIntrinsicTables () |
| template<typename T = int> | |
| void | createUnpackShuffleMask (MVT VT, SmallVectorImpl< T > &Mask, bool Lo, bool Unary) |
| Generate unpacklo/unpackhi shuffle mask. More... | |
| template<typename T > | |
| void | scaleShuffleMask (size_t Scale, ArrayRef< T > Mask, SmallVectorImpl< T > &ScaledMask) |
| Helper function to scale a shuffle or target shuffle mask, replacing each mask index with the scaled sequential indices for an equivalent narrowed mask. More... | |
| std::unique_ptr< ScheduleDAGMutation > | createX86MacroFusionDAGMutation () |
| Note that you have to add: DAG.addMutation(createX86MacroFusionDAGMutation()); to X86PassConfig::createMachineScheduler() to have an effect. More... | |
| static bool | extractConstantMask (const Constant *C, unsigned MaskEltSizeInBits, APInt &UndefElts, SmallVectorImpl< uint64_t > &RawMask) |
| void | DecodePSHUFBMask (const Constant *C, unsigned Width, SmallVectorImpl< int > &ShuffleMask) |
| Decode a PSHUFB mask from an IR-level vector constant. More... | |
| void | DecodeVPERMILPMask (const Constant *C, unsigned ElSize, unsigned Width, SmallVectorImpl< int > &ShuffleMask) |
| Decode a VPERMILP variable mask from an IR-level vector constant. More... | |
| void | DecodeVPERMIL2PMask (const Constant *C, unsigned MatchImm, unsigned ElSize, unsigned Width, SmallVectorImpl< int > &ShuffleMask) |
| Decode a VPERMILP2 variable mask from an IR-level vector constant. More... | |
| void | DecodeVPPERMMask (const Constant *C, unsigned Width, SmallVectorImpl< int > &ShuffleMask) |
| Decode a VPPERM variable mask from an IR-level vector constant. More... | |
| void | DecodeVPERMVMask (const Constant *C, unsigned ElSize, unsigned Width, SmallVectorImpl< int > &ShuffleMask) |
| Decode a VPERM W/D/Q/PS/PD mask from an IR-level vector constant. More... | |
| void | DecodeVPERMV3Mask (const Constant *C, unsigned ElSize, unsigned Width, SmallVectorImpl< int > &ShuffleMask) |
| Decode a VPERMT2 W/D/Q/PS/PD mask from an IR-level vector constant. More... | |
| Target & | getTheXCoreTarget () |
| void | initializeXCoreLowerThreadLocalPass (PassRegistry &p) |
| FunctionPass * | createXCoreFrameToArgsOffsetEliminationPass () |
| createXCoreFrameToArgsOffsetEliminationPass - returns an instance of the Frame to args offset elimination pass More... | |
| FunctionPass * | createXCoreISelDag (XCoreTargetMachine &TM, CodeGenOpt::Level OptLevel) |
| createXCoreISelDag - This pass converts a legalized DAG into a XCore-specific DAG, ready for instruction scheduling. More... | |
| ModulePass * | createXCoreLowerThreadLocalPass () |
| void | initializeCoroEarlyLegacyPass (PassRegistry &) |
| void | initializeCoroSplitLegacyPass (PassRegistry &) |
| void | initializeCoroElideLegacyPass (PassRegistry &) |
| void | initializeCoroCleanupLegacyPass (PassRegistry &) |
| static unsigned | getComplexity (Value *V) |
| Assign a complexity or rank value to LLVM Values. More... | |
| static bool | isCanonicalPredicate (CmpInst::Predicate Pred) |
| Predicate canonicalization reduces the number of patterns that need to be matched by other transforms. More... | |
| bool | isSignBitCheck (ICmpInst::Predicate Pred, const APInt &RHS, bool &TrueIfSigned) |
| Given an exploded icmp instruction, return true if the comparison only checks the sign bit. More... | |
| llvm::Optional< std::pair< CmpInst::Predicate, Constant * > > | getFlippedStrictnessPredicateAndConstant (CmpInst::Predicate Pred, Constant *C) |
| static Value * | peekThroughBitcast (Value *V, bool OneUseOnly=false) |
| Return the source operand of a potentially bitcasted value while optionally checking if it has one use. More... | |
| static Constant * | AddOne (Constant *C) |
| Add one to a Constant. More... | |
| static Constant * | SubOne (Constant *C) |
| Subtract one from a Constant. More... | |
| static bool | isFreeToInvert (Value *V, bool WillInvertAllUses) |
| Return true if the specified value is free to invert (apply ~ to). More... | |
| static bool | canFreelyInvertAllUsersOf (Value *V, Value *IgnoredUser) |
| Given i1 V, can every user of V be freely adapted if V is changed to !V ? More... | |
| static Constant * | getSafeVectorConstantForBinop (BinaryOperator::BinaryOps Opcode, Constant *In, bool IsRHSConstant) |
| Some binary operators require special handling to avoid poison and undefined behavior. More... | |
| raw_ostream & | operator<< (raw_ostream &OS, BBState &BBState) LLVM_ATTRIBUTE_UNUSED |
| static void | combineKnownMetadata (Instruction *ReplInst, Instruction *I) |
| static unsigned | ComputeSpeculationCost (const Instruction *I, const TargetTransformInfo &TTI) |
| static bool | CompareVars (const ASanStackVariableDescription &a, const ASanStackVariableDescription &b) |
| static size_t | VarAndRedzoneSize (size_t Size, size_t Granularity, size_t Alignment) |
| void | collectCmpOps (CmpInst *Comparison, SmallVectorImpl< Value *> &CmpOperands) |
| static Function * | getCopyDeclaration (Module *M, Type *Ty) |
| static void | replaceCreatedSSACopys (PredicateInfo &PredInfo, Function &F) |
| static bool | isUniformLoop (Loop *Lp, Loop *OuterLp) |
| static bool | isUniformLoopNest (Loop *Lp, Loop *OuterLp) |
| static bool | canIfConvertPHINodes (BasicBlock *BB) |
| Check whether it is safe to if-convert this phi node. More... | |
| static Type * | convertPointerToIntegerType (const DataLayout &DL, Type *Ty) |
| static Type * | getWiderType (const DataLayout &DL, Type *Ty0, Type *Ty1) |
| static bool | hasOutsideLoopUser (const Loop *TheLoop, Instruction *Inst, SmallPtrSetImpl< Value *> &AllowedExit) |
| Check that the instruction has outside loop users and is not an identified reduction variable. More... | |
| raw_ostream & | operator<< (raw_ostream &OS, const VPlanIngredient &I) |
| raw_ostream & | operator<< (raw_ostream &OS, const VPlan &Plan) |
| raw_ostream & | operator<< (raw_ostream &OS, const VPValue &V) |
ArrayRef Convenience constructors | |
| template<typename T > | |
| ArrayRef< T > | makeArrayRef (const T &OneElt) |
| Construct an ArrayRef from a single element. More... | |
| template<typename T > | |
| ArrayRef< T > | makeArrayRef (const T *data, size_t length) |
| Construct an ArrayRef from a pointer and length. More... | |
| template<typename T > | |
| ArrayRef< T > | makeArrayRef (const T *begin, const T *end) |
| Construct an ArrayRef from a range. More... | |
| template<typename T > | |
| ArrayRef< T > | makeArrayRef (const SmallVectorImpl< T > &Vec) |
| Construct an ArrayRef from a SmallVector. More... | |
| template<typename T , unsigned N> | |
| ArrayRef< T > | makeArrayRef (const SmallVector< T, N > &Vec) |
| Construct an ArrayRef from a SmallVector. More... | |
| template<typename T > | |
| ArrayRef< T > | makeArrayRef (const std::vector< T > &Vec) |
| Construct an ArrayRef from a std::vector. More... | |
| template<typename T , std::size_t N> | |
| ArrayRef< T > | makeArrayRef (const std::array< T, N > &Arr) |
| Construct an ArrayRef from a std::array. More... | |
| template<typename T > | |
| ArrayRef< T > | makeArrayRef (const ArrayRef< T > &Vec) |
| Construct an ArrayRef from an ArrayRef (no-op) (const) More... | |
| template<typename T > | |
| ArrayRef< T > & | makeArrayRef (ArrayRef< T > &Vec) |
| Construct an ArrayRef from an ArrayRef (no-op) More... | |
| template<typename T , size_t N> | |
| ArrayRef< T > | makeArrayRef (const T(&Arr)[N]) |
| Construct an ArrayRef from a C array. More... | |
| template<typename T > | |
| MutableArrayRef< T > | makeMutableArrayRef (T &OneElt) |
| Construct a MutableArrayRef from a single element. More... | |
| template<typename T > | |
| MutableArrayRef< T > | makeMutableArrayRef (T *data, size_t length) |
| Construct a MutableArrayRef from a pointer and length. More... | |
ArrayRef Comparison Operators | |
| template<typename T > | |
| bool | operator== (ArrayRef< T > LHS, ArrayRef< T > RHS) |
| template<typename T > | |
| bool | operator!= (ArrayRef< T > LHS, ArrayRef< T > RHS) |
StringRef Comparison Operators | |
| bool | operator== (StringRef LHS, StringRef RHS) |
| bool | operator!= (StringRef LHS, StringRef RHS) |
| bool | operator< (StringRef LHS, StringRef RHS) |
| bool | operator<= (StringRef LHS, StringRef RHS) |
| bool | operator> (StringRef LHS, StringRef RHS) |
| bool | operator>= (StringRef LHS, StringRef RHS) |
| std::string & | operator+= (std::string &buffer, StringRef string) |
Twine Inline Implementations | |
| Twine | operator+ (const Twine &LHS, const Twine &RHS) |
| Twine | operator+ (const char *LHS, const StringRef &RHS) |
| Additional overload to guarantee simplified codegen; this is equivalent to concat(). More... | |
| Twine | operator+ (const StringRef &LHS, const char *RHS) |
| Additional overload to guarantee simplified codegen; this is equivalent to concat(). More... | |
| raw_ostream & | operator<< (raw_ostream &OS, const Twine &RHS) |
| void | describeFuzzerIntOps (std::vector< fuzzerop::OpDescriptor > &Ops) |
| Getters for the default sets of operations, per general category. More... | |
| void | describeFuzzerFloatOps (std::vector< fuzzerop::OpDescriptor > &Ops) |
| void | describeFuzzerControlFlowOps (std::vector< fuzzerop::OpDescriptor > &Ops) |
| void | describeFuzzerPointerOps (std::vector< fuzzerop::OpDescriptor > &Ops) |
| void | describeFuzzerAggregateOps (std::vector< fuzzerop::OpDescriptor > &Ops) |
| void | describeFuzzerVectorOps (std::vector< fuzzerop::OpDescriptor > &Ops) |
| TransformationMode | hasUnrollTransformation (Loop *L) |
| TransformationMode | hasUnrollAndJamTransformation (Loop *L) |
| TransformationMode | hasVectorizeTransformation (Loop *L) |
| TransformationMode | hasDistributeTransformation (Loop *L) |
| TransformationMode | hasLICMVersioningTransformation (Loop *L) |
Variables | |
| const NoneType | None = NoneType::None |
| template<typename T > | |
| int(*)(const void *, const void *) | get_array_pod_sort_comparator (const T &) |
| get_array_pod_sort_comparator - This is an internal helper function used to get type deduction of T right. More... | |
| unsigned constexpr | DefaultMaxUsesToExplore = 20 |
| The default value for MaxUsesToExplore argument. More... | |
| cl::opt< unsigned > | DefMaxInstsToScan |
| The default number of maximum instructions to scan in the block, used by FindAvailableLoadedValue(). More... | |
| cl::opt< bool > | EnableMSSALoopDependency |
| Enables memory ssa as a dependency for loop passes. More... | |
| success | |
| Parameters (see the expansion example below): (the builder, addr, loaded, new_val, ordering, /* OUT. More... | |
| cl::opt< unsigned > | PartialUnrollingThreshold |
| cl::opt< bool > | DisableGISelLegalityCheck |
| class llvm::RegisterBankInfo | ScalarAddx2 |
| class llvm::RegisterBankInfo | GPR |
| cl::opt< bool > | UseSegmentSetForPhysRegs |
| cl::opt< bool > | SwpEnableCopyToPhi |
| static const int | DefaultProcResSize = 16 |
| cl::opt< bool > | ForceTopDown |
| cl::opt< bool > | ForceBottomUp |
| cl::opt< bool > | VerifyScheduling |
| char & | AtomicExpandID = AtomicExpand::ID |
| AtomicExpandID – Lowers atomic operations in terms of either cmpxchg load-linked/store-conditional loops. More... | |
| char & | MachineLoopInfoID = MachineLoopInfo::ID |
| MachineLoopInfo - This pass is a loop analysis pass. More... | |
| char & | MachineDominatorsID |
| MachineDominators - This pass is a machine dominators analysis pass. More... | |
| char & | MachineDominanceFrontierID = MachineDominanceFrontier::ID |
| MachineDominanaceFrontier - This pass is a machine dominators analysis pass. More... | |
| char & | MachineRegionInfoPassID |
| MachineRegionInfo - This pass computes SESE regions for machine functions. More... | |
| char & | EdgeBundlesID |
| EdgeBundles analysis - Bundle machine CFG edges. More... | |
| char & | LiveVariablesID = LiveVariables::ID |
| LiveVariables pass - This pass computes the set of blocks in which each variable is life and sets machine operand kill flags. More... | |
| char & | PHIEliminationID = PHIElimination::ID |
| PHIElimination - This pass eliminates machine instruction PHI nodes by inserting copy instructions. More... | |
| char & | LiveIntervalsID = LiveIntervals::ID |
| LiveIntervals - This analysis keeps track of the live ranges of virtual and physical registers. More... | |
| char & | LiveStacksID = LiveStacks::ID |
| LiveStacks pass. An analysis keeping track of the liveness of stack slots. More... | |
| char & | TwoAddressInstructionPassID = TwoAddressInstructionPass::ID |
| TwoAddressInstruction - This pass reduces two-address instructions to use two operands. More... | |
| char & | ProcessImplicitDefsID = ProcessImplicitDefs::ID |
| ProcessImpicitDefs pass - This pass removes IMPLICIT_DEFs. More... | |
| char & | RegisterCoalescerID = RegisterCoalescer::ID |
| RegisterCoalescer - This pass merges live ranges to eliminate copies. More... | |
| char & | MachineSchedulerID = MachineScheduler::ID |
| MachineScheduler - This pass schedules machine instructions. More... | |
| char & | PostMachineSchedulerID = PostMachineScheduler::ID |
| PostMachineScheduler - This pass schedules machine instructions postRA. More... | |
| char & | SpillPlacementID = SpillPlacement::ID |
| SpillPlacement analysis. More... | |
| char & | ShrinkWrapID = ShrinkWrap::ID |
| ShrinkWrap pass. Look for the best place to insert save and restore. More... | |
| char & | LiveRangeShrinkID = LiveRangeShrink::ID |
| LiveRangeShrink pass. More... | |
| char & | RAGreedyID = RAGreedy::ID |
| Greedy register allocator. More... | |
| char & | RABasicID = RABasic::ID |
| Basic register allocator. More... | |
| char & | VirtRegRewriterID = VirtRegRewriter::ID |
| VirtRegRewriter pass. More... | |
| char & | UnreachableMachineBlockElimID |
| UnreachableMachineBlockElimination - This pass removes unreachable machine basic blocks. More... | |
| char & | DeadMachineInstructionElimID = DeadMachineInstructionElim::ID |
| DeadMachineInstructionElim - This pass removes dead machine instructions. More... | |
| char & | DetectDeadLanesID = DetectDeadLanes::ID |
| This pass adds dead/undef flags after analyzing subregister lanes. More... | |
| char & | PostRAMachineSinkingID = PostRAMachineSinking::ID |
| This pass perform post-ra machine sink for COPY instructions. More... | |
| char & | PrologEpilogCodeInserterID = PEI::ID |
| PrologEpilogCodeInserter - This pass inserts prolog and epilog code, and eliminates abstract frame references. More... | |
| char & | ExpandPostRAPseudosID = ExpandPostRA::ID |
| ExpandPostRAPseudos - This pass expands pseudo instructions after register allocation. More... | |
| char & | PostRAHazardRecognizerID = PostRAHazardRecognizer::ID |
| createPostRAHazardRecognizer - This pass runs the post-ra hazard recognizer. More... | |
| char & | PostRASchedulerID = PostRAScheduler::ID |
| createPostRAScheduler - This pass performs post register allocation scheduling. More... | |
| char & | BranchFolderPassID = BranchFolderPass::ID |
| BranchFolding - This pass performs machine code CFG based optimizations to delete branches to branches, eliminate branches to successor blocks (creating fall throughs), and eliminating branches over branches. More... | |
| char & | BranchRelaxationPassID = BranchRelaxation::ID |
| BranchRelaxation - This pass replaces branches that need to jump further than is supported by a branch instruction. More... | |
| char & | MachineFunctionPrinterPassID = MachineFunctionPrinterPass::ID |
| MachineFunctionPrinterPass - This pass prints out MachineInstr's. More... | |
| char & | MIRPrintingPassID = MIRPrintingPass::ID |
| MIRPrintingPass - this pass prints out the LLVM IR using the MIR serialization format. More... | |
| char & | TailDuplicateID = TailDuplicate::ID |
| TailDuplicate - Duplicate blocks with unconditional branches into tails of their predecessors. More... | |
| char & | EarlyTailDuplicateID = EarlyTailDuplicate::ID |
| Duplicate blocks with unconditional branches into tails of their predecessors. More... | |
| char & | MachineTraceMetricsID = MachineTraceMetrics::ID |
| MachineTraceMetrics - This pass computes critical path and CPU resource usage in an ensemble of traces. More... | |
| char & | EarlyIfConverterID = EarlyIfConverter::ID |
| EarlyIfConverter - This pass performs if-conversion on SSA form by inserting cmov instructions. More... | |
| char & | EarlyIfPredicatorID = EarlyIfPredicator::ID |
| EarlyIfPredicator - This pass performs if-conversion on SSA form by predicating if/else block and insert select at the join point. More... | |
| char & | MachineCombinerID = MachineCombiner::ID |
| This pass performs instruction combining using trace metrics to estimate critical-path and resource depth. More... | |
| char & | StackColoringID = StackColoring::ID |
| StackSlotColoring - This pass performs stack coloring and merging. More... | |
| char & | IfConverterID = IfConverter::ID |
| IfConverter - This pass performs machine code if conversion. More... | |
| char & | MachineBlockPlacementID = MachineBlockPlacement::ID |
| MachineBlockPlacement - This pass places basic blocks based on branch probabilities. More... | |
| char & | MachineBlockPlacementStatsID = MachineBlockPlacementStats::ID |
| MachineBlockPlacementStats - This pass collects statistics about the basic block placement using branch probabilities and block frequency information. More... | |
| char & | GCMachineCodeAnalysisID = GCMachineCodeAnalysis::ID |
| GCMachineCodeAnalysis - Target-independent pass to mark safe points in machine code. More... | |
| char & | MachineCSEID = MachineCSE::ID |
| MachineCSE - This pass performs global CSE on machine instructions. More... | |
| char & | MIRCanonicalizerID = MIRCanonicalizer::ID |
| MIRCanonicalizer - This pass canonicalizes MIR by renaming vregs according to the semantics of the instruction as well as hoists code. More... | |
| char & | ImplicitNullChecksID = ImplicitNullChecks::ID |
| ImplicitNullChecks - This pass folds null pointer checks into nearby memory operations. More... | |
| char & | MachineLICMID = MachineLICM::ID |
| This pass performs loop invariant code motion on machine instructions. More... | |
| char & | EarlyMachineLICMID = EarlyMachineLICM::ID |
| This pass performs loop invariant code motion on machine instructions. More... | |
| char & | MachineSinkingID = MachineSinking::ID |
| MachineSinking - This pass performs sinking on machine instructions. More... | |
| char & | MachineCopyPropagationID = MachineCopyPropagation::ID |
| MachineCopyPropagation - This pass performs copy propagation on machine instructions. More... | |
| char & | PeepholeOptimizerID = PeepholeOptimizer::ID |
| PeepholeOptimizer - This pass performs peephole optimizations - like extension and comparison eliminations. More... | |
| char & | OptimizePHIsID = OptimizePHIs::ID |
| OptimizePHIs - This pass optimizes machine instruction PHIs to take advantage of opportunities created during DAG legalization. More... | |
| char & | StackSlotColoringID = StackSlotColoring::ID |
| StackSlotColoring - This pass performs stack slot coloring. More... | |
| char & | FuncletLayoutID = FuncletLayout::ID |
| This pass lays out funclets contiguously. More... | |
| char & | XRayInstrumentationID = XRayInstrumentation::ID |
| This pass inserts the XRay instrumentation sleds if they are supported by the target platform. More... | |
| char & | FEntryInserterID = FEntryInserter::ID |
| This pass inserts FEntry calls. More... | |
| char & | PatchableFunctionID = PatchableFunction::ID |
| This pass implements the "patchable-function" attribute. More... | |
| char & | LocalStackSlotAllocationID = LocalStackSlotPass::ID |
| LocalStackSlotAllocation - This pass assigns local frame indices to stack slots relative to one another and allocates base registers to access them when it is estimated by the target to be out of range of normal frame pointer or stack pointer index addressing. More... | |
| char & | FinalizeISelID = FinalizeISel::ID |
| This pass expands pseudo-instructions, reserves registers and adjusts machine frame information. More... | |
| char & | UnpackMachineBundlesID = UnpackMachineBundles::ID |
| UnpackMachineBundles - This pass unpack machine instruction bundles. More... | |
| char & | FinalizeMachineBundlesID = FinalizeMachineBundles::ID |
| FinalizeMachineBundles - This pass finalize machine instruction bundles (created earlier, e.g. More... | |
| char & | StackMapLivenessID = StackMapLiveness::ID |
| StackMapLiveness - This pass analyses the register live-out set of stackmap/patchpoint intrinsics and attaches the calculated information to the intrinsic for later emission to the StackMap. More... | |
| char & | LiveDebugValuesID = LiveDebugValues::ID |
| LiveDebugValues pass. More... | |
| char & | RenameIndependentSubregsID = RenameIndependentSubregs::ID |
| This pass detects subregister lanes in a virtual register that are used independently of other lanes and splits them into separate virtual registers. More... | |
| char & | MachinePipelinerID = MachinePipeliner::ID |
| This pass performs software pipelining on machine instructions. More... | |
| bool | TimePassesIsEnabled = false |
| If the user specifies the -time-passes argument on an LLVM tool command line then the value of this boolean will be true, otherwise false. More... | |
| const char | AsmRewritePrecedence [] |
| const unsigned | MAX_SUBTARGET_WORDS = 3 |
| const unsigned | MAX_SUBTARGET_FEATURES = MAX_SUBTARGET_WORDS * 64 |
| bool | DebugFlag = false |
| This boolean is set to true if the '-debug' command line option is specified. More... | |
| bool | EnableDebugBuffering = false |
| EnableDebugBuffering - This defaults to false. More... | |
| static const unsigned char | BitReverseTable256 [256] |
| Macro compressed bit reversal table for 256 bits. More... | |
| const float | huge_valf = HUGE_VALF |
| Use this rather than HUGE_VALF; the latter causes warnings on MSVC. More... | |
| TimeTraceProfiler * | TimeTraceProfilerInstance = nullptr |
| cl::OptionCategory | ColorCategory |
| SourceMgr | SrcMgr |
| unsigned | ErrorsPrinted = 0 |
| bool | TimeRegions |
| cl::opt< unsigned > | SetLicmMssaOptCap |
| cl::opt< unsigned > | SetLicmMssaNoAccForPromotionCap |
| cl::opt< bool > | ForgetSCEVInLoopUnroll |
| char & | DemoteRegisterToMemoryID = RegToMem::ID |
| char & | InferAddressSpacesID |
| static const int | kAsanStackLeftRedzoneMagic = 0xf1 |
| static const int | kAsanStackMidRedzoneMagic = 0xf2 |
| static const int | kAsanStackRightRedzoneMagic = 0xf3 |
| static const int | kAsanStackUseAfterReturnMagic = 0xf5 |
| static const int | kAsanStackUseAfterScopeMagic = 0xf8 |
| char & | LowerInvokePassID = LowerInvokeLegacyPass::ID |
| char & | InstructionNamerID |
| char & | LowerSwitchID = LowerSwitch::ID |
| char & | BreakCriticalEdgesID |
| char & | LCSSAID = LCSSAWrapperPass::ID |
| char & | LoopSimplifyID = LoopSimplify::ID |
| cl::opt< bool > | EnableLoopInterleaving |
| cl::opt< bool > | EnableLoopVectorization |
| cl::opt< bool > | RunSLPVectorization |
| cl::OptionCategory | GICombinerOptionCategory ("GlobalISel Combiner", "Control the rules which are enabled. These options all take a comma " "separated list of rules to disable and may be specified by number " "or number range (e.g. 1-10)." " They may also be specified by name.") |
| bool | VerifyMachineDomInfo = false |
| cl::opt< bool > | DumpCriticalPathLength ("misched-dcpl", cl::Hidden, cl::desc("Print critical path length to stdout")) |
| char & | MIRNamerID = MIRNamer::ID |
| static cl::opt< bool, true > | EnableTiming ("time-passes", cl::location(TimePassesIsEnabled), cl::Hidden, cl::desc("Time each pass, printing elapsed time for each on exit")) |
| cl::opt< bool > | LTODiscardValueNames ("lto-discard-value-names", cl::desc("Strip names from Value during LTO (other than GlobalValue)."), cl::init(false), cl::Hidden) |
| cl::opt< bool > | RemarksWithHotness ("lto-pass-remarks-with-hotness", cl::desc("With PGO, include profile count in optimization remarks"), cl::Hidden) |
| cl::opt< std::string > | RemarksFilename ("lto-pass-remarks-output", cl::desc("Output filename for pass remarks"), cl::value_desc("filename")) |
| cl::opt< std::string > | RemarksPasses ("lto-pass-remarks-filter", cl::desc("Only record optimization remarks from passes whose " "names match the given regular expression"), cl::value_desc("regex")) |
| cl::opt< std::string > | RemarksFormat ("lto-pass-remarks-format", cl::desc("The format used for serializing remarks (default: YAML)"), cl::value_desc("format"), cl::init("yaml")) |
| cl::opt< std::string > | LTOStatsFile ("lto-stats-file", cl::desc("Save statistics to the specified file"), cl::Hidden) |
| static ValueProfRecordClosure | InstrProfRecordClosure |
| int | EnableABIBreakingChecks |
| static const fltSemantics | semIEEEhalf = {15, -14, 11, 16} |
| static const fltSemantics | semIEEEsingle = {127, -126, 24, 32} |
| static const fltSemantics | semIEEEdouble = {1023, -1022, 53, 64} |
| static const fltSemantics | semIEEEquad = {16383, -16382, 113, 128} |
| static const fltSemantics | semX87DoubleExtended = {16383, -16382, 64, 80} |
| static const fltSemantics | semBogus = {0, 0, 0, 0} |
| static const fltSemantics | semPPCDoubleDouble = {-1, 0, 0, 0} |
| static const fltSemantics | semPPCDoubleDoubleLegacy |
| const unsigned int | maxExponent = 16383 |
| const unsigned int | maxPrecision = 113 |
| const unsigned int | maxPowerOfFiveExponent = maxExponent + maxPrecision - 1 |
| const unsigned int | maxPowerOfFiveParts = 2 + ((maxPowerOfFiveExponent * 815) / (351 * APFloatBase::integerPartWidth)) |
| static const char | hexDigitsLower [] = "0123456789abcdef0" |
| static const char | hexDigitsUpper [] = "0123456789ABCDEF0" |
| static const char | infinityL [] = "infinity" |
| static const char | infinityU [] = "INFINITY" |
| static const char | NaNL [] = "nan" |
| static const char | NaNU [] = "NAN" |
| static const int | halfShift = 10 |
| static const UTF32 | halfBase = 0x0010000UL |
| static const UTF32 | halfMask = 0x3FFUL |
| static const char | trailingBytesForUTF8 [256] |
| static const UTF32 | offsetsFromUTF8 [6] |
| static const UTF8 | firstByteMark [7] = { 0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC } |
| static ManagedStatic< std::vector< std::string > > | CurrentDebugType |
| static const MachineMemOperand::Flags | MOSuppressPair |
| static const MachineMemOperand::Flags | MOStridedAccess |
| char & | AMDGPUMachineCFGStructurizerID |
| char & | AMDGPUAnnotateKernelFeaturesID = AMDGPUAnnotateKernelFeatures::ID |
| char & | AMDGPUAtomicOptimizerID = AMDGPUAtomicOptimizer::ID |
| char & | AMDGPULowerIntrinsicsID = AMDGPULowerIntrinsics::ID |
| char & | AMDGPUFixFunctionBitcastsID = AMDGPUFixFunctionBitcasts::ID |
| char & | AMDGPULowerKernelArgumentsID |
| char & | AMDGPULowerKernelAttributesID |
| char & | AMDGPUPropagateAttributesEarlyID |
| char & | AMDGPUPropagateAttributesLateID |
| char & | AMDGPURewriteOutArgumentsID |
| char & | GCNDPPCombineID = GCNDPPCombine::ID |
| char & | R600ClauseMergePassID = R600ClauseMergePass::ID |
| char & | R600ControlFlowFinalizerID = R600ControlFlowFinalizer::ID |
| char & | R600ExpandSpecialInstrsPassID = R600ExpandSpecialInstrsPass::ID |
| char & | R600VectorRegMergerID = R600VectorRegMerger::ID |
| char & | R600PacketizerID = R600Packetizer::ID |
| char & | SIFoldOperandsID |
| char & | SIPeepholeSDWAID = SIPeepholeSDWA::ID |
| char & | SIShrinkInstructionsID |
| char & | SIFixSGPRCopiesID = SIFixSGPRCopies::ID |
| char & | SIFixVGPRCopiesID = SIFixVGPRCopies::ID |
| char & | SIFixupVectorISelID |
| char & | SILowerI1CopiesID = SILowerI1Copies::ID |
| char & | SILowerSGPRSpillsID = SILowerSGPRSpills::ID |
| char & | SILoadStoreOptimizerID = SILoadStoreOptimizer::ID |
| char & | SIWholeQuadModeID = SIWholeQuadMode::ID |
| char & | SILowerControlFlowID = SILowerControlFlow::ID |
| char & | SIInsertSkipsPassID |
| char & | SIOptimizeExecMaskingID = SIOptimizeExecMasking::ID |
| char & | SIPreAllocateWWMRegsID = SIPreAllocateWWMRegs::ID |
| char & | AMDGPUSimplifyLibCallsID |
| char & | AMDGPUUseNativeCallsID |
| char & | SIAddIMGInitID = SIAddIMGInit::ID |
| char & | AMDGPUPerfHintAnalysisID = AMDGPUPerfHintAnalysis::ID |
| char & | AMDGPUPromoteAllocaID |
| char & | AMDGPUPrintfRuntimeBindingID = AMDGPUPrintfRuntimeBinding::ID |
| char & | AMDGPUUnifyMetadataID = AMDGPUUnifyMetadata::ID |
| char & | SIOptimizeExecMaskingPreRAID = SIOptimizeExecMaskingPreRA::ID |
| char & | AMDGPUAnnotateUniformValuesPassID |
| char & | AMDGPUCodeGenPrepareID |
| char & | SIAnnotateControlFlowPassID |
| char & | SIMemoryLegalizerID = SIMemoryLegalizer::ID |
| char & | SIModeRegisterID |
| char & | SIInsertWaitcntsID = SIInsertWaitcnts::ID |
| char & | SIFormMemoryClausesID = SIFormMemoryClauses::ID |
| char & | AMDGPUUnifyDivergentExitNodesID = AMDGPUUnifyDivergentExitNodes::ID |
| char & | AMDGPUOpenCLEnqueuedBlockLoweringID |
| char & | GCNRegBankReassignID = GCNRegBankReassign::ID |
| char & | GCNNSAReassignID = GCNNSAReassign::ID |
| static cl::opt< bool > | DumpHSAMetadata ("amdgpu-dump-hsa-metadata", cl::desc("Dump AMDGPU HSA Metadata")) |
| static cl::opt< bool > | VerifyHSAMetadata ("amdgpu-verify-hsa-metadata", cl::desc("Verify AMDGPU HSA Metadata")) |
| const SubtargetFeatureKV | AMDGPUFeatureKV [AMDGPU::NumSubtargetFeatures-1] |
| const MCInstrDesc | ARMInsts [] |
| cl::opt< bool > | ReuseFrameIndexVals |
| static const char * | AVRDataLayout = "e-P1-p:16:8-i8:8-i16:8-i32:8-i64:8-f32:8-f64:8-n8-a:8" |
| const int | SIZE_LONG = 4 |
| const int | SIZE_WORD = 2 |
| char & | HexagonExpandCondsetsID = HexagonExpandCondsets::ID |
| cl::opt< bool > | HexagonDisableCompound |
| cl::opt< bool > | HexagonDisableDuplex |
| const InstrStage | HexagonStages [] |
| const MCInstrDesc | MipsInsts [] |
| static const Align | MIPS_NACL_BUNDLE_ALIGN = Align(16) |
| static ManagedStatic< per_module_annot_t > | annotationCache |
| static sys::Mutex | Lock |
| char & | PPCVSXFMAMutateID = PPCVSXFMAMutate::ID |
| char & | PPCLowerMASSVEntriesID = PPCLowerMASSVEntries::ID |
| const SubtargetFeatureKV | WebAssemblyFeatureKV [WebAssembly::NumSubtargetFeatures] |
| static const IntrinsicData | IntrinsicsWithChain [] |
| static const IntrinsicData | IntrinsicsWithoutChain [] |
| static const unsigned | CodeModelLargeSize = 256 |
| char & | PGOMemOPSizeOptID = PGOMemOPSizeOptLegacyPass::ID |
| static const size_t | kMinAlignment = 16 |
| char & | LibCallsShrinkWrapPassID = LibCallsShrinkWrapLegacyPass::ID |
| static cl::opt< bool > | PGOWarnMisExpect ("pgo-warn-misexpect", cl::init(false), cl::Hidden, cl::desc("Use this option to turn on/off " "warnings about incorrect usage of llvm.expect intrinsics.")) |
Verification flags. | |
These flags turns on/off that are expensive and are turned off by default, unless macro EXPENSIVE_CHECKS is defined. The flags allow selectively turning the checks on without need to recompile. | |
| bool | VerifyDomInfo = false |
| Enables verification of dominator trees. More... | |
| bool | VerifyLoopInfo = false |
| Enables verification of loop info. More... | |
| bool | VerifyMemorySSA = false |
| Enables verification of MemorySSA. More... | |
| const char *const | LLVMLoopUnrollFollowupAll = "llvm.loop.unroll.followup_all" |
| const char *const | LLVMLoopUnrollFollowupUnrolled |
| const char *const | LLVMLoopUnrollFollowupRemainder |
This class represents lattice values for constants.
Provide DenseMapInfo for MemOpKey.
createHexagonISelDag - This pass converts a legalized DAG into a Hexagon-specific DAG, ready for instruction scheduling.
SSAUpdaterTraits<MachineSSAUpdater> - Traits for the SSAUpdaterImpl template, specialized for MachineSSAUpdater.
This file contains helper functions to modify live ranges.
Specialize WriteGraph, the standard implementation won't work.
Lightweight arrays that are backed by an arbitrary BinaryStream.
This file contains the declaration of the GlobalIFunc class, which represents a single indirect function in the IR.
Contains the Analyses and Result Interpretation to select likely functions to Speculatively compile before they are called.
Target-Independent Code Generator Pass Configuration Options pass.
List of target independent CodeGen pass IDs.
Implement a low-level type suitable for MachineInstr level instruction selection.
By default, the reg bank selector relies on local decisions to assign the register bank.
Contains matchers for matching SSA Machine Instructions.
Interface for Targets to specify which operations they can successfully select and how the others should be expanded most efficiently.
Provides analysis for querying information about KnownBits during GISel passes.
This contains common code to allow clients to notify changes to machine instr.
Provides analysis for continuously CSEing during GISel passes.
Interface for Targets to specify which operations are combined how and when.
This contains common combine transformations that may be used in a combine pass,or by the target elsewhere.
This contains common code to drive combines.
The DWARF and Apple accelerator tables are an indirect hash table optimized for null lookup rather than access to known data.
This file declares a class that exposes a simple in-memory representation of a document of MsgPack objects, that can be read from MsgPack, written to MsgPack, and inspected and modified in memory.
FIXME: This is basically just for bringup, this can be made a lot more rich in the future.
This is intended to be a lighter-weight (in terms of memory allocations) replacement for MsgPackTypes.
The Apple accelerator tables are a precursor of the newer DWARF v5 accelerator tables. Both formats share common design ideas.
The Apple accelerator table are output into an on-disk format that looks like this:
.---------------—.
| HEADER |
|---|
| BUCKETS |
| ---------------— |
| HASHES |
| ---------------— |
| OFFSETS |
| ---------------— |
| DATA |
`---------------—'
The header contains a magic number, version, type of hash function, the number of buckets, total number of hashes, and room for a special struct of data and the length of that struct.
The buckets contain an index (e.g. 6) into the hashes array. The hashes section contains all of the 32-bit hash values in contiguous memory, and the offsets contain the offset into the data area for the particular hash.
For a lookup example, we could hash a function name and take it modulo the number of buckets giving us our bucket. From there we take the bucket value as an index into the hashes table and look at each successive hash as long as the hash value is still the same modulo result (bucket value) as earlier. If we have a match we look at that same entry in the offsets table and grab the offset in the data for our final match.
The DWARF v5 accelerator table consists of zero or more name indices that are output into an on-disk format that looks like this:
.---------------—.
| HEADER |
|---|
| CU LIST |
| ---------------— |
| LOCAL TU LIST |
| ---------------— |
| FOREIGN TU LIST |
| ---------------— |
| HASH TABLE |
| ---------------— |
| NAME TABLE |
| ---------------— |
| ABBREV TABLE |
| ---------------— |
| ENTRY POOL |
`---------------—'
For the full documentation please refer to the DWARF 5 standard.
This file defines the class template AccelTable, which is represents an abstract view of an Accelerator table, without any notion of an on-disk layout. This class is parameterized by an entry type, which should derive from AccelTableData. This is the type of individual entries in the table, and it should store the data necessary to emit them. AppleAccelTableData is the base class for Apple Accelerator Table entries, which have a uniform structure based on a sequence of Atoms. There are different sub-classes derived from AppleAccelTable, which differ in the set of Atoms and how they obtain their values.
An Apple Accelerator Table can be serialized by calling emitAppleAccelTable function.
Combiner Passes will need to setup a CombinerInfo and call combineMachineFunction.
Targets can pick individual opcode transformations from the helper or use tryCombine which invokes all transformations. All of the transformations return true if the MachineInstruction changed and false otherwise.
In other words, it looks at one instruction at a time to decide where the operand of that instruction should live.
At higher optimization level, we could imagine that the reg bank selector would use more global analysis and do crazier thing like duplicating instructions and so on. This is future work.
For now, the pass uses a greedy algorithm to decide where the operand of an instruction should live. It asks the target which banks may be used for each operand of the instruction and what is the cost. Then, it chooses the solution which minimize the cost of the instruction plus the cost of any move that may be needed to the values into the right register bank. In other words, the cost for an instruction on a register bank RegBank is: Cost of I on RegBank plus the sum of the cost for bringing the input operands from their current register bank to RegBank. Thus, the following formula: cost(I, RegBank) = cost(I.Opcode, RegBank) + sum(for each arg in I.arguments: costCrossCopy(arg.RegBank, RegBank))
E.g., Let say we are assigning the register bank for the instruction defining v2. v0(A_REGBANK) = ... v1(A_REGBANK) = ... v2 = G_ADD i32 v0, v1 <– MI
The target may say it can generate G_ADD i32 on register bank A and B with a cost of respectively 5 and 1. Then, let say the cost of a cross register bank copies from A to B is 1. The reg bank selector would compare the following two costs: cost(MI, A_REGBANK) = cost(G_ADD, A_REGBANK) + cost(v0.RegBank, A_REGBANK) + cost(v1.RegBank, A_REGBANK) = 5 + cost(A_REGBANK, A_REGBANK) + cost(A_REGBANK, A_REGBANK) = 5 + 0 + 0 = 5 cost(MI, B_REGBANK) = cost(G_ADD, B_REGBANK) + cost(v0.RegBank, B_REGBANK) + cost(v1.RegBank, B_REGBANK) = 1 + cost(A_REGBANK, B_REGBANK) + cost(A_REGBANK, B_REGBANK) = 1 + 1 + 1 = 3 Therefore, in this specific example, the reg bank selector would choose bank B for MI. v0(A_REGBANK) = ... v1(A_REGBANK) = ... tmp0(B_REGBANK) = COPY v0 tmp1(B_REGBANK) = COPY v1 v2(B_REGBANK) = G_ADD i32 tmp0, tmp1
This provides the CodeGen aspects of LowLevelType, such as Type conversion.
[Purely Experimentation]
Indirect function uses ELF symbol type extension to mark that the address of a declaration should be resolved at runtime by calling a resolver function.
This file provides two different array implementations.
VarStreamArray - Arrays of variable length records. The user specifies an Extractor type that can extract a record from a given offset and return the number of bytes consumed by the record. FixedStreamArray - Arrays of fixed length records. This is similar in spirit to ArrayRef<T>, but since it is backed by a BinaryStream, the elements of the array need not be laid out in contiguous memory.
For a type attached to a MachineInstr, we only care about 2 details: total size and the number of vector lanes (if any). Accordingly, there are 4 possible valid type-kinds:
sN for scalars and aggregates<N x sM> for vectors, which must have at least 2 elements.pN for pointersOther information required for correct selection is expected to be carried by the opcode, or non-type flags. For example the distinction between G_ADD and G_FADD for int/float or fast-math flags.
| using llvm::AAAlignmentStateType = typedef IncIntegerState<uint32_t, 1U << 29, 0> |
Definition at line 2285 of file Attributor.h.
| using llvm::AliasAnalysis = typedef AAResults |
Temporary typedef for legacy code that uses a generic AliasAnalysis pointer or reference.
Definition at line 812 of file AliasAnalysis.h.
| using llvm::AnalysisID = typedef const void * |
| using llvm::BBInfoVector = typedef SmallVectorImpl<BasicBlockInfo> |
Definition at line 25 of file ARMBasicBlockInfo.h.
| using llvm::BBOrMBB = typedef PointerUnion<const BasicBlock *, MachineBasicBlock *> |
Definition at line 25 of file WasmEHFuncInfo.h.
| using llvm::BBSideEffectsSet = typedef DenseMap<const BasicBlock *, bool> |
Definition at line 118 of file GVNHoist.cpp.
| using llvm::bf_iterator_default_set = typedef SmallPtrSet<NodeRef, SmallSize> |
Definition at line 40 of file BreadthFirstIterator.h.
| using llvm::BFIDOTGTraitsBase = typedef BFIDOTGraphTraitsBase<BlockFrequencyInfo, BranchProbabilityInfo> |
Definition at line 124 of file BlockFrequencyInfo.cpp.
| using llvm::binop_eval_t = typedef uint64_t (*)(uint64_t, uint64_t) |
Type of functions evaluating a given binary operation.
Definition at line 139 of file FileCheckImpl.h.
| using llvm::BlockSequence = typedef SmallVector<BasicBlock *, 0> |
A sequence of basic blocks.
A 0-sized SmallVector is slightly cheaper to move than a std::vector.
Definition at line 31 of file HotColdSplitting.h.
| typedef unsigned char llvm::Boolean |
Definition at line 112 of file ConvertUTF.h.
The standard BumpPtrAllocator which just uses the default template parameters.
Definition at line 439 of file Allocator.h.
| using llvm::BumpPtrList = typedef AllocatorList<T, BumpPtrAllocator> |
Definition at line 236 of file AllocatorList.h.
| using llvm::CacheCostTy = typedef int64_t |
Definition at line 30 of file LoopCacheAnalysis.h.
| typedef bool llvm::CCAssignFn(unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
CCAssignFn - This function assigns a location for Val, updating State to reflect the change.
It returns 'true' if it failed to handle Val.
Definition at line 177 of file CallingConvLower.h.
| typedef bool llvm::CCCustomFn(unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State) |
CCCustomFn - This function assigns a location for Val, possibly updating all args to reflect changes and indicates if it handled it.
It must set isCustom if it handles the arg and returns true.
Definition at line 184 of file CallingConvLower.h.
| using llvm::CFGUpdate = typedef cfg::Update<BasicBlock *> |
Definition at line 66 of file MemorySSAUpdater.h.
| using llvm::CGSCCAnalysisManager = typedef AnalysisManager<LazyCallGraph::SCC, LazyCallGraph &> |
The CGSCC analysis manager.
See the documentation for the AnalysisManager template for detail documentation. This type serves as a convenient way to refer to this construct in the adaptors and proxies used to integrate this into the larger pass manager infrastructure.
Definition at line 129 of file CGSCCPassManager.h.
| using llvm::CGSCCAnalysisManagerFunctionProxy = typedef OuterAnalysisManagerProxy<CGSCCAnalysisManager, Function> |
A proxy from a CGSCCAnalysisManager to a Function.
Definition at line 409 of file CGSCCPassManager.h.
| using llvm::CGSCCAnalysisManagerModuleProxy = typedef InnerAnalysisManagerProxy<CGSCCAnalysisManager, Module> |
A proxy from a CGSCCAnalysisManager to a Module.
Definition at line 168 of file CGSCCPassManager.h.
| using llvm::CGSCCPassManager = typedef PassManager<LazyCallGraph::SCC, CGSCCAnalysisManager, LazyCallGraph &, CGSCCUpdateResult &> |
The CGSCC pass manager.
See the documentation for the PassManager template for details. It runs a sequence of SCC passes over each SCC that the manager is run over. This type serves as a convenient way to refer to this construct.
Definition at line 150 of file CGSCCPassManager.h.
| using llvm::CHIArgs = typedef iterator_range<CHIIt> |
Definition at line 157 of file GVNHoist.cpp.
| using llvm::CHIIt = typedef SmallVectorImpl<CHIArg>::iterator |
Definition at line 156 of file GVNHoist.cpp.
| typedef TinyPtrVector<BasicBlock *> llvm::ColorVector |
Definition at line 108 of file EHPersonalities.h.
| using llvm::const_gvsummary_iterator = typedef GlobalValueSummaryMapTy::const_iterator |
Type used for iterating through the global value summary map.
Definition at line 877 of file ModuleSummaryIndex.h.
| using llvm::const_inst_iterator = typedef InstIterator<const SymbolTableList<BasicBlock>, Function::const_iterator, BasicBlock::const_iterator, const Instruction> |
Definition at line 127 of file InstIterator.h.
| using llvm::const_inst_range = typedef iterator_range<const_inst_iterator> |
Definition at line 129 of file InstIterator.h.
| using llvm::const_memoryaccess_def_iterator = typedef memoryaccess_def_iterator_base<const MemoryAccess> |
Definition at line 134 of file MemorySSA.h.
| using llvm::const_pred_iterator = typedef PredIterator<const BasicBlock, Value::const_user_iterator> |
| using llvm::ConstBlockSet = typedef SmallPtrSet<const BasicBlock *, 4> |
Definition at line 32 of file SyncDependenceAnalysis.h.
| using llvm::ConstMemoryAccessPair = typedef std::pair<const MemoryAccess *, MemoryLocation> |
Definition at line 1075 of file MemorySSA.h.
| using llvm::ConstOperandBundleDef = typedef OperandBundleDefT<const Value *> |
Definition at line 1085 of file InstrTypes.h.
| typedef std::pair<size_t, DurationType> llvm::CountAndDurationType |
Definition at line 31 of file TimeProfiler.cpp.
| using llvm::CreateCmpXchgInstFun = typedef function_ref<void(IRBuilder<> &, Value *, Value *, Value *, AtomicOrdering, Value *&, Value *&)> |
Definition at line 26 of file AtomicExpandUtils.h.
| using llvm::DDGBase = typedef DirectedGraph<DDGNode, DDGEdge> |
| using llvm::DDGInfo = typedef DependenceGraphInfo<DDGNode> |
| typedef std::vector<DWARFExpression::Operation::Description> llvm::DescVector |
Definition at line 23 of file DWARFExpression.cpp.
| using llvm::DiagnosticHandlerFunction = typedef std::function<void(const DiagnosticInfo &)> |
Definition at line 124 of file DiagnosticInfo.h.
| using llvm::DictScope = typedef DelimitedScope<'{', '}'> |
Definition at line 383 of file ScopedPrinter.h.
| using llvm::DILineInfoTable = typedef SmallVector<std::pair<uint64_t, DILineInfo>, 16> |
Definition at line 78 of file DIContext.h.
| using llvm::DomTreeBase = typedef DominatorTreeBase<T, false> |
Definition at line 856 of file GenericDomTree.h.
| using llvm::DomTreeNode = typedef DomTreeNodeBase<BasicBlock> |
Definition at line 74 of file Dominators.h.
| typedef duration<steady_clock::rep, steady_clock::period> llvm::DurationType |
Definition at line 29 of file TimeProfiler.cpp.
| using llvm::DWARFAddressRangesVector = typedef std::vector<DWARFAddressRange> |
DWARFAddressRangesVector - represents a set of absolute address ranges.
Definition at line 65 of file DWARFAddressRange.h.
| using llvm::DWARFLocationExpressionsVector = typedef std::vector<DWARFLocationExpression> |
Represents a set of absolute location expressions.
Definition at line 45 of file DWARFLocationExpression.h.
| typedef MCSymbol* llvm::ExceptionSymbolProvider(AsmPrinter *Asm) |
Definition at line 27 of file AsmPrinterHandler.h.
| typedef void(* llvm::fatal_error_handler_t) (void *user_data, const std::string &reason, bool gen_crash_diag) |
An error handler callback.
Definition at line 25 of file ErrorHandling.h.
| using llvm::filter_iterator = typedef filter_iterator_impl< WrappedIteratorT, PredicateT, typename detail::fwd_or_bidi_tag<WrappedIteratorT>::type> |
Defines filter_iterator to a suitable specialization of filter_iterator_impl, based on the underlying iterator's category.
Definition at line 415 of file STLExtras.h.
| using llvm::FoldingSetNode = typedef FoldingSetBase::Node |
Definition at line 358 of file FoldingSet.h.
| using llvm::ForwardIDFCalculator = typedef IDFCalculator<false> |
Definition at line 55 of file IteratedDominanceFrontier.h.
| using llvm::function_interval_iterator = typedef IntervalIterator<BasicBlock, Function> |
Definition at line 244 of file IntervalIterator.h.
| using llvm::FunctionAnalysisManager = typedef AnalysisManager<Function> |
Convenience typedef for the Function analysis manager.
Definition at line 1026 of file PassManager.h.
| typedef OuterAnalysisManagerProxy<FunctionAnalysisManager, Loop, LoopStandardAnalysisResults &> llvm::FunctionAnalysisManagerLoopProxy |
A proxy from a FunctionAnalysisManager to a Loop.
Definition at line 156 of file LoopAnalysisManager.h.
| using llvm::FunctionAnalysisManagerModuleProxy = typedef InnerAnalysisManagerProxy<FunctionAnalysisManager, Module> |
Provide the FunctionAnalysisManager to Module proxy.
Definition at line 1128 of file PassManager.h.
| using llvm::FunctionCreator = typedef std::function<void *(const std::string &)> |
Definition at line 95 of file ExecutionEngine.h.
| using llvm::FunctionIntervals = typedef HalfOpenIntervalMap<uint64_t, int64_t> |
Definition at line 26 of file DWARFLinkerCompileUnit.h.
| using llvm::FunctionPassManager = typedef PassManager<Function> |
Convenience typedef for a pass manager over functions.
Definition at line 575 of file PassManager.h.
| using llvm::FunctionRPOT = typedef ReversePostOrderTraversal<const Function *> |
Definition at line 127 of file SyncDependenceAnalysis.cpp.
| using llvm::FuzzerInitFun = typedef int (*)(int *argc, char ***argv) |
Definition at line 44 of file FuzzerCLI.h.
| using llvm::FuzzerTestFun = typedef int (*)(const uint8_t *Data, size_t Size) |
Definition at line 43 of file FuzzerCLI.h.
| using llvm::GCMetadataPrinterRegistry = typedef Registry<GCMetadataPrinter> |
GCMetadataPrinterRegistry - The GC assembly printer registry uses all the defaults from Registry.
Definition at line 35 of file GCMetadataPrinter.h.
| using llvm::GCRegistry = typedef Registry<GCStrategy> |
Subclasses of GCStrategy are made available for use during compilation by adding them to the global GCRegistry.
This can done either within the LLVM source tree or via a loadable plugin. An example registeration would be: static GCRegistry::Add<CustomGC> X("custom-name", "my custom supper fancy gc strategy");
Note that to use a custom GCMetadataPrinter w/gc.roots, you must also register your GCMetadataPrinter subclass with the GCMetadataPrinterRegistery as well.
Definition at line 132 of file GCStrategy.h.
Definition at line 125 of file GetElementPtrTypeIterator.h.
| using llvm::GlobalValueSummaryList = typedef std::vector<std::unique_ptr<GlobalValueSummary> > |
Definition at line 121 of file ModuleSummaryIndex.h.
| using llvm::GlobalValueSummaryMapTy = typedef std::map<GlobalValue::GUID, GlobalValueSummaryInfo> |
Map from global value GUID to corresponding summary structures.
Use a std::map rather than a DenseMap so that pointers to the map's value_type (which are used by ValueInfo) are not invalidated by insertion. Also it will likely incur less overhead, as the value type is not very small and the size of the map is unknown, resulting in inefficiencies due to repeated insertions and resizing.
Definition at line 161 of file ModuleSummaryIndex.h.
| using llvm::GraphDiffInvBBPair = typedef std::pair<const GraphDiff<BasicBlock *> *, Inverse<BasicBlock *> > |
Definition at line 68 of file MemorySSAUpdater.h.
| using llvm::gvsummary_iterator = typedef GlobalValueSummaryMapTy::iterator |
Definition at line 878 of file ModuleSummaryIndex.h.
| using llvm::GVSummaryMapTy = typedef DenseMap<GlobalValue::GUID, GlobalValueSummary *> |
Map of global value GUID to its summary, used to identify values defined in a particular module, and provide efficient access to their summary.
Definition at line 887 of file ModuleSummaryIndex.h.
| using llvm::HalfOpenIntervalMap = typedef IntervalMap<KeyT, ValT, IntervalMapImpl::NodeSizer<KeyT, ValT>::LeafSize, IntervalMapHalfOpenInfo<KeyT> > |
Definition at line 24 of file DWARFLinkerCompileUnit.h.
| using llvm::HoistingPointInfo = typedef std::pair<BasicBlock *, SmallVecInsn> |
Definition at line 124 of file GVNHoist.cpp.
| using llvm::HoistingPointList = typedef SmallVector<HoistingPointInfo, 4> |
Definition at line 126 of file GVNHoist.cpp.
| using llvm::IdxMBBPair = typedef std::pair<SlotIndex, MachineBasicBlock *> |
Definition at line 309 of file SlotIndexes.h.
| using llvm::ilist = typedef iplist<T, Options...> |
| using llvm::IndexAttrPair = typedef std::pair<unsigned, AttributeSet> |
Definition at line 234 of file AttributeImpl.h.
| using llvm::InsnRange = typedef std::pair<const MachineInstr *, const MachineInstr *> |
InsnRange - This is used to track range of instructions with identical lexical scope.
Definition at line 39 of file LexicalScopes.h.
| using llvm::inst_iterator = typedef InstIterator<SymbolTableList<BasicBlock>, Function::iterator, BasicBlock::iterator, Instruction> |
Definition at line 123 of file InstIterator.h.
| using llvm::inst_range = typedef iterator_range<inst_iterator> |
Definition at line 128 of file InstIterator.h.
| using llvm::interval_part_interval_iterator = typedef IntervalIterator<Interval, IntervalPartition> |
Definition at line 246 of file IntervalIterator.h.
| using llvm::InValuesType = typedef DenseMap<BasicBlock *, SmallVector<std::pair<VNType, Instruction *>, 2> > |
Definition at line 160 of file GVNHoist.cpp.
| using llvm::JITTargetAddress = typedef uint64_t |
Represents an address in the target process's address space.
Definition at line 41 of file JITSymbol.h.
| using llvm::LargestSDNode = typedef AlignedCharArrayUnion<AtomicSDNode, TargetIndexSDNode, BlockAddressSDNode, GlobalAddressSDNode> |
A representation of the largest SDNode, for use in sizeof().
This needs to be a union because the largest node differs on 32 bit systems with 4 and 8 byte pointer alignment, respectively.
Definition at line 2595 of file SelectionDAGNodes.h.
| using llvm::LegalityPredicate = typedef std::function<bool (const LegalityQuery &)> |
Definition at line 165 of file LegalizerInfo.h.
| using llvm::LegalizeMutation = typedef std::function<std::pair<unsigned, LLT>(const LegalityQuery &)> |
Definition at line 167 of file LegalizerInfo.h.
| using llvm::ListScope = typedef DelimitedScope<'[', ']'> |
Definition at line 384 of file ScopedPrinter.h.
| using llvm::LiveVirtRegBitSet = typedef SparseBitVector<128> |
Definition at line 35 of file LiveIntervalUnion.h.
| using llvm::LoadStorePair = typedef std::pair<Instruction *, Instruction *> |
Definition at line 30 of file InstrProfiling.h.
The loop analysis manager.
See the documentation for the AnalysisManager template for detail documentation. This typedef serves as a convenient way to refer to this construct in the adaptors and proxies used to integrate this into the larger pass manager infrastructure.
Definition at line 75 of file LoopAnalysisManager.h.
| typedef InnerAnalysisManagerProxy<LoopAnalysisManager, Function> llvm::LoopAnalysisManagerFunctionProxy |
A proxy from a LoopAnalysisManager to a Function.
Definition at line 79 of file LoopAnalysisManager.h.
| typedef PassManager<Loop, LoopAnalysisManager, LoopStandardAnalysisResults &, LPMUpdater &> llvm::LoopPassManager |
The Loop pass manager.
See the documentation for the PassManager template for details. It runs a sequence of Loop passes over each Loop that the manager is run over. This typedef serves as a convenient way to refer to this construct.
Definition at line 80 of file LoopPassManager.h.
Definition at line 817 of file ScalarEvolutionExpressions.h.
| using llvm::LoopVectorTy = typedef SmallVector<Loop *, 8> |
Definition at line 31 of file LoopCacheAnalysis.h.
Definition at line 42 of file LiveRangeCalc.h.
| using llvm::MBBOrBasicBlock = typedef PointerUnion<const BasicBlock *, MachineBasicBlock *> |
Definition at line 38 of file WinEHFuncInfo.h.
| using llvm::MBFIDOTGraphTraitsBase = typedef BFIDOTGraphTraitsBase<MachineBlockFrequencyInfo, MachineBranchProbabilityInfo> |
Definition at line 114 of file MachineBlockFrequencyInfo.cpp.
| typedef std::vector<MCAsmMacroParameter> llvm::MCAsmMacroParameters |
Definition at line 141 of file MCAsmMacro.h.
| using llvm::MCLOHArgs = typedef MCLOHDirective::LOHArgs |
Definition at line 183 of file MCLinkerOptimizationHint.h.
| using llvm::MCLOHDirectives = typedef MCLOHContainer::LOHDirectives |
Definition at line 184 of file MCLinkerOptimizationHint.h.
| using llvm::MCPhysReg = typedef uint16_t |
An unsigned integer type large enough to represent all physical registers, but not necessarily virtual registers.
Definition at line 19 of file MCRegister.h.
| using llvm::MCSectionSubPair = typedef std::pair<MCSection *, const MCExpr *> |
Definition at line 64 of file MCStreamer.h.
| using llvm::memoryaccess_def_iterator = typedef memoryaccess_def_iterator_base<MemoryAccess> |
Definition at line 132 of file MemorySSA.h.
| using llvm::MemoryAccessPair = typedef std::pair<MemoryAccess *, MemoryLocation> |
Definition at line 1074 of file MemorySSA.h.
| using llvm::ModuleAnalysisManager = typedef AnalysisManager<Module> |
Convenience typedef for the Module analysis manager.
Definition at line 1021 of file PassManager.h.
| using llvm::ModuleAnalysisManagerCGSCCProxy = typedef OuterAnalysisManagerProxy<ModuleAnalysisManager, LazyCallGraph::SCC, LazyCallGraph &> |
A proxy from a ModuleAnalysisManager to an SCC.
Definition at line 215 of file CGSCCPassManager.h.
| using llvm::ModuleAnalysisManagerFunctionProxy = typedef OuterAnalysisManagerProxy<ModuleAnalysisManager, Function> |
Provide the ModuleAnalysisManager to Function proxy.
Definition at line 1258 of file PassManager.h.
| using llvm::ModuleHash = typedef std::array<uint32_t, 5> |
160 bits SHA1
Definition at line 874 of file ModuleSummaryIndex.h.
| using llvm::ModulePassManager = typedef PassManager<Module> |
Convenience typedef for a pass manager over modules.
Definition at line 570 of file PassManager.h.
| using llvm::ModulePathStringTableTy = typedef StringMap<std::pair<uint64_t, ModuleHash> > |
String table to hold/own module path strings, which additionally holds the module ID assigned to each module during the plugin step, as well as a hash of the module.
The StringMap makes a copy of and owns inserted strings.
Definition at line 883 of file ModuleSummaryIndex.h.
| using llvm::MostAlignedSDNode = typedef GlobalAddressSDNode |
The SDNode class with the greatest alignment requirement.
Definition at line 2598 of file SelectionDAGNodes.h.
| using llvm::Name2RegBankMap = typedef StringMap<const RegisterBank *> |
Definition at line 48 of file MIParser.h.
| using llvm::Name2RegClassMap = typedef StringMap<const TargetRegisterClass *> |
Definition at line 47 of file MIParser.h.
| typedef std::pair<std::string, CountAndDurationType> llvm::NameAndCountAndDurationType |
Definition at line 33 of file TimeProfiler.cpp.
| using llvm::NewLoopsMap = typedef SmallDenseMap<const Loop *, Loop *, 4> |
Definition at line 37 of file UnrollLoop.h.
| using llvm::NfaPath = typedef SmallVector<uint64_t, 4> |
Definition at line 41 of file Automaton.h.
| typedef function_ref<bool(const SCEVAddRecExpr *)> llvm::NormalizePredTy |
Definition at line 50 of file ScalarEvolutionNormalization.h.
| using llvm::OffsetsStringPool = typedef StrongType<NonRelocatableStringpool, OffsetsTag> |
Definition at line 79 of file NonRelocatableStringpool.h.
| typedef std::once_flag llvm::once_flag |
Definition at line 88 of file Threading.h.
Definition at line 367 of file InstrProfReader.h.
| using llvm::OperandBundleDef = typedef OperandBundleDefT<Value *> |
Definition at line 1084 of file InstrTypes.h.
| using llvm::OperandVector = typedef SmallVectorImpl<std::unique_ptr<MCParsedAsmOperand> > |
Definition at line 32 of file MCTargetAsmParser.h.
| using llvm::OutValuesType = typedef DenseMap<BasicBlock *, SmallVector<CHIArg, 2> > |
Definition at line 158 of file GVNHoist.cpp.
| using llvm::ParamLoadedValue = typedef std::pair<MachineOperand, DIExpression*> |
Definition at line 67 of file TargetInstrInfo.h.
| using llvm::ParamSet = typedef SmallVector<DbgCallSiteParam, 4> |
Collection used for storing debug call site parameters.
Definition at line 278 of file DwarfDebug.h.
| using llvm::PBQPRAGraph = typedef PBQP::RegAlloc::PBQPRAGraph |
Definition at line 33 of file PBQPRAConstraint.h.
| using llvm::PhiToDefMap = typedef SmallDenseMap<MemoryPhi *, MemoryAccess *> |
Definition at line 65 of file MemorySSAUpdater.h.
| using llvm::PointerTy = typedef void * |
Definition at line 21 of file GenericValue.h.
| using llvm::PostDomTreeBase = typedef DominatorTreeBase<T, true> |
Definition at line 859 of file GenericDomTree.h.
| typedef SmallPtrSet<const Loop *, 2> llvm::PostIncLoopSet |
Definition at line 46 of file ScalarEvolutionNormalization.h.
| using llvm::pred_const_range = typedef iterator_range<const_pred_iterator> |
| using llvm::pred_iterator = typedef PredIterator<BasicBlock, Value::user_iterator> |
| using llvm::pred_range = typedef iterator_range<pred_iterator> |
| using llvm::RandomEngine = typedef std::mt19937 |
Definition at line 23 of file RandomIRBuilder.h.
| using llvm::RangesTy = typedef std::map<uint64_t, ObjFileAddressRange> |
Map LowPC to ObjFileAddressRange.
Definition at line 41 of file DWARFLinker.h.
| using llvm::raw_pointer_iterator = typedef pointer_iterator<pointee_iterator<WrappedIteratorT, T1>, T2> |
Definition at line 339 of file iterator.h.
| using llvm::RawInstrProfReader32 = typedef RawInstrProfReader<uint32_t> |
Definition at line 287 of file InstrProfReader.h.
| using llvm::RawInstrProfReader64 = typedef RawInstrProfReader<uint64_t> |
Definition at line 288 of file InstrProfReader.h.
| using llvm::ReferenceGroupsTy = typedef SmallVector<ReferenceGroupTy, 8> |
Definition at line 156 of file LoopCacheAnalysis.h.
| using llvm::ReferenceGroupTy = typedef SmallVector<std::unique_ptr<IndexedReference>, 8> |
A reference group represents a set of memory references that exhibit temporal or spacial reuse.
Two references belong to the same reference group with respect to a inner loop L iff:
Intuitively a reference group represents memory references that access the same cache line. Conditions 1,2 above account for temporal reuse, while contition 3 accounts for spacial reuse.
Definition at line 155 of file LoopCacheAnalysis.h.
| using llvm::Reg2SUnitsMap = typedef SparseMultiSet<PhysRegSUOper, identity<unsigned>, uint16_t> |
Use a SparseMultiSet to track physical registers.
Storage is only allocated once for the pass. It can be cleared in constant time and reused without any frees.
Definition at line 90 of file ScheduleDAGInstrs.h.
| using llvm::RegClassOrRegBank = typedef PointerUnion<const TargetRegisterClass *, const RegisterBank *> |
Convenient type to represent either a register class or a register bank.
Definition at line 47 of file MachineRegisterInfo.h.
| using llvm::RelocAddrMap = typedef DenseMap<uint64_t, RelocAddrEntry> |
In place of applying the relocations to the data we've read from disk we use a separate mapping table to the side and checking that at locations in the dwarf where we expect relocated values.
This adds a bit of complexity to the dwarf parsing/extraction at the benefit of not allocating memory for the entire size of the debug info sections.
Definition at line 34 of file DWARFRelocMap.h.
| using llvm::RequireAnalysisLoopPass = typedef RequireAnalysisPass<AnalysisT, Loop, LoopAnalysisManager, LoopStandardAnalysisResults &, LPMUpdater &> |
An alias template to easily name a require analysis loop pass.
Definition at line 102 of file LoopPassManager.h.
| using llvm::ReverseIDFCalculator = typedef IDFCalculator<true> |
Definition at line 56 of file IteratedDominanceFrontier.h.
Definition at line 239 of file RuntimeDyldImpl.h.
Definition at line 181 of file WindowsSupport.h.
Definition at line 183 of file WindowsSupport.h.
Definition at line 182 of file WindowsSupport.h.
Definition at line 185 of file WindowsSupport.h.
Definition at line 186 of file WindowsSupport.h.
| typedef ScopedHandle<RegTraits> llvm::ScopedRegHandle |
Definition at line 184 of file WindowsSupport.h.
| using llvm::SectionAddrMap = typedef DenseMap<const MCSection *, uint64_t> |
| using llvm::ShouldSchedulePredTy = typedef std::function<bool(const TargetInstrInfo &TII, const TargetSubtargetInfo &TSI, const MachineInstr *FirstMI, const MachineInstr &SecondMI)> |
Check if the instr pair, FirstMI and SecondMI, should be fused together.
Given SecondMI, when FirstMI is unspecified, then check if SecondMI may be part of a fused pair at all.
Definition at line 33 of file MacroFusion.h.
| using llvm::SizeOffsetEvalType = typedef std::pair<Value *, Value *> |
Definition at line 280 of file MemoryBuiltins.h.
| using llvm::SizeOffsetType = typedef std::pair<APInt, APInt> |
Definition at line 221 of file MemoryBuiltins.h.
| using llvm::SmallVecImplInsn = typedef SmallVectorImpl<Instruction *> |
Definition at line 120 of file GVNHoist.cpp.
| using llvm::SmallVecInsn = typedef SmallVector<Instruction *, 4> |
Definition at line 119 of file GVNHoist.cpp.
| using llvm::SMTExprRef = typedef const SMTExpr * |
| using llvm::SMTSolverRef = typedef std::shared_ptr<SMTSolver> |
| using llvm::SMTSortRef = typedef const SMTSort * |
| using llvm::StackSafetyGlobalInfo = typedef std::map<const GlobalValue *, StackSafetyInfo> |
Definition at line 75 of file StackSafetyAnalysis.h.
| using llvm::Statistic = typedef TrackingStatistic |
Definition at line 160 of file Statistic.h.
| using llvm::succ_const_iterator = typedef SuccIterator<const Instruction, const BasicBlock> |
| using llvm::succ_const_range = typedef iterator_range<succ_const_iterator> |
| using llvm::succ_iterator = typedef SuccIterator<Instruction, BasicBlock> |
| using llvm::succ_range = typedef iterator_range<succ_iterator> |
| using llvm::SummaryEntryVector = typedef std::vector<ProfileSummaryEntry> |
Definition at line 41 of file ProfileSummary.h.
| using llvm::TableGenMainFn = typedef bool (raw_ostream &OS, RecordKeeper &Records) |
| typedef std::thread llvm::thread |
| typedef time_point<steady_clock> llvm::TimePointType |
Definition at line 30 of file TimeProfiler.cpp.
| using llvm::TrackingMDNodeRef = typedef TypedTrackingMDRef<MDNode> |
Definition at line 141 of file TrackingMDRef.h.
| using llvm::TrackingValueAsMetadataRef = typedef TypedTrackingMDRef<ValueAsMetadata> |
Definition at line 142 of file TrackingMDRef.h.
| using llvm::TypeGetter = typedef std::function<Type *(LLVMContext &)> |
Definition at line 57 of file IRMutator.h.
| using llvm::TypeIdCompatibleVtableInfo = typedef std::vector<TypeIdOffsetVtableInfo> |
List of vtable definitions decorated by a particular type identifier, and their corresponding offsets in that type identifier's metadata.
Note that each type identifier may be compatible with multiple vtables, due to inheritance, which is why this is a vector.
Definition at line 915 of file ModuleSummaryIndex.h.
| using llvm::TypeIdSummaryMapTy = typedef std::multimap<GlobalValue::GUID, std::pair<std::string, TypeIdSummary> > |
Map of a type GUID to type id string and summary (multimap used in case of GUID conflicts).
Definition at line 892 of file ModuleSummaryIndex.h.
| using llvm::uint24_t = typedef Uint24 |
Definition at line 33 of file DataExtractor.h.
| using llvm::UnderlyingObjectsVector = typedef SmallVector<UnderlyingObject, 4> |
Definition at line 116 of file ScheduleDAGInstrs.h.
| using llvm::unique_value = typedef std::unique_ptr<Value, ValueDeleter> |
Use this instead of std::unique_ptr<Value> or std::unique_ptr<Instruction>.
Those don't work because Value and Instruction's destructors are protected, aren't virtual, and won't destroy the complete object.
| using llvm::UniquingStringPool = typedef StrongType<NonRelocatableStringpool, UniqueTag> |
Definition at line 78 of file NonRelocatableStringpool.h.
| using llvm::UseListOrderStack = typedef std::vector<UseListOrder> |
Definition at line 39 of file UseListOrder.h.
| typedef unsigned short llvm::UTF16 |
Definition at line 110 of file ConvertUTF.h.
| typedef unsigned int llvm::UTF32 |
Definition at line 109 of file ConvertUTF.h.
| typedef unsigned char llvm::UTF8 |
Definition at line 111 of file ConvertUTF.h.
| typedef DenseMap<Value *, VPValue *> llvm::Value2VPValueTy |
Definition at line 124 of file VPlanValue.h.
| using llvm::ValueName = typedef StringMapEntry<Value *> |
| typedef std::vector<GenericValue> llvm::ValuePlaneTy |
Definition at line 55 of file Interpreter.h.
| using llvm::ValueToValueMap = typedef DenseMap<const Value *, Value *> |
Definition at line 785 of file ScalarEvolutionExpressions.h.
| typedef ValueMap< const Value *, WeakTrackingVH > llvm::ValueToValueMapTy |
Definition at line 64 of file MemorySSAUpdater.h.
| using llvm::ValueToVReg = typedef DenseMap<const Value *, unsigned> |
Map a value to a virtual register.
For now, we chose to map aggregate types to on single virtual register. This might be revisited if it turns out to be inefficient. PR26161 tracks that. Note: We need to expose this type to the target hooks for thing like ABI lowering that would be used during IRTranslation.
| using llvm::ValueType = typedef PointerUnion<const Value *, const PseudoSourceValue *> |
Definition at line 106 of file ScheduleDAGInstrs.h.
| using llvm::VNtoInsns = typedef DenseMap<VNType, SmallVector<Instruction *, 4> > |
Definition at line 131 of file GVNHoist.cpp.
| using llvm::VNType = typedef std::pair<unsigned, unsigned> |
Definition at line 129 of file GVNHoist.cpp.
| using llvm::VPDominatorTree = typedef DomTreeBase<VPBlockBase> |
Template specialization of the standard LLVM dominator tree utility for VPBlockBases.
Definition at line 26 of file VPlanDominatorTree.h.
| using llvm::VPDomTreeNode = typedef DomTreeNodeBase<VPBlockBase> |
Definition at line 28 of file VPlanDominatorTree.h.
| using llvm::VPlanPtr = typedef std::unique_ptr<VPlan> |
| typedef LoopInfoBase<VPBlockBase, VPLoop> llvm::VPLoopInfo |
VPLoopInfo provides analysis of natural loop for VPBlockBase-based Hierarchical CFG.
It is a specialization of LoopInfoBase class.
Definition at line 40 of file VPlanLoopInfo.h.
| typedef DenseMap<VPValue *, Value *> llvm::VPValue2ValueTy |
Definition at line 125 of file VPlanValue.h.
| using llvm::VReg2SUnitMap = typedef SparseSet<VReg2SUnit, VirtReg2IndexFunctor> |
Use SparseSet as a SparseMap by relying on the fact that it never compares ValueT's, only unsigned keys.
This allows the set to be cleared between scheduling regions in constant time as long as ValueT does not require a destructor.
Definition at line 96 of file ScheduleDAGInstrs.h.
| using llvm::VReg2SUnitMultiMap = typedef SparseMultiSet<VReg2SUnit, VirtReg2IndexFunctor> |
Track local uses of virtual registers.
These uses are gathered by the DAG builder and may be consulted by the scheduler to avoid iterating an entire vreg use list.
Definition at line 101 of file ScheduleDAGInstrs.h.
| using llvm::VReg2SUnitOperIdxMultiMap = typedef SparseMultiSet<VReg2SUnitOperIdx, VirtReg2IndexFunctor> |
Definition at line 104 of file ScheduleDAGInstrs.h.
| using llvm::VTableFuncList = typedef std::vector<VirtFuncOffset> |
List of functions referenced by a particular vtable definition.
Definition at line 741 of file ModuleSummaryIndex.h.
| anonymous enum |
| Enumerator | |
|---|---|
| GIM_Try | Begin a try-block to attempt a match and jump to OnFail if it is unsuccessful.
FIXME: This ought to take an argument indicating the number of try-blocks to exit on failure. It's usually one but the last match attempt of a block will need more. The (implemented) alternative is to tack a GIM_Reject on the end of each try-block which is simpler but requires an extra opcode and iteration in the interpreter on each failed match. |
| GIM_SwitchOpcode | Switch over the opcode on the specified instruction.
|
| GIM_SwitchType | Switch over the LLT on the specified instruction operand.
|
| GIM_RecordInsn | Record the specified instruction.
|
| GIM_CheckFeatures | Check the feature bits.
|
| GIM_CheckOpcode | Check the opcode on the specified instruction.
|
| GIM_CheckNumOperands | Check the instruction has the right number of operands.
|
| GIM_CheckI64ImmPredicate | Check an immediate predicate on the specified instruction.
|
| GIM_CheckAPIntImmPredicate | Check an immediate predicate on the specified instruction via an APInt.
|
| GIM_CheckAPFloatImmPredicate | Check a floating point immediate predicate on the specified instruction.
|
| GIM_CheckAtomicOrdering | Check a memory operation has the specified atomic ordering.
|
| GIM_CheckAtomicOrderingOrStrongerThan | |
| GIM_CheckAtomicOrderingWeakerThan | |
| GIM_CheckMemorySizeEqualTo | Check the size of the memory access for the given machine memory operand.
|
| GIM_CheckMemoryAddressSpace | Check the address space of the memory access for the given machine memory operand.
|
| GIM_CheckMemoryAlignment | Check the minimum alignment of the memory access for the given machine memory operand.
|
| GIM_CheckMemorySizeEqualToLLT | Check the size of the memory access for the given machine memory operand against the size of an operand.
|
| GIM_CheckMemorySizeLessThanLLT | |
| GIM_CheckMemorySizeGreaterThanLLT | |
| GIM_CheckCxxInsnPredicate | Check a generic C++ instruction predicate.
|
| GIM_CheckType | Check the type for the specified operand.
|
| GIM_CheckPointerToAny | Check the type of a pointer to any address space.
|
| GIM_CheckRegBankForClass | Check the register bank for the specified operand.
|
| GIM_CheckComplexPattern | Check the operand matches a complex predicate.
|
| GIM_CheckConstantInt | Check the operand is a specific integer.
|
| GIM_CheckLiteralInt | Check the operand is a specific literal integer (i.e. MO.isImm() or MO.isCImm() is true).
|
| GIM_CheckIntrinsicID | Check the operand is a specific intrinsic ID.
|
| GIM_CheckCmpPredicate | Check the operand is a specific predicate.
|
| GIM_CheckIsMBB | Check the specified operand is an MBB.
|
| GIM_CheckIsImm | Check the specified operand is an Imm.
|
| GIM_CheckIsSafeToFold | Check if the specified operand is safe to fold into the current instruction.
|
| GIM_CheckIsSameOperand | Check the specified operands are identical.
|
| GIM_Reject | Fail the current try-block, or completely fail to match if there is no current try-block. |
| GIR_MutateOpcode | Mutate an instruction.
|
| GIR_BuildMI | Build a new instruction.
|
| GIR_Copy | Copy an operand to the specified instruction.
|
| GIR_CopyOrAddZeroReg | Copy an operand to the specified instruction or add a zero register if the operand is a zero immediate.
|
| GIR_CopySubReg | Copy an operand to the specified instruction.
|
| GIR_AddImplicitDef | Add an implicit register def to the specified instruction.
|
| GIR_AddImplicitUse | Add an implicit register use to the specified instruction.
|
| GIR_AddRegister | Add an register to the specified instruction.
|
| GIR_AddTempRegister | Add a temporary register to the specified instruction.
|
| GIR_AddImm | Add an immediate to the specified instruction.
|
| GIR_ComplexRenderer | Render complex operands to the specified instruction.
|
| GIR_ComplexSubOperandRenderer | Render sub-operands of complex operands to the specified instruction.
|
| GIR_CustomRenderer | Render operands to the specified instruction using a custom function.
|
| GIR_CustomOperandRenderer | Render operands to the specified instruction using a custom function, reading from a specific operand.
|
| GIR_CopyConstantAsSImm | Render a G_CONSTANT operator as a sign-extended immediate.
|
| GIR_CopyFConstantAsFPImm | Render a G_FCONSTANT operator as a sign-extended immediate.
|
| GIR_ConstrainOperandRC | Constrain an instruction operand to a register class.
|
| GIR_ConstrainSelectedInstOperands | Constrain an instructions operands according to the instruction description.
|
| GIR_MergeMemOperands | Merge all memory operands into instruction.
|
| GIR_EraseFromParent | Erase from parent.
|
| GIR_MakeTempReg | Create a new temporary register that's not constrained.
|
| GIR_Done | A successful emission. |
| GIR_Coverage | Increment the rule coverage counter.
|
| GIU_NumOpcodes | Keeping track of the number of the GI opcodes. Must be the last entry. |
Definition at line 71 of file InstructionSelector.h.
| anonymous enum |
| Enumerator | |
|---|---|
| GIU_MergeMemOperands_EndOfList | Indicates the end of the variable-length MergeInsnID list in a GIR_MergeMemOperands opcode. |
Definition at line 374 of file InstructionSelector.h.
| anonymous enum |
GlobalISel PatFrag Predicates.
| Enumerator | |
|---|---|
| GIPFP_I64_Invalid | |
| GIPFP_APInt_Invalid | |
| GIPFP_APFloat_Invalid | |
| GIPFP_MI_Invalid | |
Definition at line 40 of file InstructionSelectorImpl.h.
| anonymous enum : int |
This is a llvm local version of __cxa_demangle.
Other than the name and being in the llvm namespace it is identical.
The mangled_name is demangled into buf and returned. If the buffer is not large enough, realloc is used to expand it.
The *status will be set to a value from the following enumeration
| Enumerator | |
|---|---|
| demangle_unknown_error | |
| demangle_invalid_args | |
| demangle_invalid_mangled_name | |
| demangle_memory_alloc_failure | |
| demangle_success | |
Definition at line 23 of file Demangle.h.
| anonymous enum : unsigned |
| Enumerator | |
|---|---|
| INVALID_MEMORYACCESS_ID | |
Definition at line 125 of file MemorySSA.h.
| anonymous enum |
| Enumerator | |
|---|---|
| kSanitizerStatKindBits | |
Definition at line 22 of file SanitizerStats.h.
| anonymous enum |
| Enumerator | |
|---|---|
| SM_SentinelUndef | |
| SM_SentinelZero | |
Definition at line 27 of file X86ShuffleDecode.h.
| anonymous enum |
Definition at line 20 of file X86InstrFoldTables.h.
| anonymous enum : unsigned |
| Enumerator | |
|---|---|
| InvalidVN | |
Definition at line 164 of file GVNHoist.cpp.
Use to report the frame offset status in isAArch64FrameOffsetLegal.
| Enumerator | |
|---|---|
| AArch64FrameOffsetCannotUpdate | Offset cannot apply. |
| AArch64FrameOffsetIsLegal | Offset is legal. |
| AArch64FrameOffsetCanUpdate | Offset can apply, at least partly. |
Definition at line 327 of file AArch64InstrInfo.h.
|
strong |
The kind of accelerator tables we should emit.
| Enumerator | |
|---|---|
| Default | Platform default. |
| None | None. |
| Apple | .apple_names, .apple_namespaces, .apple_types, .apple_objc. |
| Dwarf | DWARF v5 .debug_names. |
Definition at line 289 of file DwarfDebug.h.
| enum llvm::AddressSpace |
| Enumerator | |
|---|---|
| ADDRESS_SPACE_GENERIC | |
| ADDRESS_SPACE_GLOBAL | |
| ADDRESS_SPACE_SHARED | |
| ADDRESS_SPACE_CONST | |
| ADDRESS_SPACE_LOCAL | |
| ADDRESS_SPACE_PARAM | |
Definition at line 21 of file NVPTXBaseInfo.h.
| enum llvm::AliasResult : uint8_t |
The possible results of an alias query.
These results are always computed between two MemoryLocation objects as a query to some alias analysis.
Note that these are unscoped enumerations because we would like to support implicitly testing a result for the existence of any possible aliasing with a conversion to bool, but an "enum class" doesn't support this. The canonical names from the literature are suffixed and unique anyways, and so they serve as global constants in LLVM for these results.
See docs/AliasAnalysis.html for more information on the specific meanings of these values.
Definition at line 78 of file AliasAnalysis.h.
|
strong |
| Enumerator | |
|---|---|
| Left | |
| Center | |
| Right | |
Definition at line 17 of file FormatCommon.h.
| enum llvm::AlignTypeEnum |
Enum used to categorize the alignment types stored by LayoutAlignElem.
| Enumerator | |
|---|---|
| INVALID_ALIGN | |
| INTEGER_ALIGN | |
| VECTOR_ALIGN | |
| FLOAT_ALIGN | |
| AGGREGATE_ALIGN | |
Definition at line 51 of file DataLayout.h.
| enum llvm::AsmRewriteKind |
| Enumerator | |
|---|---|
| AOK_Align | |
| AOK_EVEN | |
| AOK_Emit | |
| AOK_CallInput | |
| AOK_Input | |
| AOK_Output | |
| AOK_SizeDirective | |
| AOK_Label | |
| AOK_EndOfStatement | |
| AOK_Skip | |
| AOK_IntelExpr | |
Definition at line 34 of file MCTargetAsmParser.h.
|
strong |
| Enumerator | |
|---|---|
| failed_to_create_uniq_file | |
| output_stream_error | |
| failed_to_rename_temp_file | |
Definition at line 79 of file FileUtilities.h.
|
strong |
Atomic ordering for LLVM's memory model.
C++ defines ordering as a lattice. LLVM supplements this with NotAtomic and Unordered, which are both below the C++ orders.
not_atomic–>unordered–>relaxed–>release------------—>acq_rel–>seq_cst -->consume–>acquire–/
| Enumerator | |
|---|---|
| NotAtomic | |
| Unordered | |
| Monotonic | |
| Acquire | |
| Release | |
| AcquireRelease | |
| SequentiallyConsistent | |
Definition at line 56 of file AtomicOrdering.h.
|
strong |
Atomic ordering for C11 / C++11's memody models.
These values cannot change because they are shared with standard library implementations as well as with other compilers.
| Enumerator | |
|---|---|
| relaxed | |
| consume | |
| acquire | |
| release | |
| acq_rel | |
| seq_cst | |
Definition at line 28 of file AtomicOrdering.h.
| Enumerator | |
|---|---|
| BSF_None | |
| BSF_Write | |
| BSF_Append | |
Definition at line 21 of file BinaryStream.h.
|
strong |
| Enumerator | |
|---|---|
| CorruptedBitcode | |
Definition at line 259 of file BitcodeReader.h.
Offsets of the 32-bit fields of bitstream wrapper header.
| Enumerator | |
|---|---|
| BWH_MagicField | |
| BWH_VersionField | |
| BWH_OffsetField | |
| BWH_SizeField | |
| BWH_CPUTypeField | |
| BWH_HeaderSize | |
Definition at line 27 of file BitCodes.h.
The type of CFI jumptable needed for a function.
| Enumerator | |
|---|---|
| CFL_Definition | |
| CFL_Declaration | |
| CFL_WeakDeclaration | |
Definition at line 25 of file TypeMetadataUtils.h.
|
strong |
Simple enum classes that forces properties to be spelled out explicitly.
{
| Enumerator | |
|---|---|
| CHANGED | |
| UNCHANGED | |
Definition at line 122 of file Attributor.h.
|
strong |
| Enumerator | |
|---|---|
| Catch | |
| Finally | |
| Fault | |
| Filter | |
Definition at line 79 of file WinEHFuncInfo.h.
| enum llvm::CombineLevel |
| Enumerator | |
|---|---|
| BeforeLegalizeTypes | |
| AfterLegalizeTypes | |
| AfterLegalizeVectorOps | |
| AfterLegalizeDAG | |
Definition at line 15 of file DAGCombine.h.
| Enumerator | |
|---|---|
| strictConversion | |
| lenientConversion | |
Definition at line 133 of file ConvertUTF.h.
| Enumerator | |
|---|---|
| conversionOK | |
| sourceExhausted | |
| targetExhausted | |
| sourceIllegal | |
Definition at line 126 of file ConvertUTF.h.
CurStreamTypeType - A type for CurStreamType.
| Enumerator | |
|---|---|
| UnknownBitstream | |
| LLVMIRBitstream | |
| ClangSerializedASTBitstream | |
| ClangSerializedDiagnosticsBitstream | |
| LLVMBitstreamRemarks | |
Definition at line 28 of file BitcodeAnalyzer.h.
|
strong |
| Enumerator | |
|---|---|
| None | No compression. |
| GNU | zlib-gnu style compression |
| Z | zlib style complession |
Definition at line 26 of file MCTargetOptions.h.
|
strong |
Identify a debugger for "tuning" the debug info.
The "debugger tuning" concept allows us to present a more intuitive interface that unpacks into different sets of defaults for the various individual feature-flag settings, that suit the preferences of the various debuggers. However, it's worth remembering that debuggers are not the only consumers of debug info, and some variations in DWARF might better be treated as target/platform issues. Fundamentally, o if the feature is useful (or not) to a particular debugger, regardless of the target, that's a tuning decision; o if the feature is useful (or not) on a particular platform, regardless of the debugger, that's a target decision. It's not impossible to see both factors in some specific case.
The "tuning" should be used to set defaults for individual feature flags in DwarfDebug; if a given feature has a more specific command-line option, that option should take precedence over the tuning.
| Enumerator | |
|---|---|
| Default | |
| GDB | |
| LLDB | |
| SCE | |
Definition at line 91 of file TargetOptions.h.
|
strong |
Represent handled modes for denormal (aka subnormal) modes in the floating point environment.
| Enumerator | |
|---|---|
| Invalid | |
| IEEE | IEEE-754 denormal numbers preserved. |
| PreserveSign | The sign of a flushed-to-zero number is preserved in the sign of 0. |
| PositiveZero | Denormals are flushed to positive zero. |
Definition at line 22 of file FloatingPointMode.h.
|
strong |
| Enumerator | |
|---|---|
| REQUIRED | |
| OPTIONAL | |
Definition at line 130 of file Attributor.h.
| enum llvm::DiagnosticKind |
Defines the different supported kind of a diagnostic.
This enum should be extended with a new ID for each added concrete subclass.
Definition at line 53 of file DiagnosticInfo.h.
|
strong |
| Enumerator | |
|---|---|
| Match | |
| NearMatch | |
| NoMatch | |
Definition at line 128 of file MCTargetAsmParser.h.
| enum llvm::DiagnosticSeverity : char |
Defines the different supported severity of a diagnostic.
| Enumerator | |
|---|---|
| DS_Error | |
| DS_Warning | |
| DS_Remark | |
| DS_Note | |
Definition at line 42 of file DiagnosticInfo.h.
| enum llvm::DIDumpType : unsigned |
Selects which debug sections get dumped.
| Enumerator | |
|---|---|
| DIDT_Null | |
| DIDT_All | |
| DIDT_UUID | |
Definition at line 159 of file DIContext.h.
This is just a helper to programmatically construct DIDumpType.
| Enumerator | |
|---|---|
| DIDT_ID_UUID | |
| DIDT_ID_Count | |
Definition at line 148 of file DIContext.h.
|
strong |
A DINameKind is passed to name search methods to specify a preference regarding the type of name resolution the caller wants.
| Enumerator | |
|---|---|
| None | |
| ShortName | |
| LinkageName | |
Definition at line 131 of file DIContext.h.
|
strong |
| Enumerator | |
|---|---|
| Dsymutil | |
| LLD | |
| General | |
Definition at line 22 of file DWARFLinker.h.
| Enumerator | |
|---|---|
| DW_SECT_INFO | |
| DW_SECT_TYPES | |
| DW_SECT_ABBREV | |
| DW_SECT_LINE | |
| DW_SECT_LOC | |
| DW_SECT_STR_OFFSETS | |
| DW_SECT_MACINFO | |
| DW_SECT_MACRO | |
Definition at line 22 of file DWARFUnitIndex.h.
|
strong |
| Enumerator | |
|---|---|
| Unknown | |
| Default | |
| EABI4 | |
| EABI5 | |
| GNU | |
Definition at line 66 of file TargetOptions.h.
|
strong |
| Enumerator | |
|---|---|
| Unknown | |
| GNU_Ada | |
| GNU_C | |
| GNU_C_SjLj | |
| GNU_CXX | |
| GNU_CXX_SjLj | |
| GNU_ObjC | |
| MSVC_X86SEH | |
| MSVC_Win64SEH | |
| MSVC_CXX | |
| CoreCLR | |
| Rust | |
| Wasm_CXX | |
Definition at line 22 of file EHPersonalities.h.
|
strong |
|
strong |
Used as a return value for a error callback passed to DWARF context.
Callback should return Halt if client application wants to stop object parsing, or should return Continue otherwise.
| Enumerator | |
|---|---|
| Halt | |
| Continue | |
Definition at line 53 of file DWARFContext.h.
| enum llvm::EventTag |
| Enumerator | |
|---|---|
| CPP_EXCEPTION | |
| C_LONGJMP | |
Definition at line 23 of file WasmEHFuncInfo.h.
|
strong |
| Enumerator | |
|---|---|
| None | No exception support. |
| DwarfCFI | DWARF-like instruction based exceptions. |
| SjLj | setjmp/longjmp based exceptions |
| ARM | ARM EHABI. |
| WinEH | Windows Exception Handling. |
| Wasm | WebAssembly Exception Handling. |
Definition at line 17 of file MCTargetOptions.h.
|
strong |
| Enumerator | |
|---|---|
| Exponent | |
| ExponentUpper | |
| Fixed | |
| Percent | |
Definition at line 18 of file NativeFormatting.h.
Summary of how a function affects memory in the program.
Loads from constant globals are not considered memory accesses for this interface. Also, functions may freely modify stack space local to their invocation without having to report it through these interfaces.
Definition at line 216 of file AliasAnalysis.h.
The locations at which a function might access memory.
These are primarily used in conjunction with the AccessKind bits to describe both the nature of access and the locations of access for a function call.
Definition at line 200 of file AliasAnalysis.h.
|
strong |
Enable abort calls when global instruction selection fails to lower/select an instruction.
| Enumerator | |
|---|---|
| Disable | |
| Enable | |
| DisableWithDiag | |
Definition at line 100 of file TargetOptions.h.
| enum llvm::GVDAGType |
| Enumerator | |
|---|---|
| GVDT_None | |
| GVDT_Fraction | |
| GVDT_Integer | |
| GVDT_Count | |
Definition at line 1364 of file BlockFrequencyInfoImpl.h.
|
strong |
| Enumerator | |
|---|---|
| Upper | |
| Lower | |
| PrefixUpper | |
| PrefixLower | |
Definition at line 23 of file NativeFormatting.h.
|
strong |
| Enumerator | |
|---|---|
| Address | |
| String | |
| Tag | |
| Attribute | |
| Enumerator | |
| Macro | |
| Error | |
| Warning | |
| Note | |
| Remark | |
Definition at line 22 of file WithColor.h.
|
strong |
Definition at line 275 of file InstrProf.h.
Definition at line 56 of file InstrProf.h.
| enum llvm::InstrProfValueKind : uint32_t |
Definition at line 232 of file InstrProf.h.
|
strong |
| Enumerator | |
|---|---|
| Integer | |
| Number | |
Definition at line 19 of file NativeFormatting.h.
| Enumerator | |
|---|---|
| INTERNAL_REL_ARM64_LONG_BRANCH26 | |
Definition at line 30 of file RuntimeDyldCOFFAArch64.h.
| enum llvm::IntrinsicType : uint16_t |
Definition at line 22 of file X86IntrinsicsInfo.h.
| enum llvm::LibFunc : unsigned |
| Enumerator | |
|---|---|
| NumLibFuncs | |
| NotLibFunc | |
Definition at line 34 of file TargetLibraryInfo.h.
| enum llvm::LLVMConstants : uint32_t |
| Enumerator | |
|---|---|
| DEBUG_METADATA_VERSION | |
Definition at line 51 of file Metadata.h.
| Enumerator | |
|---|---|
| LPD_Front | Peel the first iteration of the loop. |
| LPD_Back | Peel the last iteration of the loop. |
Definition at line 18 of file MachineLoopUtils.h.
|
strong |
Represents the result of a UnrollLoop invocation.
Definition at line 53 of file UnrollLoop.h.
| enum llvm::lostFraction |
|
strong |
These are instruction patterns matched by the machine combiner pass.
Definition at line 20 of file MachineCombinerPattern.h.
| Enumerator | |
|---|---|
| MCDR_DataRegion | .data_region |
| MCDR_DataRegionJT8 | .data_region jt8 |
| MCDR_DataRegionJT16 | .data_region jt16 |
| MCDR_DataRegionJT32 | .data_region jt32 |
| MCDR_DataRegionEnd | .end_data_region |
Definition at line 57 of file MCDirectives.h.
| enum llvm::MCFixupKind |
Extensible enumeration to represent the type of a fixup.
| enum llvm::MCLOHType |
Linker Optimization Hint Type.
Definition at line 33 of file MCLinkerOptimizationHint.h.
| enum llvm::MCSymbolAttr |
| Enumerator | |
|---|---|
| MCSA_Invalid | Not a valid directive. |
| MCSA_Cold | .cold (MachO) |
| MCSA_ELF_TypeFunction | .type _foo, STT_FUNC # aka |
| MCSA_ELF_TypeIndFunction | .type _foo, STT_GNU_IFUNC |
| MCSA_ELF_TypeObject | .type _foo, STT_OBJECT # aka |
| MCSA_ELF_TypeTLS | .type _foo, STT_TLS # aka |
| MCSA_ELF_TypeCommon | .type _foo, STT_COMMON # aka |
| MCSA_ELF_TypeNoType | .type _foo, STT_NOTYPE # aka |
| MCSA_ELF_TypeGnuUniqueObject | |
| MCSA_Global | .type _foo, .globl |
| MCSA_LGlobal | .lglobl (XCOFF) |
| MCSA_Hidden | .hidden (ELF) |
| MCSA_IndirectSymbol | .indirect_symbol (MachO) |
| MCSA_Internal | .internal (ELF) |
| MCSA_LazyReference | .lazy_reference (MachO) |
| MCSA_Local | .local (ELF) |
| MCSA_NoDeadStrip | .no_dead_strip (MachO) |
| MCSA_SymbolResolver | .symbol_resolver (MachO) |
| MCSA_AltEntry | .alt_entry (MachO) |
| MCSA_PrivateExtern | .private_extern (MachO) |
| MCSA_Protected | .protected (ELF) |
| MCSA_Reference | .reference (MachO) |
| MCSA_Weak | .weak |
| MCSA_WeakDefinition | .weak_definition (MachO) |
| MCSA_WeakReference | .weak_reference (MachO) |
| MCSA_WeakDefAutoPrivate | .weak_def_can_be_hidden (MachO) |
Definition at line 18 of file MCDirectives.h.
| Enumerator | |
|---|---|
| MCVM_IOSVersionMin | .ios_version_min |
| MCVM_OSXVersionMin | .macosx_version_min |
| MCVM_TvOSVersionMin | .tvos_version_min |
| MCVM_WatchOSVersionMin | .watchos_version_min |
Definition at line 65 of file MCDirectives.h.
The three kinds of memory access relevant to 'readonly' and 'readnone' attributes.
| Enumerator | |
|---|---|
| MAK_ReadNone | |
| MAK_ReadOnly | |
| MAK_MayWrite | |
| MAK_WriteOnly | |
Definition at line 31 of file FunctionAttrs.h.
|
strong |
Flags indicating whether a memory access modifies or references memory.
This is no access at all, a modification, a reference, or both a modification and a reference. These are specifically structured such that they form a three bit matrix and bit-tests for 'mod' or 'ref' or 'must' work with any of the possible values.
Definition at line 102 of file AliasAnalysis.h.
| Enumerator | |
|---|---|
| MSDF_None | |
| MSDF_DumpBackrefs | |
| MSDF_NoAccessSpecifier | |
| MSDF_NoCallingConvention | |
| MSDF_NoReturnType | |
| MSDF_NoMemberType | |
Definition at line 35 of file Demangle.h.
|
strong |
| Enumerator | |
|---|---|
| MatchOperand_Success | |
| MatchOperand_NoMatch | |
| MatchOperand_ParseFail | |
Definition at line 122 of file MCTargetAsmParser.h.
| Enumerator | |
|---|---|
| AcknowledgeORCv1Deprecation | |
Definition at line 18 of file OrcV1Deprecation.h.
|
strong |
Definition at line 447 of file ValueTracking.h.
| Enumerator | |
|---|---|
| EXECUTION_MSG | |
| MODIFICATION_MSG | |
| FREEING_MSG | |
| ON_FUNCTION_MSG | |
| ON_MODULE_MSG | |
| ON_REGION_MSG | |
| ON_LOOP_MSG | |
| ON_CG_MSG | |
Definition at line 98 of file LegacyPassManagers.h.
| enum llvm::PassKind |
Different types of internal pass managers.
External pass managers (PassManager and FunctionPassManager) are not represented here. Ordering of pass manager types is important here.
| Enumerator | |
|---|---|
| PMT_Unknown | |
| PMT_ModulePassManager | MPPassManager. |
| PMT_CallGraphPassManager | CGPassManager. |
| PMT_FunctionPassManager | |
| PMT_LoopPassManager | |
| PMT_RegionPassManager | |
| PMT_Last | |
|
strong |
| Enumerator | |
|---|---|
| PGOVCT_None | |
| PGOVCT_Graph | |
| PGOVCT_Text | |
Definition at line 33 of file BlockFrequencyInfo.h.
|
strong |
| Enumerator | |
|---|---|
| IRPass | |
| Test | |
| Other | |
Definition at line 35 of file SizeOpts.h.
| enum llvm::PredicateType |
| Enumerator | |
|---|---|
| PT_Branch | |
| PT_Assume | |
| PT_Switch | |
Definition at line 95 of file PredicateInfo.h.
|
strong |
PrevailingType enum used as a return type of callback passed to computeDeadSymbols.
Yes and No values used when status explicitly set by symbols resolution, otherwise status is Unknown.
| Enumerator | |
|---|---|
| Yes | |
| No | |
| Unknown | |
Definition at line 166 of file FunctionImport.h.
| enum llvm::RemapFlags |
These are flags that the value mapping APIs allow.
| Enumerator | |
|---|---|
| RF_None | |
| RF_NoModuleLevelChanges | If this flag is set, the remapper knows that only local values within a function (such as an instruction or argument) are mapped, not global values like functions and global metadata. |
| RF_IgnoreMissingLocals | If this flag is set, the remapper ignores missing function-local entries (Argument, Instruction, BasicBlock) that are not in the value map. If it is unset, it aborts if an operand is asked to be remapped which doesn't exist in the mapping. There are no such assertions in MapValue(), whose results are almost unchanged by this flag. This flag mainly changes the assertion behaviour in RemapInstruction(). Since an Instruction's metadata operands (even that point to SSA values) aren't guaranteed to be dominated by their definitions, MapMetadata will return "!{}" instead of "null" for LocalAsMetadata instances whose SSA values are unmapped when this flag is set. Otherwise, MapValue() completely ignores this flag. MapMetadata() always ignores this flag. |
| RF_MoveDistinctMDs | Instruct the remapper to move distinct metadata instead of duplicating it when there are module-level changes. |
| RF_NullMapMissingGlobalValues | Any global values not in value map are mapped to null instead of mapping to self. Illegal if RF_IgnoreMissingLocals is also set. |
Definition at line 66 of file ValueMapper.h.
|
strong |
| Enumerator | |
|---|---|
| Empty | |
| Format | |
| Literal | |
Definition at line 44 of file FormatVariadic.h.
|
strong |
Definition at line 43 of file SampleProf.h.
| Enumerator | |
|---|---|
| SanStat_CFI_VCall | |
| SanStat_CFI_NVCall | |
| SanStat_CFI_DerivedCast | |
| SanStat_CFI_UnrelatedCast | |
| SanStat_CFI_ICall | |
Definition at line 24 of file SanitizerStats.h.
| Enumerator | |
|---|---|
| CM_ScalarEpilogueAllowed | |
| CM_ScalarEpilogueNotAllowedOptSize | |
| CM_ScalarEpilogueNotAllowedLowTripLoop | |
| CM_ScalarEpilogueNotNeededUsePredicate | |
Definition at line 935 of file LoopVectorize.cpp.
| enum llvm::SCEVTypes |
| Enumerator | |
|---|---|
| scConstant | |
| scTruncate | |
| scZeroExtend | |
| scSignExtend | |
| scAddExpr | |
| scMulExpr | |
| scUDivExpr | |
| scAddRecExpr | |
| scUMaxExpr | |
| scSMaxExpr | |
| scUMinExpr | |
| scSMinExpr | |
| scUnknown | |
| scCouldNotCompute | |
Definition at line 38 of file ScalarEvolutionExpressions.h.
Specific patterns of select instructions we can match.
Definition at line 575 of file ValueTracking.h.
Behavior when a floating point min/max is given one NaN and one non-NaN as input.
Definition at line 589 of file ValueTracking.h.
|
strong |
If priority is Background tries to lower current threads priority such that it does not affect foreground tasks significantly.
Can be used for long-running, latency-insensitive tasks to make sure cpu is not hogged by this task. If the priority is default tries to restore current threads priority to default scheduling priority.
| Enumerator | |
|---|---|
| FAILURE | |
| SUCCESS | |
Definition at line 197 of file Threading.h.
| Enumerator | |
|---|---|
| NoData | |
| Data | |
Definition at line 56 of file SIMachineScheduler.h.
| Enumerator | |
|---|---|
| NoCand | |
| RegUsage | |
| Latency | |
| Successor | |
| Depth | |
| NodeOrder | |
Definition at line 31 of file SIMachineScheduler.h.
| Enumerator | |
|---|---|
| LatenciesAlone | |
| LatenciesGrouped | |
| LatenciesAlonePlusConsecutive | |
Definition at line 219 of file SIMachineScheduler.h.
| Enumerator | |
|---|---|
| BlockLatencyRegUsage | |
| BlockRegUsageLatency | |
| BlockRegUsage | |
Definition at line 315 of file SIMachineScheduler.h.
|
strong |
The statepoint intrinsic accepts a set of flags as its third argument.
Valid values come out of this set.
Definition at line 40 of file Statepoint.h.
|
strong |
| Enumerator | |
|---|---|
| unspecified | |
| stream_too_short | |
| invalid_array_size | |
| invalid_offset | |
| filesystem_error | |
Definition at line 18 of file BinaryStreamError.h.
|
strong |
| Enumerator | |
|---|---|
| Background | |
| Default | |
Definition at line 187 of file Threading.h.
The mode sets how eager a transformation should be applied.
Definition at line 223 of file LoopUtils.h.
|
strong |
| Enumerator | |
|---|---|
| Skeleton | |
| Full | |
Definition at line 43 of file DwarfCompileUnit.h.
|
strong |
Describes the type of Instruction Set Architecture.
| Enumerator | |
|---|---|
| AdvancedSIMD | |
| SVE | |
| SSE | |
| AVX | |
| AVX2 | |
| AVX512 | |
| LLVM | |
| Unknown | |
Definition at line 44 of file VectorUtils.h.
|
strong |
Describes the type of Parameters.
| Enumerator | |
|---|---|
| Vector | |
| OMP_Linear | |
| OMP_LinearRef | |
| OMP_LinearVal | |
| OMP_LinearUVal | |
| OMP_LinearPos | |
| OMP_LinearValPos | |
| OMP_LinearRefPos | |
| OMP_LinearUValPos | |
| OMP_Uniform | |
| GlobalPredicate | |
| Unknown | |
Definition at line 25 of file VectorUtils.h.
| enum llvm::VMOVModImmType |
| Enumerator | |
|---|---|
| VMOVModImm | |
| VMVNModImm | |
| MVEVMVNModImm | |
| OtherModImm | |
Definition at line 847 of file ARMISelLowering.h.
| enum llvm::VPTMaskValue |
| Enumerator | |
|---|---|
| T | |
| TT | |
| TE | |
| TTT | |
| TTE | |
| TEE | |
| TET | |
| TTTT | |
| TTTE | |
| TTEE | |
| TTET | |
| TEEE | |
| TEET | |
| TETT | |
| TETE | |
Definition at line 494 of file ARMBaseInstrInfo.h.
| enum llvm::ZeroBehavior |
The behavior an operation has on an input of 0.
| Enumerator | |
|---|---|
| ZB_Undefined | The returned value is undefined. |
| ZB_Max | The returned value is numeric_limits<T>::max() |
| ZB_Width | The returned value is numeric_limits<T>::digits. |
Definition at line 44 of file MathExtras.h.
|
static |
Definition at line 64 of file RTDyldMemoryManager.cpp.
References P, and llvm::sys::DynamicLibrary::SearchForAddressOfSymbol().
Referenced by llvm::RTDyldMemoryManager::deregisterEHFramesInProcess().
|
static |
Definition at line 51 of file RTDyldMemoryManager.cpp.
References llvm::sys::DynamicLibrary::SearchForAddressOfSymbol().
Referenced by llvm::RTDyldMemoryManager::registerEHFramesInProcess().
|
inlinestatic |
Definition at line 511 of file AArch64BaseInfo.h.
References llvm::StringSwitch< T, R >::Case(), llvm::StringSwitch< T, R >::Default(), llvm::AArch64Layout::Invalid, llvm::AArch64Layout::VL_16B, llvm::AArch64Layout::VL_1D, llvm::AArch64Layout::VL_2D, llvm::AArch64Layout::VL_2S, llvm::AArch64Layout::VL_4H, llvm::AArch64Layout::VL_4S, llvm::AArch64Layout::VL_8B, llvm::AArch64Layout::VL_8H, llvm::AArch64Layout::VL_B, llvm::AArch64Layout::VL_D, llvm::AArch64Layout::VL_H, and llvm::AArch64Layout::VL_S.
|
inlinestatic |
Definition at line 492 of file AArch64BaseInfo.h.
References llvm_unreachable, llvm::AArch64Layout::VL_16B, llvm::AArch64Layout::VL_1D, llvm::AArch64Layout::VL_2D, llvm::AArch64Layout::VL_2S, llvm::AArch64Layout::VL_4H, llvm::AArch64Layout::VL_4S, llvm::AArch64Layout::VL_8B, llvm::AArch64Layout::VL_8H, llvm::AArch64Layout::VL_B, llvm::AArch64Layout::VL_D, llvm::AArch64Layout::VL_H, and llvm::AArch64Layout::VL_S.
Returns the absolute value of the argument.
Definition at line 1233 of file APFloat.h.
References llvm::APFloat::clearSign(), and X.
Referenced by areStridedAccessesIndependent(), BUCompareLatency(), canEnableCoalescing(), checkValueWidth(), CompareNumbers(), createLoopDataPrefetchPass(), createPowWithIntegerExponent(), emitPrologueEpilogueSPUpdate(), llvm::HexagonEvaluator::evaluate(), for(), getAdjustedCmp(), llvm::IRPosition::getAttrs(), getBufferFormatWithCompCount(), getChainID(), llvm::MCSchedModel::getForwardingDelayCycles(), getIntInlineImmEncoding(), getNegatibleInsts(), getNewAlignmentDiff(), HasConditionalBranch(), hasZeroSignBit(), llvm::InterleaveGroup< llvm::Instruction >::InterleaveGroup(), llvm::ARMTargetLowering::isLegalAddImmediate(), llvm::AArch64TargetLowering::isLegalAddImmediate(), isLoopIncrement(), isTargetConstant(), isValidLSDoubleOffset(), llvm::cfg::LegalizeUpdates(), log2(), llvm::LanaiTargetLowering::LowerMUL(), mayUsePostIncMode(), possiblyDemandedEltsInMask(), llvm::X86FrameLowering::processFunctionBeforeFrameFinalized(), llvm::LoopDataPrefetchPass::run(), llvm::X86TargetLowering::SimplifyDemandedBitsForTargetNode(), and llvm::MachineBasicBlock::validateSuccProbs().
| std::enable_if<std::is_unsigned<T>::value, T>::type llvm::AbsoluteDifference | ( | T | X, |
| T | Y | ||
| ) |
Subtract two unsigned integers, X and Y, of type T and return the absolute value of the result.
Definition at line 784 of file MathExtras.h.
References max().
Referenced by isHardwareLoop(), llvm::xray::profileFromTrace(), and llvm::msf::MappedBlockStream::readBytes().
|
static |
Definition at line 34 of file RuntimeDyldCOFFAArch64.h.
References llvm::support::endian::read16le(), and llvm::support::endian::write16le().
Referenced by llvm::RuntimeDyldCOFFAArch64::resolveRelocation().
| const Loop * llvm::addClonedBlockToLoopInfo | ( | BasicBlock * | OriginalBB, |
| BasicBlock * | ClonedBB, | ||
| LoopInfo * | LI, | ||
| NewLoopsMap & | NewLoops | ||
| ) |
Adds ClonedBB to LoopInfo, creates a new loop for ClonedBB if necessary and adds a mapping from the original loop to the new loop to NewLoops.
Returns nullptr if no new loop was created and a pointer to the original loop OriginalBB was part of otherwise.
Definition at line 132 of file LoopUnroll.cpp.
References llvm::LoopBase< BlockT, LoopT >::addBasicBlockToLoop(), llvm::LoopBase< BlockT, LoopT >::addChildLoop(), llvm::LoopInfoBase< BlockT, LoopT >::addTopLevelLoop(), llvm::LoopInfoBase< BlockT, LoopT >::AllocateLoop(), assert(), llvm::LoopBase< BlockT, LoopT >::getHeader(), llvm::LoopInfoBase< BlockT, LoopT >::getLoopFor(), llvm::LoopBase< BlockT, LoopT >::getParentLoop(), and llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::lookup().
Referenced by CloneLoopBlocks(), and UnrollLoop().
|
inlinestatic |
addConstantPoolReference - This function is used to add a reference to the base of a constant value spilled to the per-function constant pool.
The reference uses the abstract ConstantPoolIndex which is retained until either machine code emission or assembly output. In PIC mode on x86-32, the GlobalBaseReg parameter can be used to make this a GlobalBaseReg-relative reference.
Definition at line 223 of file X86InstrBuilder.h.
References llvm::MachineInstrBuilder::addConstantPoolIndex(), llvm::MachineInstrBuilder::addImm(), and llvm::MachineInstrBuilder::addReg().
Referenced by canTurnIntoCOPY(), and computeBytesPoppedByCalleeForSRet().
| void llvm::addCoroutinePassesToExtensionPoints | ( | PassManagerBuilder & | Builder | ) |
Add all coroutine passes to appropriate extension points.
Definition at line 81 of file Coroutines.cpp.
References addCoroutineEarlyPasses(), addCoroutineOpt0Passes(), addCoroutineOptimizerLastPasses(), addCoroutineScalarOptimizerPasses(), addCoroutineSCCPasses(), llvm::PassManagerBuilder::addExtension(), llvm::PassManagerBuilder::EP_CGSCCOptimizerLate, llvm::PassManagerBuilder::EP_EarlyAsPossible, llvm::PassManagerBuilder::EP_EnabledOnOptLevel0, llvm::PassManagerBuilder::EP_OptimizerLast, and llvm::PassManagerBuilder::EP_ScalarOptimizerLate.
|
inlinestatic |
addDirectMem - This function is used to add a direct memory reference to the current instruction – that is, a dereference of an address in a register, with no scale, index or displacement.
An example is: DWORD PTR [EAX].
Definition at line 124 of file X86InstrBuilder.h.
References llvm::MachineInstrBuilder::addImm(), and llvm::MachineInstrBuilder::addReg().
Referenced by canTurnIntoCOPY(), computeBytesPoppedByCalleeForSRet(), and createPHIsForCMOVsInSinkBB().
|
inlinestatic |
Add a BDX memory reference for frame object FI to MIB.
Definition at line 26 of file SystemZInstrBuilder.h.
References llvm::MachineInstrBuilder::addFrameIndex(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addMemOperand(), llvm::MachineInstrBuilder::addReg(), llvm::MachineInstr::getDesc(), llvm::MachinePointerInfo::getFixedStack(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineFrameInfo::getObjectAlignment(), llvm::MachineFrameInfo::getObjectSize(), llvm::MachineBasicBlock::getParent(), llvm::MachineInstr::getParent(), llvm::MCInstrDesc::mayLoad(), llvm::MCInstrDesc::mayStore(), MI, llvm::MachineMemOperand::MOLoad, llvm::MachineMemOperand::MONone, and llvm::MachineMemOperand::MOStore.
|
inlinestatic |
addFrameReference - This function is used to add a reference to the base of an abstract object on the stack frame of the current function.
This reference has base register as the FrameIndex offset until it is resolved. This allows a constant offset to be specified as well...
Definition at line 32 of file PPCInstrBuilder.h.
References llvm::MachineInstrBuilder::addFrameIndex(), and llvm::MachineInstrBuilder::addImm().
Referenced by computeBytesPoppedByCalleeForSRet(), llvm::X86TargetLowering::EmitInstrWithCustomInserter(), llvm::PPCInstrInfo::getLoadOpcodeForSpill(), getRetpolineSymbol(), llvm::SystemZInstrInfo::loadRegFromStackSlot(), llvm::X86InstrInfo::loadRegFromStackSlot(), llvm::PPCRegisterInfo::lowerCRBitRestore(), llvm::PPCRegisterInfo::lowerCRBitSpilling(), llvm::PPCRegisterInfo::lowerCRRestore(), llvm::PPCRegisterInfo::lowerCRSpilling(), llvm::PPCRegisterInfo::lowerVRSAVERestore(), llvm::PPCRegisterInfo::lowerVRSAVESpilling(), llvm::X86FrameLowering::processFunctionBeforeFrameFinalized(), restoreCRs(), llvm::PPCFrameLowering::spillCalleeSavedRegisters(), llvm::SystemZInstrInfo::storeRegToStackSlot(), llvm::PPCInstrInfo::storeRegToStackSlot(), and llvm::X86InstrInfo::storeRegToStackSlot().
|
inlinestatic |
addFrameReference - This function is used to add a reference to the base of an abstract object on the stack frame of the current function.
This reference has base register as the FrameIndex offset until it is resolved. This allows a constant offset to be specified as well...
Definition at line 198 of file X86InstrBuilder.h.
References llvm::MachineInstrBuilder::addFrameIndex(), addOffset(), llvm::MachineInstr::getDesc(), llvm::MachinePointerInfo::getFixedStack(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineFrameInfo::getObjectAlignment(), llvm::MachineFrameInfo::getObjectSize(), llvm::MachineBasicBlock::getParent(), llvm::MachineInstr::getParent(), llvm::MCInstrDesc::mayLoad(), llvm::MCInstrDesc::mayStore(), MI, llvm::MachineMemOperand::MOLoad, llvm::MachineMemOperand::MONone, and llvm::MachineMemOperand::MOStore.
|
inlinestatic |
Definition at line 172 of file X86InstrBuilder.h.
References llvm::MachineInstrBuilder::addFrameIndex(), llvm::MachineInstrBuilder::addGlobalAddress(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), assert(), llvm::X86AddressMode::Base, llvm::X86AddressMode::BaseType, llvm::X86AddressMode::Disp, llvm::X86AddressMode::FrameIndex, llvm::X86AddressMode::FrameIndexBase, llvm::X86AddressMode::GV, llvm::X86AddressMode::GVOpFlags, llvm::X86AddressMode::IndexReg, llvm::X86AddressMode::Reg, llvm::X86AddressMode::RegBase, and llvm::X86AddressMode::Scale.
Referenced by computeBytesPoppedByCalleeForSRet(), llvm::X86TargetLowering::EmitInstrWithCustomInserter(), getLeaOP(), getX86SSEConditionCode(), and X86SelectAddress().
| void llvm::addInnerLoopsToHeadersMap | ( | DenseMap< BlockT *, const LoopT *> & | LoopHeaders, |
| const LoopInfoBase< BlockT, LoopT > & | LI, | ||
| const LoopT & | L | ||
| ) |
Definition at line 629 of file LoopInfoImpl.h.
Referenced by llvm::LoopInfoBase< BasicBlock, Loop >::verify().
| void llvm::addLiveIns | ( | MachineBasicBlock & | MBB, |
| const LivePhysRegs & | LiveRegs | ||
| ) |
Adds registers contained in LiveRegs to the block live-in list of MBB.
Does not add reserved registers.
Definition at line 253 of file LivePhysRegs.cpp.
References llvm::MachineBasicBlock::addLiveIn(), assert(), llvm::MachineBasicBlock::getParent(), llvm::MachineRegisterInfo::getTargetRegisterInfo(), llvm::MachineRegisterInfo::isReserved(), llvm::MCRegisterInfo::DiffListIterator::isValid(), llvm::MachineBasicBlock::livein_empty(), MRI, and Reg.
Referenced by mergeOperations(), and pushDepHeight().
|
inline |
Definition at line 72 of file IntervalIterator.h.
References llvm::Interval::Nodes.
Referenced by llvm::IntervalIterator< NodeTy, OrigContainer_t, GT, IGT >::operator++().
Definition at line 82 of file IntervalIterator.h.
References llvm::Interval::Nodes.
|
inlinestatic |
Definition at line 143 of file X86InstrBuilder.h.
References llvm::MachineInstrBuilder::addImm(), and llvm::MachineInstrBuilder::addReg().
Referenced by addFrameReference(), addOperands(), addRegOffset(), and llvm::X86InstrInfo::convertToThreeAddress().
|
inlinestatic |
Definition at line 148 of file X86InstrBuilder.h.
References llvm::MachineInstrBuilder::add(), llvm::MachineInstrBuilder::addImm(), and llvm::MachineInstrBuilder::addReg().
Add one to a Constant.
Definition at line 171 of file InstCombineInternal.h.
References llvm::ConstantInt::get(), llvm::ConstantExpr::getAdd(), and llvm::Value::getType().
Referenced by canonicalizeSaturatedAdd(), foldNoWrapAdd(), llvm::ScalarEvolution::getAddExpr(), llvm::InstCombiner::visitSub(), and llvm::InstCombiner::visitXor().
| std::enable_if<std::is_signed<T>::value, T>::type llvm::AddOverflow | ( | T | X, |
| T | Y, | ||
| T & | Result | ||
| ) |
Add two signed integers, computing the two's complement truncated result, returning true if overflow occured.
Definition at line 875 of file MathExtras.h.
| void llvm::addPredicatedMveVpredNOp | ( | MachineInstrBuilder & | MIB, |
| unsigned | Cond | ||
| ) |
Definition at line 819 of file ARMBaseInstrInfo.cpp.
Referenced by isValidCoprocessorNumber().
| void llvm::addPredicatedMveVpredROp | ( | MachineInstrBuilder & | MIB, |
| unsigned | Cond, | ||
| unsigned | Inactive | ||
| ) |
Definition at line 824 of file ARMBaseInstrInfo.cpp.
|
inlinestatic |
addRegOffset - This function is used to add a memory reference of the form [Reg + Offset], i.e., one with no scale or index, but with a displacement.
An example is: DWORD PTR [EAX + 4].
Definition at line 157 of file X86InstrBuilder.h.
References addOffset(), llvm::MachineInstrBuilder::addReg(), and getKillRegState().
Referenced by llvm::X86FrameLowering::adjustForHiPEPrologue(), llvm::X86InstrInfo::classifyLEAReg(), createX86RetpolineThunksPass(), llvm::X86FrameLowering::emitEpilogue(), llvm::X86FrameLowering::emitPrologue(), llvm::X86FrameLowering::emitSPUpdate(), getRetpolineSymbol(), llvm::X86FrameLowering::inlineStackProbe(), and llvm::X86FrameLowering::restoreWin32EHStackPointers().
|
inlinestatic |
addRegReg - This function is used to add a memory reference of the form: [Reg + Reg].
Definition at line 164 of file X86InstrBuilder.h.
References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), and getKillRegState().
Referenced by llvm::X86InstrInfo::classifyLEAReg(), and llvm::X86InstrInfo::convertToThreeAddress().
Set input string into loop metadata by keeping other values intact.
If the string is already in loop metadata update value if it is different.
Definition at line 211 of file LoopUtils.cpp.
References llvm::Loop::getLoopID(), and llvm::MDNode::getNumOperands().
Referenced by peelLoop().
| void llvm::addUnpredicatedMveVpredNOp | ( | MachineInstrBuilder & | MIB | ) |
Definition at line 808 of file ARMBaseInstrInfo.cpp.
References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), and llvm::ARMVCC::None.
Referenced by addUnpredicatedMveVpredROp(), isValidCoprocessorNumber(), llvm::ARMBaseInstrInfo::loadRegFromStackSlot(), and llvm::ARMBaseInstrInfo::storeRegToStackSlot().
| void llvm::addUnpredicatedMveVpredROp | ( | MachineInstrBuilder & | MIB, |
| unsigned | DestReg | ||
| ) |
Definition at line 813 of file ARMBaseInstrInfo.cpp.
References llvm::MachineInstrBuilder::addReg(), addUnpredicatedMveVpredNOp(), and llvm::RegState::Undef.
Referenced by llvm::ARMBaseInstrInfo::copyPhysReg(), and isValidCoprocessorNumber().
|
static |
Definition at line 135 of file LanaiMCCodeEmitter.cpp.
References llvm::LPAC::ADD, assert(), llvm::MCFixup::create(), llvm::LPAC::encodeLanaiAluCode(), llvm::Lanai::FIXUP_LANAI_25, llvm::LPAC::getAluOp(), getBranchTargetOpValue(), llvm::MCOperand::getExpr(), llvm::MCOperand::getImm(), getLanaiRegisterNumbering(), llvm::MCInst::getOperand(), llvm::MCOperand::getReg(), llvm::MCOperand::isExpr(), llvm::MCOperand::isImm(), isInt< 16 >(), llvm::LPAC::isPostOp(), llvm::LPAC::isPreOp(), llvm::MCOperand::isReg(), llvm::LPAC::modifiesOp(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::LPAC::SHL, llvm::LPAC::SRA, and llvm::LPAC::SRL.
| auto llvm::adl_begin | ( | ContainerTy && | container | ) | -> decltype(adl_detail::adl_begin(std::forward<ContainerTy>(container))) |
Definition at line 173 of file STLExtras.h.
References llvm::adl_detail::adl_begin().
Referenced by all_of(), any_of(), copy(), copy_if(), count(), count_if(), drop_begin(), empty(), find(), find_if(), find_if_not(), for_each(), is_contained(), is_splat(), lower_bound(), none_of(), partition(), partition_point(), remove_if(), sort(), stable_sort(), transform(), and upper_bound().
| auto llvm::adl_end | ( | ContainerTy && | container | ) | -> decltype(adl_detail::adl_end(std::forward<ContainerTy>(container))) |
Definition at line 179 of file STLExtras.h.
References llvm::adl_detail::adl_end().
Referenced by all_of(), any_of(), copy(), copy_if(), count(), count_if(), drop_begin(), empty(), find(), find_if(), find_if_not(), for_each(), is_contained(), is_splat(), lower_bound(), none_of(), partition(), partition_point(), remove_if(), sort(), stable_sort(), transform(), and upper_bound().
Definition at line 185 of file STLExtras.h.
References llvm::adl_detail::adl_swap().
Aligns Addr to Alignment bytes, rounding up.
Definition at line 184 of file Alignment.h.
References alignTo(), assert(), and llvm::Align::value().
|
inline |
Returns the largest uint64_t less than or equal to Value and is Skew mod Align.
Align must be non-zero
Definition at line 742 of file MathExtras.h.
References llvm::AMDGPU::HSAMD::Kernel::Arg::Key::Align, and assert().
Referenced by llvm::AMDGPU::IsaInfo::getMaxNumSGPRs(), llvm::AMDGPU::IsaInfo::getMaxNumVGPRs(), llvm::AMDGPU::IsaInfo::getMinNumSGPRs(), llvm::AMDGPU::IsaInfo::getMinNumVGPRs(), llvm::X86TTIImpl::getShuffleCost(), llvm::X86FrameLowering::getWin64EHFrameIndexRef(), llvm::SITargetLowering::isTypeDesirableForOp(), llvm::SIRegisterInfo::reservedPrivateSegmentBufferReg(), and llvm::AMDGPU::splitMUBUFOffset().
|
inline |
Returns a multiple of A needed to store Size bytes.
Definition at line 163 of file Alignment.h.
References llvm::Align::value().
Referenced by addByteCountSuffix(), AddCalls(), addData(), llvm::trailing_objects_internal::TrailingObjectsImpl< Align, BaseTy, TopTrailingObj, PrevTy, NextTy, MoreTys... >::additionalSizeToAllocImpl(), AdjustStackOffset(), alignAddr(), llvm::TargetFrameLowering::alignSPAdjust(), alignTo(), llvm::jitlink::InProcessMemoryManager::allocate(), llvm::AMDGPUMachineFunction::allocateLDSGlobal(), llvm::CCState::AllocateStack(), llvm::AMDGPUTargetLowering::analyzeFormalArgumentsCompute(), llvm::RISCVAsmBackend::applyFixup(), llvm::X86FrameLowering::assignCalleeSavedSpillSlots(), AssignProtectedObjSet(), calculateDiSymbolStreamSize(), llvm::codeview::DebugSubsectionRecordBuilder::calculateSerializedLength(), llvm::pdb::DbiModuleDescriptorBuilder::calculateSerializedLength(), llvm::pdb::HashTable< llvm::support::detail::packed_endian_specific_integral >::calculateSerializedLength(), llvm::VNCoercion::canCoerceMustAliasedValueToLoad(), CC_AArch64_Custom_Block(), CC_ARM_AAPCS_Custom_Aggregate(), llvm::AArch64TargetLowering::CCAssignFnForReturn(), llvm::object::coffnamecpy(), llvm::codeview::DebugSubsectionRecordBuilder::commit(), ComputeLinkerOptionsLoadCommandSize(), llvm::MachObjectWriter::computeSectionAddresses(), llvm::RuntimeDyldImpl::computeTotalAllocSize(), createAArch64StackTaggingPass(), llvm::AArch64FrameLowering::determineCalleeSaves(), determineSVEStackObjectOffsets(), divideCeil(), dump(), llvm::AArch64FrameLowering::eliminateCallFramePseudoInstr(), llvm::Thumb1FrameLowering::eliminateCallFramePseudoInstr(), llvm::SIFrameLowering::eliminateCallFramePseudoInstr(), llvm::X86FrameLowering::eliminateCallFramePseudoInstr(), llvm::DWARFYAML::EmitDebugAranges(), llvm::AArch64FrameLowering::emitEpilogue(), llvm::X86FrameLowering::emitEpilogue(), llvm::CodeViewContext::emitFileChecksums(), llvm::SparcFrameLowering::emitPrologue(), llvm::VEFrameLowering::emitPrologue(), llvm::AArch64FrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), llvm::BPFSelectionDAGInfo::EmitTargetCodeForMemcpy(), emitThumbRegPlusImmediate(), enableAllocFrameElim(), llvm::MipsFrameLowering::estimateStackSize(), llvm::DWARFDebugNames::Header::extract(), llvm::VESubtarget::getAdjustedFrameSize(), llvm::SparcSubtarget::getAdjustedFrameSize(), llvm::CCState::getAlignedCallFrameSize(), getAllocaSizeInBytes(), llvm::AArch64FunctionInfo::getCalleeSavedStackSize(), getCallOpcode(), llvm::AMDGPUSubtarget::getExplicitKernArgSize(), getFPOffset(), llvm::R600FrameLowering::getFrameIndexReference(), llvm::AMDGPUTargetLowering::getImplicitParameterOffset(), llvm::ARMBaseInstrInfo::getInstSizeInBytes(), llvm::X86TTIImpl::getIntImmCost(), llvm::XCoreTargetLowering::getJumpTableEncoding(), llvm::AMDGPUSubtarget::getKernArgSegmentSize(), llvm::msf::MappedBlockStream::getLength(), llvm::AMDGPU::IsaInfo::getMaxWavesPerEU(), llvm::HexagonTTIImpl::getMemoryOpCost(), getMOVL(), llvm::WritableMemoryBuffer::getNewUninitMemBuffer(), llvm::AMDGPU::IsaInfo::getNumSGPRBlocks(), llvm::AMDGPU::IsaInfo::getNumVGPRBlocks(), llvm::R600AsmPrinter::getPassName(), llvm::pdb::DbiModuleDescriptor::getRecordLength(), getRsrcReg(), llvm::pdb::DbiStreamBuilder::getSourceFileNameIndex(), llvm::X86InstrInfo::getSPAdjust(), llvm::DataLayout::getTypeAllocSize(), llvm::AMDGPU::IsaInfo::getWavesPerWorkGroup(), llvm::AArch64FrameLowering::getWinEHFuncletFrameSize(), llvm::MipsCallLowering::MipsHandler::handle(), llvm::CallLowering::handleAssignments(), llvm::MipsTargetLowering::HandleByVal(), llvm::CCState::HandleByVal(), hasAnyNonFlatUseOfReg(), llvm::RISCVFrameLowering::hasBP(), INITIALIZE_PASS(), initializeOptionalHeader(), isCallPromotable(), isFuncletReturnInstr(), isHardwareLoop(), isInSymtab(), isKnownTypeIdMember(), layoutCOFF(), llvm::AArch64LegalizerInfo::legalizeIntrinsic(), llvm::AArch64CallLowering::lowerCall(), llvm::SparcTargetLowering::LowerCall_64(), llvm::AArch64CallLowering::lowerFormalArguments(), llvm::MipsCallLowering::lowerFormalArguments(), llvm::AMDGPUCallLowering::lowerFormalArgumentsKernel(), lowerObjectSizeCall(), mayTailCallThisCC(), offsetToAlignment(), llvm::MDNode::operator delete(), llvm::MDNode::operator new(), llvm::VarStreamArrayExtractor< CrossModuleImportItem >::operator()(), llvm::VarStreamArrayExtractor< codeview::DebugSubsectionRecord >::operator()(), llvm::raw_ostream::operator<<(), pad(), llvm::BinaryStreamWriter::padToAlignment(), llvm::BinaryStreamReader::padToAlignment(), postDominates(), PrintQuotedString(), llvm::HexagonFrameLowering::processFunctionBeforeFrameFinalized(), llvm::AArch64FrameLowering::processFunctionBeforeFrameFinalized(), readGSIHashBuckets(), llvm::BitVector::reset(), RetagMask(), scavengeStackSlot(), llvm::HexagonDAGToDAGISel::SelectAnyImmediate(), llvm::HexagonDAGToDAGISel::SelectGlobalAddress(), llvm::BitVector::set(), llvm::msf::MSFBuilder::setDirectoryBlocksHint(), tryToFindRegisterToRename(), TypeSizeToSizeIndex(), llvm::StrOffsetsContributionDescriptor::validateContributionSize(), VarAndRedzoneSize(), llvm::object::WindowsResourceCOFFWriter::WindowsResourceCOFFWriter(), llvm::MachObjectWriter::writeObject(), llvm::pdb::writeSparseBitVector(), llvm::orc::OrcAArch64::writeTrampolines(), and llvm::ExecutionEngine::~ExecutionEngine().
|
inline |
Returns a multiple of A needed to store Size bytes.
Returns Size if current alignment is undefined.
Definition at line 179 of file Alignment.h.
References alignTo(), and llvm::Optional< T >::getValue().
Returns a TypeSize with a known minimum size that is the next integer (mod 2**64) that is greater than or equal to Value and is a multiple of Align.
Align must be non-zero.
Similar to the alignTo functions in MathExtras.h
Definition at line 198 of file TypeSize.h.
References assert(), llvm::TypeSize::getKnownMinSize(), and llvm::TypeSize::isScalable().
|
inline |
Returns the next integer (mod 2**64) that is greater than or equal to Value and is a multiple of Align.
Align must be non-zero.
If non-zero Skew is specified, the return value will be a minimal integer that is greater than or equal to Value and equal to Align * N + Skew for some integer N. If Skew is larger than Align, its value is adjusted to 'Skew mod Align'.
Examples:
Definition at line 717 of file MathExtras.h.
References llvm::AMDGPU::HSAMD::Kernel::Arg::Key::Align, and assert().
|
inline |
Returns the next integer (mod 2**64) that is greater than or equal to Value and is a multiple of Align.
Align must be non-zero.
Definition at line 725 of file MathExtras.h.
References llvm::AMDGPU::HSAMD::Kernel::Arg::Key::Align.
| bool llvm::all_of | ( | R && | Range, |
| UnaryPredicate | P | ||
| ) |
Provide wrappers to std::all_of which take ranges instead of having to pass begin/end explicitly.
Definition at line 1182 of file STLExtras.h.
References adl_begin(), and adl_end().
Referenced by llvm::DbgVariable::addMMIEntry(), llvm::DebugLocEntry::addValues(), llvm::GlobalsAAResult::alias(), llvm::ISD::allOperandsUndef(), blockEndIsUnreachable(), BrPHIToSelect(), llvm::MachineIRBuilder::buildInstr(), buildModuleSummaryIndex(), llvm::SwitchInstProfUpdateWrapper::buildProfBranchWeightsMD(), llvm::ValueInfo::canAutoHide(), canLowerToLDG(), llvm::slpvectorizer::BoUpSLP::canMapToVector(), canPeel(), canSinkInstructions(), canTRE(), llvm::LoopVectorizationPlanner::collectTriviallyDeadInstructions(), combineAnd(), combineConcatVectorOfExtracts(), combineConcatVectorOps(), combineExtractVectorElt(), combineLoadToOperationType(), combineX86ShuffleChainWithExtract(), combineX86ShufflesRecursively(), compareLoops(), completeEphemeralValues(), llvm::slpvectorizer::BoUpSLP::computeMinimumValueSizes(), computePointerICmp(), llvm::IndexedReference::computeRefCost(), ConstantFoldInstruction(), createCodeGenPreparePass(), createLoopSimplifyPass(), deleteDeadBlocksFromLoop(), doesStoreDominatesAllLatches(), llvm::GVNExpression::Expression::dump(), llvm::HexagonInstrInfo::expandPostRAPseudo(), findReturnsToZap(), FoldBUILD_VECTOR(), foldCONCAT_VECTORS(), llvm::SelectionDAG::FoldConstantVectorArithmetic(), formLCSSAOnAllLoops(), llvm::ScalarEvolution::getAddRecExpr(), llvm::IRPosition::getAttrs(), getChainID(), llvm::DbgVariable::getFrameIndexExprs(), getImmedFromMO(), getInsertVecEltOpInfo(), getMaxBackedgeTakenCount(), llvm::AArch64InstrInfo::getOutliningCandidateInfo(), getParameterABIAttributes(), getRegClassForUnfoldedLoad(), llvm::slpvectorizer::BoUpSLP::getTreeCost(), llvm::X86TTIImpl::getUserCost(), llvm::SelectionDAG::getVectorShuffle(), llvm::TextInstrProfReader::hasFormat(), llvm::Loop::hasLoopInvariantOperands(), hasProfileData(), hoistRegion(), llvm::SCEVUnionPredicate::implies(), INITIALIZE_PASS(), llvm::yaml::ScalarTraits< FixedSizeHex< N > >::input(), llvm::SCEVUnionPredicate::isAlwaysTrue(), isAsciiString(), llvm::ValueInfo::isDSOLocal(), isEphemeralValueOf(), llvm::RecurrenceDescriptor::isFirstOrderRecurrence(), llvm::SelectionDAG::isKnownToBeAPowerOfTwo(), llvm::Loop::isLCSSAForm(), isLoopDead(), llvm::TargetLowering::isNegatibleForFree(), llvm::Loop::isRecursivelyLCSSAForm(), isSafeSROAGEP(), llvm::orc::SpeculateQuery::isStraightLine(), isSupportedGuardInstruction(), llvm::AArch64_AM::isSVEMaskOfIdenticalElements(), isUndefInRange(), isUndefOrInRange(), isUndefOrZeroInRange(), isUndefOrZeroOrInRange(), llvm::LoopVectorizationLegality::isUniform(), llvm::HexagonTargetLowering::LowerBITCAST(), LowerBUILD_VECTOR_i1(), lowerShuffleAsLanePermuteAndShuffle(), lowerV4F64Shuffle(), LowerVECTOR_SHUFFLE(), lowerVECTOR_SHUFFLE(), make_early_inc_range(), llvm::MCInstPrinter::matchAliasPatterns(), llvm::LoopVectorizationCostModel::memoryInstructionCanBeWidened(), moveLCSSAPhis(), operator==(), ParameterPack::ParameterPack(), partitionShuffleOfConcats(), promoteLoopAccessesToScalars(), llvm::SDValue::reachesChainWithoutSideEffects(), removeBitcastsFromLoadStoreOnMinMax(), llvm::LazyCallGraph::RefSCC::removeInternalRefEdge(), runAttributorOnModule(), scalarizeBinOpOfSplats(), scalarizeExtractedBinop(), shouldSplitOnPredicatedArgument(), llvm::X86TargetLowering::SimplifyDemandedVectorEltsForTargetNode(), SimplifyGEPInst(), llvm::X86TargetLowering::SimplifyMultipleUseDemandedBitsForTargetNode(), SimplifyShuffleVectorInst(), simplifyX86varShift(), sinkLastInstruction(), sinkLoopInvariantInstructions(), llvm::InnerLoopVectorizer::sinkScalarOperands(), sortPtrAccesses(), llvm::Function::stealArgumentListFrom(), StrengthenNoWrapFlags(), tryToFindRegisterToRename(), llvm::JumpThreadingPass::TryToUnfoldSelectInCurrBB(), tryToVectorizeHorReductionOrInstOperands(), turnVectorIntoSplatVector(), llvm::RecordRecTy::typeIsConvertibleTo(), unswitchNontrivialInvariants(), unswitchTrivialSwitch(), updateDefinedRegisters(), llvm::mca::Instruction::updateDispatched(), UpdatePDTWorklist(), llvm::mca::Instruction::updatePending(), verifyAddrSpace(), llvm::SIInstrInfo::verifyInstruction(), llvm::LazyCallGraph::visitReferences(), and llvm::coverage::CoverageMappingWriter::write().
|
static |
Definition at line 850 of file InstrProf.cpp.
References D, E, llvm::msgpack::Endianness, getHostEndianness(), malformed, llvm::Error::success(), too_large, and truncated.
| ValueProfData* llvm::allocValueProfDataInstrProf | ( | size_t | TotalSizeInBytes | ) |
Definition at line 754 of file InstrProf.cpp.
|
static |
Definition at line 1026 of file AVRISelLowering.cpp.
References llvm::ISD::ADD, llvm::MachineInstrBuilder::addImm(), llvm::MachineFunction::addLiveIn(), llvm::MachineInstrBuilder::addMBB(), llvm::MachineInstrBuilder::addReg(), llvm::MachineBasicBlock::addSuccessor(), llvm::CCValAssign::AExt, analyzeBuiltinArguments(), analyzeStandardArguments(), llvm::ISD::ANY_EXTEND, Arg, assert(), llvm::ISD::AssertSext, llvm::ISD::AssertZext, llvm::CallingConv::AVR_BUILTIN, llvm::CallingConv::AVR_INTR, llvm::CallingConv::AVR_SIGNAL, llvm::CCValAssign::BCvt, llvm::SmallVectorTemplateCommon< T >::begin(), llvm::MachineBasicBlock::begin(), llvm::ISD::BITCAST, BuildMI(), llvm::AVRISD::CALL, llvm::TargetLowering::CallLoweringInfo::CallConv, Callee, llvm::TargetLowering::CallLoweringInfo::Callee, llvm::TargetLowering::CallLoweringInfo::Chain, llvm::CCState::CheckReturn(), Context, llvm::MachineFrameInfo::CreateFixedObject(), llvm::MachineFunction::CreateMachineBasicBlock(), llvm::MachineRegisterInfo::createVirtualRegister(), llvm::TargetLowering::CallLoweringInfo::DAG, llvm::TargetLowering::CallLoweringInfo::DL, llvm::numbers::e, llvm::SmallVectorBase::empty(), llvm::SmallVectorTemplateCommon< T >::end(), llvm::MachineBasicBlock::end(), llvm::MachineFunction::end(), llvm::MachineInstr::eraseFromParent(), F(), llvm::CCValAssign::Full, llvm::AttributeList::FunctionIndex, G, llvm::MCInstrInfo::get(), llvm::Function::getAttributes(), llvm::MachineBasicBlock::getBasicBlock(), llvm::TargetRegisterInfo::getCallPreservedMask(), llvm::SelectionDAG::getCALLSEQ_END(), llvm::SelectionDAG::getCALLSEQ_START(), llvm::SelectionDAG::getContext(), llvm::SelectionDAG::getCopyFromReg(), llvm::SelectionDAG::getCopyToReg(), llvm::SelectionDAG::getDataLayout(), llvm::MachineInstr::getDebugLoc(), llvm::MachinePointerInfo::getFixedStack(), llvm::SelectionDAG::getFrameIndex(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getFunction(), llvm::MachineFunction::getInfo(), llvm::AVRSubtarget::getInstrInfo(), llvm::SelectionDAG::getIntPtrConstant(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::SelectionDAG::getLoad(), llvm::CCValAssign::getLocInfo(), llvm::CCValAssign::getLocMemOffset(), llvm::CCValAssign::getLocReg(), llvm::CCValAssign::getLocVT(), llvm::SelectionDAG::getMachineFunction(), llvm::SDValue::getNode(), llvm::SelectionDAG::getNode(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineBasicBlock::getParent(), llvm::TargetLoweringBase::getPointerTy(), llvm::MachineOperand::getReg(), llvm::MachineFunction::getRegInfo(), llvm::SelectionDAG::getRegister(), llvm::AVRSubtarget::getRegisterInfo(), llvm::SelectionDAG::getRegisterMask(), llvm::MachinePointerInfo::getStack(), llvm::SelectionDAG::getStore(), llvm::SelectionDAG::getTargetExternalSymbol(), llvm::SelectionDAG::getTargetGlobalAddress(), llvm::SDValue::getValue(), llvm::SelectionDAG::getValueType(), llvm::SelectionDAG::getVTList(), llvm::MVT::Glue, llvm::AttributeList::hasAttribute(), I, llvm::MVT::i16, llvm::MVT::i8, llvm::MipsISD::Ins, llvm::TargetLowering::CallLoweringInfo::Ins, llvm::MachineFunction::insert(), llvm::CCValAssign::isMemLoc(), llvm::CCValAssign::isRegLoc(), llvm::TargetLowering::CallLoweringInfo::IsTailCall, llvm::TargetLowering::CallLoweringInfo::IsVarArg, llvm_unreachable, llvm::BitmaskEnumDetail::Mask(), MI, llvm::MVT::Other, llvm::TargetLowering::CallLoweringInfo::Outs, llvm::TargetLowering::CallLoweringInfo::OutVals, llvm::SmallVectorTemplateBase< T >::push_back(), Reg, llvm::AVRISD::RET_FLAG, llvm::AVRISD::RETI_FLAG, reverse(), llvm::AVRMachineFunctionInfo::setVarArgsFrameIndex(), llvm::CCValAssign::SExt, llvm::ISD::SIGN_EXTEND, llvm::SmallVectorBase::size(), llvm::MachineBasicBlock::splice(), llvm::AVRTargetLowering::Subtarget, TII, llvm::MachineBasicBlock::transferSuccessorsAndUpdatePHIs(), TRI, llvm::ISD::TRUNCATE, llvm::ISD::ZERO_EXTEND, and llvm::CCValAssign::ZExt.
|
static |
Definition at line 1008 of file AVRISelLowering.cpp.
References llvm::CCState::AnalyzeCallOperands(), analyzeStandardArguments(), getFunctionName(), and llvm::StringRef::startswith().
Referenced by analyzeArguments().
| PhysRegInfo llvm::AnalyzePhysRegInBundle | ( | const MachineInstr & | MI, |
| unsigned | Reg, | ||
| const TargetRegisterInfo * | TRI | ||
| ) |
AnalyzePhysRegInBundle - Analyze how the current instruction or bundle uses a physical register.
This function should not be called after operator++(), it expects a fresh iterator.
| Reg | The physical register to analyze. |
Definition at line 311 of file MachineInstrBundle.cpp.
References assert(), llvm::PhysRegInfo::Clobbered, llvm::MachineOperand::clobbersPhysReg(), llvm::PhysRegInfo::DeadDef, llvm::PhysRegInfo::Defined, llvm::PhysRegInfo::FullyDefined, llvm::PhysRegInfo::FullyRead, llvm::MachineOperand::getReg(), llvm::MachineOperand::isDead(), llvm::MachineOperand::isDef(), llvm::MachineOperand::isKill(), llvm::Register::isPhysicalRegister(), llvm::MachineOperand::isReg(), llvm::MachineOperand::isRegMask(), llvm::MCRegisterInfo::isSuperRegisterEq(), llvm::PhysRegInfo::Killed, llvm::RISCVFenceField::O, llvm::PhysRegInfo::PartialDeadDef, llvm::PhysRegInfo::Read, llvm::MachineOperand::readsReg(), and llvm::TargetRegisterInfo::regsOverlap().
Referenced by llvm::MachineBasicBlock::computeRegisterLiveness(), and dumpMachineInstrRangeWithSlotIndex().
|
static |
Analyze incoming and outgoing function arguments.
We need custom C++ code to handle special constraints in the ABI like reversing the order of the pieces of splitted arguments. In addition, all pieces of a certain argument have to be passed either using registers or the stack but never mixing both.
Definition at line 932 of file AVRISelLowering.cpp.
References llvm::CCState::addLoc(), llvm::CCState::AllocateReg(), llvm::CCState::AllocateStack(), llvm::CCState::AnalyzeCallOperands(), llvm::CCState::AnalyzeFormalArguments(), llvm::AMDGPU::HSAMD::Kernel::Key::Args, array_lengthof(), assert(), llvm::SmallVectorTemplateCommon< T >::begin(), llvm::numbers::e, llvm::CCValAssign::Full, llvm::DataLayout::getABITypeAlignment(), llvm::CCState::getContext(), llvm::CCValAssign::getMem(), llvm::CCValAssign::getReg(), llvm::DataLayout::getTypeAllocSize(), llvm::MVT::i16, parseExternFuncCallArgs(), parseFunctionArgs(), Reg, reverse(), Size, and llvm::SmallVectorBase::size().
Referenced by analyzeArguments(), and analyzeBuiltinArguments().
| VirtRegInfo llvm::AnalyzeVirtRegInBundle | ( | MachineInstr & | MI, |
| unsigned | Reg, | ||
| SmallVectorImpl< std::pair< MachineInstr *, unsigned >> * | Ops = nullptr |
||
| ) |
AnalyzeVirtRegInBundle - Analyze how the current instruction or bundle uses a virtual register.
This function should not be called after operator++(), it expects a fresh iterator.
| Reg | The virtual register to analyze. |
| Ops | When set, this vector will receive an (MI, OpNum) entry for each operand referring to Reg. |
Definition at line 281 of file MachineInstrBundle.cpp.
References llvm::MachineOperand::getParent(), llvm::MachineOperand::getReg(), if(), llvm::MachineOperand::isDef(), llvm::MachineOperand::isReg(), llvm::MachineInstr::isRegTiedToDefOperand(), llvm::RISCVFenceField::O, llvm::VirtRegInfo::Reads, llvm::MachineOperand::readsReg(), Reg, llvm::VirtRegInfo::Tied, and llvm::VirtRegInfo::Writes.
Referenced by isFullCopyOf(), and isFullUndefDef().
| void llvm::annotateValueSite | ( | Module & | M, |
| Instruction & | Inst, | ||
| const InstrProfRecord & | InstrProfR, | ||
| InstrProfValueKind | ValueKind, | ||
| uint32_t | SiteIndx, | ||
| uint32_t | MaxMDCount = 3 |
||
| ) |
Get the value profile data for value site SiteIdx from InstrProfR and annotate the instruction Inst with the value profile meta data.
Annotate up to MaxMDCount (default 3) number of records per value site.
Definition at line 931 of file InstrProf.cpp.
References llvm::InstrProfRecord::getNumValueDataForSite(), and llvm::InstrProfRecord::getValueForSite().
Referenced by GetSortedValueDataFromCallTargets(), isIndirectBrTarget(), and llvm::pgo::promoteIndirectCall().
| void llvm::annotateValueSite | ( | Module & | M, |
| Instruction & | Inst, | ||
| ArrayRef< InstrProfValueData > | VDs, | ||
| uint64_t | Sum, | ||
| InstrProfValueKind | ValueKind, | ||
| uint32_t | MaxMDCount | ||
| ) |
Same as the above interface but using an ArrayRef, as well as Sum.
Definition at line 947 of file InstrProf.cpp.
References llvm::MDBuilder::createConstant(), llvm::MDBuilder::createString(), llvm::ConstantInt::get(), llvm::MDNode::get(), llvm::Module::getContext(), llvm::Type::getInt32Ty(), llvm::Type::getInt64Ty(), llvm::SmallVectorTemplateBase< T >::push_back(), and llvm::Instruction::setMetadata().
Definition at line 122 of file Any.h.
References llvm::Any::any_cast.
Definition at line 128 of file Any.h.
References llvm::Any::any_cast.
| bool llvm::any_of | ( | R && | Range, |
| UnaryPredicate | P | ||
| ) |
Provide wrappers to std::any_of which take ranges instead of having to pass begin/end explicitly.
Definition at line 1189 of file STLExtras.h.
References adl_begin(), and adl_end().
Referenced by addArgumentReturnedAttrs(), llvm::mca::Pipeline::addEventListener(), addIntrinsicToSummary(), llvm::DwarfExpression::addMachineRegExpression(), alwaysAvailable(), llvm::FeatureBitset::any(), AnyAliasLiveIn(), areCallingConvEligibleForTCO_64SVR4(), areInnerLoopExitPHIsSupported(), llvm::SDNode::areOnlyUsersOf(), llvm::DebugHandlerBase::beginFunction(), llvm::DwarfDebug::beginModule(), llvm::AArch64InstrInfo::buildOutlinedFrame(), callHasFloatingPointArgument(), callHasFP128Argument(), canEvaluateShuffled(), canRenameUpToDef(), canSinkInstructions(), canTrackGlobalVariableInterprocedurally(), CC_RISCV_FastCC(), checkForMustTailInVarArgFn(), checkFunctionsAttributeConsistency(), combineX86ShuffleChain(), combineX86ShuffleChainWithExtract(), computeDeadSymbols(), containsGCPtrType(), createLICMPass(), llvm::GVNExpression::Expression::dump(), llvm::CodeViewContext::emitLineTableForFunction(), emitRangeList(), emitSelectPseudo(), emitSignedInt64(), llvm::CodeExtractor::extractCodeRegion(), findDefsUsedOutsideOfLoop(), llvm::sys::Process::FindInEnvPath(), findInnerReductionPhi(), FoldCondBranchOnPHI(), foldInsSequenceIntoSplat(), forAllMIsUntilDef(), llvm::ScalarEvolution::forgetValue(), getCallOpcode(), getCommonExitBlock(), getInductionVariable(), getInnermostLoopFor(), llvm::AArch64RegisterBankInfo::getInstrMapping(), getLoopEstimatedTripCount(), llvm::DOTGraphTraits< BoUpSLP * >::getNodeLabel(), llvm::SCEVAddRecExpr::getNumIterationsInRange(), getOpcode(), llvm::AArch64InstrInfo::getOutliningCandidateInfo(), GetPointerOperand(), getRegClassForUnfoldedLoad(), getSameOpcode(), getTargetConstantBitsFromNode(), getTargetShuffleMask(), llvm::slpvectorizer::BoUpSLP::getTreeCost(), llvm::AMDGPUTTIImpl::getUnrollingPreferences(), llvm::DWARFVerifier::handleDebugInfo(), llvm::CallBase::hasArgument(), llvm::mca::InstructionBase::hasDependentUsers(), hasHugeExpression(), llvm::MachineInstr::hasOrderedMemoryRef(), llvm::SIInstrInfo::hasVGPRUses(), hoistAndMergeSGPRInits(), llvm::SCEVUnionPredicate::implies(), INITIALIZE_PASS(), llvm::AArch64RegisterInfo::isAnyArgRegReserved(), isAnyInRange(), isEFLAGSLive(), llvm::CodeExtractor::isEligible(), llvm::AArch64CallLowering::isEligibleForTailCallOptimization(), llvm::HexagonSubtarget::isHVXVectorType(), llvm::cl::Option::isInAllSubCommands(), llvm::AArch64InstrInfo::isLdStPairSuppressed(), isLoopDead(), llvm::ScalarEvolution::isLoopInvariantPredicate(), llvm::AArch64InstrInfo::isMBBSafeToOutlineFrom(), llvm::TargetLowering::isNegatibleForFree(), isOnlyReachableViaThisEdge(), llvm::SDValue::isOperandOf(), llvm::SDNode::isOperandOf(), isOverflowIntrinsicNoWrap(), isSafeToMoveBefore(), isSCCHeader(), llvm::AArch64InstrInfo::isStridedAccess(), llvm::RecordRecTy::isSubClassOf(), llvm::SelectionDAG::isUndef(), llvm::LiveRange::isUndefIn(), llvm::LoopVectorizationLegality::isUniform(), llvm::SMSchedule::isValidSchedule(), isVariableIndexable(), lowerBuildVectorToBitOp(), LowerDbgDeclare(), lowerV8I16Shuffle(), lowerVECTOR_SHUFFLE(), make_early_inc_range(), makePostTransformationMetadata(), matchBinaryPermuteShuffle(), matchShuffleAsByteRotate(), matchUnaryPermuteShuffle(), mayTailCallThisCC(), llvm::InstrProfWriter::mergeRecordsFromWriter(), moveUp(), llvm::InnerLoopVectorizer::needsScalarInduction(), packCmovGroup(), llvm::GVNHoist::rank(), llvm::InlinerPass::run(), llvm::DevirtSCCRepeatedPass< PassT >::run(), llvm::SLPVectorizerPass::runImpl(), setBranchWeights(), llvm::HexagonRegisterInfo::shouldCoalesce(), shouldRotateLoopExitingLatch(), llvm::TargetLowering::SimplifyDemandedVectorElts(), llvm::X86TargetLowering::SimplifyDemandedVectorEltsForTargetNode(), simplifyFPOp(), sinkLastInstruction(), splitBlock(), stripNonValidData(), tryToFindRegisterToRename(), tryToReplaceWithConstant(), tryWidenCondBranchToCondBranch(), UnrollLoop(), UnrollRuntimeLoopRemainder(), unswitchAllTrivialConditions(), and llvm::LoopBase< BasicBlock, Loop >::verifyLoop().
| void llvm::appendToCompilerUsed | ( | Module & | M, |
| ArrayRef< GlobalValue *> | Values | ||
| ) |
Adds global values to the llvm.compiler.used list.
Definition at line 106 of file ModuleUtils.cpp.
References appendToUsedList().
Referenced by addVariantDeclaration(), llvm::LTOCodeGenerator::compile(), instrumentMaskedLoadOrStore(), RetagMask(), llvm::HWAddressSanitizerPass::run(), llvm::ModuleSanitizerCoveragePass::run(), and updateCompilerUsed().
| void llvm::appendToGlobalCtors | ( | Module & | M, |
| Function * | F, | ||
| int | Priority, | ||
| Constant * | Data = nullptr |
||
| ) |
Append F to the list of global ctors of module M with the given Priority.
This wraps the function in the appropriate structure and stores it along side other global constructors. For details see http://llvm.org/docs/LangRef.html#intg_global_ctors
Definition at line 64 of file ModuleUtils.cpp.
References appendToGlobalArray().
Referenced by llvm::SanitizerStatReport::finish(), INITIALIZE_PASS(), instrumentMaskedLoadOrStore(), needsRuntimeRegistrationOfSectionRange(), llvm::HWAddressSanitizerPass::run(), llvm::ModuleSanitizerCoveragePass::run(), and shouldKeepInEntry().
| void llvm::appendToGlobalDtors | ( | Module & | M, |
| Function * | F, | ||
| int | Priority, | ||
| Constant * | Data = nullptr |
||
| ) |
Same as appendToGlobalCtors(), but for global dtors.
Definition at line 68 of file ModuleUtils.cpp.
References appendToGlobalArray().
Referenced by instrumentMaskedLoadOrStore().
| void llvm::appendToUsed | ( | Module & | M, |
| ArrayRef< GlobalValue *> | Values | ||
| ) |
Adds global values to the llvm.used list.
Definition at line 102 of file ModuleUtils.cpp.
References appendToUsedList().
Referenced by needsRuntimeRegistrationOfSectionRange(), and llvm::ModuleSanitizerCoveragePass::run().
| auto llvm::apply_tuple | ( | F && | f, |
| Tuple && | t | ||
| ) | -> decltype(detail::apply_tuple_impl( std::forward<F>(f), std::forward<Tuple>(t), std::make_index_sequence< std::tuple_size<typename std::decay<Tuple>::type>::value> |
Given an input tuple (a1, a2, ..., an), pass the arguments of the tuple variadically to f as if by calling f(a1, a2, ..., an) and return the result.
Definition at line 1529 of file STLExtras.h.
References llvm::detail::apply_tuple_impl().
Referenced by llvm::formatv_object< Tuple >::formatv_object().
| class llvm::RegisterBankInfo * void llvm::applyMapping | ( | const OperandsMapper & | OpdMapper | ) | const |
Apply OpdMapper.getInstrMapping() to OpdMapper.getMI().
After this call OpdMapper.getMI() may not be valid anymore. OpdMapper.getInstrMapping().getID() carries the information of what has been chosen to map OpdMapper.getMI(). This ID is set by the various getInstrXXXMapping method.
Therefore, getting the mapping and applying it should be kept in sync.
Definition at line 714 of file RegisterBankInfo.h.
References llvm::RegisterBankInfo::applyDefaultMapping(), llvm::RegisterBankInfo::applyMappingImpl(), llvm::RegisterBankInfo::DefaultMappingID, InstructionMapping::getID(), OperandsMapper::getInstrMapping(), getSizeInBits(), and llvm::RegisterBankInfo::PartialMapping::verify().
Referenced by llvm::RegBankSelect::RepairingPlacement::switchTo().
|
inlinestatic |
Definition at line 691 of file RuntimeDyldELF.cpp.
Referenced by applyPPChighesta().
|
inlinestatic |
Definition at line 687 of file RuntimeDyldELF.cpp.
Referenced by applyPPChighesta().
|
inlinestatic |
Definition at line 695 of file RuntimeDyldELF.cpp.
Referenced by applyPPChighesta().
|
inlinestatic |
Definition at line 699 of file RuntimeDyldELF.cpp.
Referenced by applyPPChighesta().
|
inlinestatic |
Definition at line 703 of file RuntimeDyldELF.cpp.
Referenced by applyPPChighesta().
|
inlinestatic |
Definition at line 707 of file RuntimeDyldELF.cpp.
References applyPPCha(), applyPPChi(), applyPPChigher(), applyPPChighera(), applyPPChighest(), applyPPClo(), llvm::RuntimeDyldImpl::Arch, assert(), llvm::Triple::bpfeb, dbgs(), format(), llvm::SectionEntry::getAddressWithOffset(), llvm::SectionEntry::getLoadAddressWithOffset(), LLVM_DEBUG, llvm_unreachable, llvm::RuntimeDyldImpl::readBytesUnaligned(), write(), llvm::RuntimeDyldImpl::writeInt16BE(), llvm::RuntimeDyldImpl::writeInt32BE(), and llvm::RuntimeDyldImpl::writeInt64BE().
|
inlinestatic |
Definition at line 685 of file RuntimeDyldELF.cpp.
Referenced by applyPPChighesta().
| unsigned llvm::ApproximateLoopSize | ( | const Loop * | L, |
| unsigned & | NumCalls, | ||
| bool & | NotDuplicatable, | ||
| bool & | Convergent, | ||
| const TargetTransformInfo & | TTI, | ||
| const SmallPtrSetImpl< const Value *> & | EphValues, | ||
| unsigned | BEInsns | ||
| ) |
ApproximateLoopSize - Approximate the size of the loop.
Definition at line 641 of file LoopUnrollPass.cpp.
References llvm::CodeMetrics::analyzeBasicBlock(), llvm::LoopBase< BlockT, LoopT >::blocks(), llvm::CodeMetrics::convergent, max(), Metrics, llvm::CodeMetrics::notDuplicatable, llvm::CodeMetrics::NumInlineCandidates, and llvm::CodeMetrics::NumInsts.
Referenced by tryToUnrollAndJamLoop(), and tryToUnrollLoop().
| bool llvm::AreStatisticsEnabled | ( | ) |
Check if statistics are enabled.
Definition at line 131 of file Statistic.cpp.
References EnableStats, llvm::StatisticBase::getDebugType(), llvm::StatisticBase::getDesc(), llvm::StatisticBase::getName(), sort(), stable_sort(), and Stats.
Referenced by llvm::LTOCodeGenerator::compileOptimized(), FindPredecessorAutoreleaseWithSafePath(), llvm::ModuleSummaryIndex::propagateAttributes(), llvm::ThinLTOCodeGenerator::run(), and llvm::Attributor::run().
Definition at line 167 of file ARMBaseInfo.h.
References llvm::ARMCC::AL, llvm::StringSwitch< T, R >::Case(), llvm::StringSwitch< T, R >::Default(), llvm::ARMCC::EQ, llvm::ARMCC::GE, llvm::ARMCC::GT, llvm::ARMCC::HI, llvm::ARMCC::HS, llvm::ARMCC::LE, llvm::ARMCC::LO, llvm::StringRef::lower(), llvm::ARMCC::LS, llvm::ARMCC::LT, llvm::ARMCC::MI, llvm::ARMCC::NE, llvm::ARMCC::PL, llvm::ARMCC::VC, and llvm::ARMCC::VS.
Referenced by MatchCoprocessorOperandName().
|
inlinestatic |
Definition at line 146 of file ARMBaseInfo.h.
References llvm::ARMCC::AL, llvm::ARMCC::EQ, llvm::ARMCC::GE, llvm::ARMCC::GT, llvm::ARMCC::HI, llvm::ARMCC::HS, llvm::ARMCC::LE, llvm_unreachable, llvm::ARMCC::LO, llvm::ARMCC::LS, llvm::ARMCC::LT, llvm::ARMCC::MI, llvm::ARMCC::NE, llvm::ARMCC::PL, llvm::ARMCC::VC, and llvm::ARMCC::VS.
Referenced by llvm::ARMInstPrinter::printMandatoryInvertedPredicateOperand(), llvm::ARMInstPrinter::printMandatoryPredicateOperand(), and llvm::ARMInstPrinter::printPredicateOperand().
Definition at line 139 of file ARMBaseInfo.h.
References llvm::StringSwitch< T, R >::Case(), llvm::StringSwitch< T, R >::Default(), llvm::ARMVCC::Else, llvm::StringRef::lower(), and llvm::ARMVCC::Then.
|
inlinestatic |
Definition at line 130 of file ARMBaseInfo.h.
References llvm::ARMVCC::Else, llvm_unreachable, llvm::ARMVCC::None, and llvm::ARMVCC::Then.
Referenced by llvm::ARMInstPrinter::printVPTPredicateOperand().
Find the length of an array.
Definition at line 1027 of file STLExtras.h.
References N.
Referenced by llvm::TargetLoweringBase::addRegisterClass(), AnalyzeArguments(), analyzeStandardArguments(), llvm::ARMBaseInstrInfo::ARMBaseInstrInfo(), buildCallOperands(), canLowerByDroppingEvenElements(), CC_PPC32_SVR4_Custom_AlignArgRegs(), CC_PPC32_SVR4_Custom_AlignFPArgRegs(), CC_PPC32_SVR4_Custom_SkipLastArgRegsPPCF128(), CC_RISCV(), CC_SkipOdd(), llvm::AArch64TargetLowering::CCAssignFnForReturn(), convertAddSubFlagsOpcode(), DecodeCtrRegs64RegisterClass(), DecodeCtrRegsRegisterClass(), DecodeGuestRegs64RegisterClass(), DecodeGuestRegsRegisterClass(), DecodePRRegsRegisterClass(), llvm::PPCInstrInfo::DefinesPredicate(), llvm::MCDwarfLineTableHeader::Emit(), llvm::Mips16TargetLowering::EmitInstrWithCustomInserter(), EnsureStackAlignment(), llvm::VEFrameLowering::getCalleeSavedSpillSlots(), llvm::HexagonFrameLowering::getCalleeSavedSpillSlots(), llvm::PPCFrameLowering::getCalleeSavedSpillSlots(), llvm::DIFile::getChecksumKind(), llvm::TargetLoweringBase::getCondCodeAction(), llvm::MipsAsmBackend::getFixupKindInfo(), llvm::MCAsmBackend::getFixupKindInfo(), llvm::RISCVAsmBackend::getFixupKindInfo(), getLdStNInstrDesc(), getNormalLoadInput(), llvm::TargetLoweringBase::getNumRegisters(), llvm::TargetLoweringBase::getOperationAction(), getPrefixes(), llvm::TargetLoweringBase::getRegisterType(), llvm::object::MachOObjectFile::getRelocationTypeName(), llvm::MipsRegisterInfo::getReservedRegs(), llvm::AMDGPURegisterInfo::getSubRegFromChannel(), llvm::TargetLoweringBase::hasTargetDAGCombine(), INITIALIZE_PASS(), llvm::AArch64_MC::initLLVMToCVRegMapping(), llvm::X86_MC::initLLVMToSEHAndCVRegMapping(), isPCRel(), llvm::TargetLoweringBase::isTypeLegal(), lowerCallResult(), LowerCallResult(), LowerVASTART(), mayUsePostIncMode(), llvm::MipsSETargetLowering::MipsSETargetLowering(), needStackSlotPassParameters(), llvm::Triple::normalize(), llvm::FeatureBitset::operator &=(), llvm::FeatureBitset::operator^=(), llvm::FeatureBitset::operator|=(), parseNamePrefix(), llvm::TargetLoweringBase::setCondCodeAction(), llvm::TargetLoweringBase::setJumpIsExpensive(), llvm::TargetLoweringBase::setOperationAction(), llvm::TargetLoweringBase::setTargetDAGCombine(), llvm::SystemZFrameLowering::SystemZFrameLowering(), llvm::HexagonDAGToDAGISel::tryLoadOfLoadIntrinsic(), write_hex(), and write_padding().
|
inline |
array_pod_sort - This sorts an array with the specified start and end extent.
This is just like std::sort, except that it calls qsort instead of using an inlined template. qsort is slightly slower than std::sort, but most sorts are not performance critical in LLVM and std::sort has to be template instantiated for each type, leading to significant measured code bloat. This function should generally be used instead of std::sort where possible.
This function assumes that you have simple POD-like types that can be compared with std::less and can be moved with memcpy. If this isn't true, you should use std::sort.
NOTE: If qsort_r were portable, we could allow a custom comparator and default to std::less.
Definition at line 1083 of file STLExtras.h.
Referenced by CasesAreContiguous(), llvm::SplitAnalysis::clear(), llvm::AccelTableBase::computeBucketCount(), llvm::object::computeSymbolSizes(), llvm::symbolize::SymbolizableObjectFile::create(), llvm::X86TargetLowering::ExpandInlineAsm(), llvm::ScalarEvolution::findArrayDimensions(), llvm::MDAttachmentMap::getAll(), llvm::MachineModuleInfoImpl::getSortedStubs(), isIFunc(), isTerminalReg(), lookupFoldTable(), lowerV16I8Shuffle(), lowerV8I16GeneralSingleInputShuffle(), mergeOperations(), llvm::PassNameParser::printOptionInfo(), llvm::TargetRegistry::printRegisteredTargetsForVersion(), llvm::LegacyInlinerBase::removeDeadFunctions(), setUsedInitializer(), llvm::JumpThreadingPass::SimplifyPartiallyRedundantLoad(), llvm::InstCombiner::SliceUpIllegalIntegerPHI(), sortOpts(), sortSubCommands(), and ValuesOverlap().
|
inline |
Definition at line 1095 of file STLExtras.h.
|
inline |
Adapt std::less<T> for array_pod_sort.
Definition at line 1033 of file STLExtras.h.
Construct a string ref from an array ref of unsigned chars.
Definition at line 60 of file StringExtras.h.
References llvm::StringRef::bytes_begin(), and llvm::StringRef::bytes_end().
Referenced by llvm::pdb::PDBFileBuilder::addInjectedSource(), llvm::pdb::PDBFileBuilder::commit(), llvm::object::MinidumpFile::create(), llvm::symbolize::LLVMSymbolizer::flush(), llvm::pdb::PDBFileBuilder::getNamedStreamIndex(), llvm::object::MachOObjectFile::getSectionContents(), isMips64EL(), layout(), llvm::object::MinidumpFile::MemoryInfoIterator::operator++(), and llvm::BinaryStreamWriter::writeFixedString().
|
inline |
Treats the value 0 as a 1, so Align is always at least 1.
Definition at line 111 of file Alignment.h.
References llvm::Align::Align().
Referenced by llvm::MachineFrameInfo::CreateSpillStackObject(), llvm::MachineFrameInfo::CreateStackObject(), llvm::MachineFrameInfo::CreateVariableSizedObject(), llvm::MachineFrameInfo::ensureMaxAlignment(), getAddrSpace(), getNegativeIsTrueBoolVec(), INITIALIZE_PASS(), llvm::SIMachineFunctionInfo::initializeBaseYamlFields(), instrumentMaskedLoadOrStore(), llvm::MachineFrameInfo::setObjectAlignment(), TypeSizeToSizeIndex(), and llvm::sroa::AllocaSliceRewriter::visit().
Definition at line 188 of file AArch64BaseInfo.h.
Referenced by atomicReadDroppedOnZero(), and llvm::AArch64InstPrinter::printInst().
| bool llvm::attributesPermitTailCall | ( | const Function * | F, |
| const Instruction * | I, | ||
| const ReturnInst * | Ret, | ||
| const TargetLoweringBase & | TLI, | ||
| bool * | AllowDifferingSizes = nullptr |
||
| ) |
Test if given that the input instruction is in the tail call position, if there is an attribute mismatch between the caller and the callee that will inhibit tail call optimizations.
AllowDifferingSizes is an output parameter which, if forming a tail call is permitted, determines whether it's permitted only if the size of the caller's and callee's return types match exactly.
Definition at line 557 of file Analysis.cpp.
References llvm::Intrinsic::getAttributes(), llvm::Function::getAttributes(), NoAlias, llvm::AttributeList::ReturnIndex, and llvm::Value::use_empty().
Referenced by ComputeLinearIndex(), despeculateCountZeros(), and returnTypeIsEligibleForTailCall().
| bool llvm::AVRDAGToDAGISel::select< AVRISD::CALL > | ( | SDNode * | N | ) |
Definition at line 416 of file AVRISelDAGToDAG.cpp.
References Callee, llvm::SelectionDAGISel::CurDAG, llvm::numbers::e, llvm::SelectionDAG::getCopyToReg(), llvm::SelectionDAG::getMachineNode(), llvm::SDValue::getOpcode(), llvm::SelectionDAG::getRegister(), llvm::SDValue::getValue(), llvm::MVT::Glue, llvm::MVT::i16, N, llvm::MVT::Other, llvm::SmallVectorTemplateBase< T >::push_back(), llvm::SelectionDAG::RemoveDeadNode(), llvm::SelectionDAGISel::ReplaceUses(), llvm::ISD::TargetExternalSymbol, and llvm::ISD::TargetGlobalAddress.
| bool llvm::AVRDAGToDAGISel::select< ISD::BRIND > | ( | SDNode * | N | ) |
Definition at line 456 of file AVRISelDAGToDAG.cpp.
References assert(), llvm::ISD::BRIND, llvm::AVRISD::CALL, llvm::SelectionDAGISel::CurDAG, llvm::SDNode::dump(), errs(), llvm::ISD::FrameIndex, llvm::SelectionDAG::getCopyFromReg(), llvm::SelectionDAG::getCopyToReg(), llvm::SelectionDAG::getEntryNode(), llvm::SelectionDAG::getMachineNode(), llvm::SDNode::getOpcode(), llvm::SDNode::getOperand(), llvm::SDNode::getSimpleValueType(), llvm::SDValue::getValue(), llvm::MVT::Glue, llvm::SDNode::hasAnyUseOfValue(), llvm::MVT::i8, llvm::SDNode::isMachineOpcode(), LLVM_DEBUG, llvm::ISD::LOAD, N, llvm::MVT::Other, llvm::SelectionDAG::RemoveDeadNode(), llvm::SelectionDAGISel::ReplaceUses(), llvm::SDNode::setNodeId(), llvm::ISD::SMUL_LOHI, llvm::ISD::STORE, and llvm::ISD::UMUL_LOHI.
| bool llvm::AVRDAGToDAGISel::select< ISD::FrameIndex > | ( | SDNode * | N | ) |
Definition at line 308 of file AVRISelDAGToDAG.cpp.
References llvm::SelectionDAGISel::CurDAG, llvm::SelectionDAG::getDataLayout(), llvm::SelectionDAG::getTargetConstant(), llvm::SelectionDAG::getTargetFrameIndex(), llvm::SelectionDAGISel::getTargetLowering(), llvm::MVT::i16, N, and llvm::SelectionDAG::SelectNodeTo().
Definition at line 360 of file AVRISelDAGToDAG.cpp.
References assert(), llvm::SelectionDAGISel::CurDAG, llvm::LoadSDNode::getBasePtr(), llvm::MemSDNode::getChain(), llvm::SelectionDAG::getCopyFromReg(), llvm::SelectionDAG::getCopyToReg(), llvm::SelectionDAG::getMachineNode(), llvm::MemSDNode::getMemOperand(), llvm::MemSDNode::getMemoryVT(), llvm::SelectionDAG::getRegister(), llvm::EVT::getSimpleVT(), llvm::SDValue::getValue(), llvm::AVRSubtarget::hasLPM(), llvm::MVT::i16, llvm::MVT::i8, llvm::AVR::isProgramMemoryAccess(), llvm::ARM_MB::LD, llvm_unreachable, N, llvm::MVT::Other, llvm::SelectionDAG::RemoveDeadNode(), llvm::SelectionDAGISel::ReplaceUses(), llvm::AVRDAGToDAGISel::selectIndexedLoad(), llvm::AVRDAGToDAGISel::selectIndexedProgMemLoad(), and llvm::SelectionDAG::setNodeMemRefs().
| bool llvm::AVRDAGToDAGISel::select< ISD::STORE > | ( | SDNode * | N | ) |
Definition at line 323 of file AVRISelDAGToDAG.cpp.
References llvm::SelectionDAGISel::CurDAG, dyn_cast(), llvm::StoreSDNode::getBasePtr(), llvm::MemSDNode::getChain(), llvm::SelectionDAG::getMachineNode(), llvm::MemSDNode::getMemOperand(), llvm::SDValue::getOperand(), llvm::RegisterSDNode::getReg(), llvm::SelectionDAG::getTargetConstant(), llvm::StoreSDNode::getValue(), llvm::SDValue::getValueType(), llvm::MVT::i16, N, llvm::MVT::Other, llvm::SelectionDAG::RemoveDeadNode(), llvm::SelectionDAGISel::ReplaceUses(), llvm::NVPTX::PTXCvtMode::RN, llvm::SelectionDAG::setNodeMemRefs(), and llvm::ARM_MB::ST.
Definition at line 257 of file MipsNaClELFStreamer.cpp.
References llvm::X86II::T8.
| bf_iterator<T> llvm::bf_begin | ( | const T & | G | ) |
Definition at line 147 of file BreadthFirstIterator.h.
References llvm::bf_iterator< GraphT, SetType, GT >::begin().
Referenced by breadth_first().
| bf_iterator<T> llvm::bf_end | ( | const T & | G | ) |
Definition at line 151 of file BreadthFirstIterator.h.
References llvm::bf_iterator< GraphT, SetType, GT >::end().
Referenced by breadth_first().
Minimize physical register live ranges.
Regalloc wants them adjacent to their physreg def/use.
FIXME: This is an unnecessary check on the critical path. Most are root/leaf copies which can be prescheduled. The rest (e.g. x86 MUL) could be bundled with the operation that produces or consumes the physreg. We'll do this when regalloc has support for parallel copies.
Definition at line 2913 of file MachineScheduler.cpp.
References llvm::MachineInstr::defs(), llvm::SUnit::getInstr(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::MachineInstr::isCopy(), llvm::MachineInstr::isMoveImmediate(), llvm::Register::isPhysicalRegister(), MI, llvm::SUnit::NumPredsLeft, and llvm::SUnit::NumSuccsLeft.
Referenced by llvm::GenericSchedulerBase::GenericSchedulerBase(), and llvm::GenericScheduler::tryCandidate().
|
inlinenoexcept |
Definition at line 50 of file bit.h.
Referenced by llvm::AArch64_AM::getFPImmFloat(), llvm::ARM_AM::getFPImmFloat(), llvm::PointerSumType< ExtraInfoInlineKinds, llvm::PointerSumTypeMember< EIIK_MMO, llvm::MachineMemOperand *>, llvm::PointerSumTypeMember< EIIK_PreInstrSymbol, llvm::MCSymbol *>, llvm::PointerSumTypeMember< EIIK_PostInstrSymbol, llvm::MCSymbol *>, llvm::PointerSumTypeMember< EIIK_OutOfLine, ExtraInfo *> >::getOpaqueValue(), llvm::AArch64_AM::isSVEMaskOfIdenticalElements(), llvm::AArch64_AM::isSVEMoveMaskPreferredLogicalImmediate(), llvm::APIntOps::RoundDoubleToAPInt(), and llvm::APInt::roundToDouble().
| const std::error_category & llvm::BitcodeErrorCategory | ( | ) |
Definition at line 6281 of file BitcodeReader.cpp.
References ErrorCategory.
Referenced by make_error_code(), and SkipBitcodeWrapperHeader().
|
inline |
This function takes a 64-bit integer and returns the bit equivalent double.
Definition at line 624 of file MathExtras.h.
References D.
Referenced by llvm::APInt::bitsToDouble(), covertDoubleImmToSingleImm(), llvm::MipsLegalizerInfo::legalizeCustom(), llvm::AMDGPUTargetLowering::LowerFP64_TO_INT(), LowerUINT_TO_FP_i32(), lowerUINT_TO_FP_v2i32(), llvm::msgpack::Reader::read(), and llvm::X86TargetLowering::ReplaceNodeResults().
|
inline |
This function takes a 32-bit integer and returns the bit equivalent float.
Definition at line 632 of file MathExtras.h.
References F().
Referenced by llvm::APInt::bitsToFloat(), getFPTernOp(), getMulHu(), llvm::R600InstPrinter::printLiteral(), and llvm::msgpack::Reader::read().
| iterator_range<bf_iterator<T> > llvm::breadth_first | ( | const T & | G | ) |
Definition at line 156 of file BreadthFirstIterator.h.
References bf_begin(), bf_end(), and make_range().
Referenced by llvm::CacheCost::getCacheCost().
| MachineInstr * llvm::buildDbgValueForSpill | ( | MachineBasicBlock & | BB, |
| MachineBasicBlock::iterator | I, | ||
| const MachineInstr & | Orig, | ||
| int | FrameIndex | ||
| ) |
Clone a DBG_VALUE whose value has been spilled to FrameIndex.
Definition at line 2086 of file MachineInstr.cpp.
References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addMetadata(), BuildMI(), computeExprForSpill(), llvm::MachineInstr::getDebugLoc(), llvm::MachineInstr::getDebugVariable(), and llvm::MachineInstr::getDesc().
Referenced by BuildMI(), INITIALIZE_PASS(), and isFullUndefDef().
|
inline |
Builder interface. Specify how to create the initial instruction itself.
Definition at line 316 of file MachineInstrBuilder.h.
References llvm::MachineFunction::CreateMachineInstr().
Referenced by addAsmInstr(), addExclusiveRegPair(), llvm::MachineBasicBlock::addLiveIn(), addRegsToSet(), addSegmentsWithValNo(), llvm::X86FrameLowering::adjustForHiPEPrologue(), llvm::ARMFrameLowering::adjustForSegmentedStacks(), llvm::X86FrameLowering::adjustForSegmentedStacks(), llvm::SITargetLowering::AdjustInstrPostInstrSelection(), llvm::MipsSEInstrInfo::adjustStackPtr(), allPhiOperandsUndefined(), analyzeArguments(), llvm::MipsInstrInfo::analyzeBranch(), AnyAliasLiveIn(), appendEndToFunction(), llvm::HexagonFrameLowering::assignCalleeSavedSpillSlots(), branchMaxOffsets(), llvm::ARMBaseInstrInfo::breakPartialRegDependency(), llvm::X86InstrInfo::breakPartialRegDependency(), llvm::Mips16InstrInfo::BuildAddiuSpImm(), llvm::X86FrameLowering::BuildCFI(), buildDbgValueForSpill(), llvm::R600InstrInfo::buildDefaultInstruction(), llvm::MachineIRBuilder::buildDirectDbgValue(), buildEpilogReload(), buildEXP(), llvm::SIInstrInfo::buildExtractSubReg(), llvm::MachineIRBuilder::buildIndirectDbgValue(), llvm::MachineIRBuilder::buildInstrNoInsert(), BuildMI(), buildMUBUFOffsetLoadStore(), llvm::RISCVInstrInfo::buildOutlinedFrame(), llvm::AArch64InstrInfo::buildOutlinedFrame(), llvm::X86InstrInfo::buildOutlinedFrame(), buildPrologSpill(), llvm::SIInstrInfo::buildShrunkInst(), llvm::SITargetLowering::bundleInstWithWaitcnt(), llvm::SIInstrInfo::calculateLDSSpillAddress(), calculateSetFPREG(), callHasRegMask(), callWaitsOnFunctionReturn(), llvm::TailDuplicator::canTailDuplicate(), canTurnIntoCOPY(), CC_MipsO32_FP64(), changeFCMPPredToAArch64CC(), llvm::X86InstrInfo::classifyLEAReg(), CombineCVTAToLocal(), llvm::PPCInstrInfo::commuteInstructionImpl(), CompareMBBNumbers(), computeBytesPoppedByCalleeForSRet(), ComputeCommonTailLength(), constrainOperandRegClass(), llvm::FastISel::constrainOperandRegClass(), ContainsReg(), convertCalleeSaveRestoreToSPPrePostIncDec(), convertImplicitDefToConstZero(), llvm::SIInstrInfo::convertNonUniformIfRegion(), llvm::SIInstrInfo::convertNonUniformLoopRegion(), llvm::ARMBaseInstrInfo::convertToThreeAddress(), llvm::X86InstrInfo::convertToThreeAddress(), llvm::SIInstrInfo::convertToThreeAddress(), llvm::ARMBaseInstrInfo::copyFromCPSR(), llvm::AArch64InstrInfo::copyGPRRegTuple(), llvm::BPFInstrInfo::copyPhysReg(), llvm::RISCVInstrInfo::copyPhysReg(), llvm::MSP430InstrInfo::copyPhysReg(), llvm::Thumb1InstrInfo::copyPhysReg(), llvm::Thumb2InstrInfo::copyPhysReg(), llvm::MipsSEInstrInfo::copyPhysReg(), llvm::WebAssemblyInstrInfo::copyPhysReg(), llvm::LanaiInstrInfo::copyPhysReg(), llvm::Mips16InstrInfo::copyPhysReg(), llvm::NVPTXInstrInfo::copyPhysReg(), llvm::XCoreInstrInfo::copyPhysReg(), llvm::ARCInstrInfo::copyPhysReg(), llvm::AVRInstrInfo::copyPhysReg(), llvm::SparcInstrInfo::copyPhysReg(), llvm::AArch64InstrInfo::copyPhysReg(), llvm::HexagonInstrInfo::copyPhysReg(), llvm::SIInstrInfo::copyPhysReg(), llvm::ARMBaseInstrInfo::copyPhysReg(), llvm::SystemZInstrInfo::copyPhysReg(), llvm::PPCInstrInfo::copyPhysReg(), llvm::X86InstrInfo::copyPhysReg(), llvm::ARMBaseInstrInfo::copyToCPSR(), llvm::SwiftErrorValueTracking::createEntriesInEntryBlock(), createGCNDPPCombinePass(), createLanaiDelaySlotFillerPass(), llvm::SIInstrInfo::createPHIDestinationCopy(), llvm::TargetInstrInfo::createPHIDestinationCopy(), createPHIsForCMOVsInSinkBB(), createPHIsForSelects(), llvm::SIInstrInfo::createPHISourceCopy(), llvm::TargetInstrInfo::createPHISourceCopy(), createSIAddIMGInitPass(), createSIModeRegisterPass(), createSIWholeQuadModePass(), createSparcDelaySlotFillerPass(), createX86FixupBWInsts(), createX86FixupSetCC(), createX86IndirectBranchTrackingPass(), createX86PadShortFunctions(), createX86RetpolineThunksPass(), doesNotGeneratecode(), llvm::SplitEditor::dump(), llvm::MSP430FrameLowering::eliminateCallFramePseudoInstr(), llvm::AVRFrameLowering::eliminateCallFramePseudoInstr(), llvm::XCoreFrameLowering::eliminateCallFramePseudoInstr(), llvm::SIFrameLowering::eliminateCallFramePseudoInstr(), llvm::PPCFrameLowering::eliminateCallFramePseudoInstr(), llvm::BPFRegisterInfo::eliminateFrameIndex(), llvm::MSP430RegisterInfo::eliminateFrameIndex(), llvm::SparcRegisterInfo::eliminateFrameIndex(), llvm::WebAssemblyRegisterInfo::eliminateFrameIndex(), llvm::LanaiRegisterInfo::eliminateFrameIndex(), llvm::AVRRegisterInfo::eliminateFrameIndex(), llvm::RISCVRegisterInfo::eliminateFrameIndex(), llvm::HexagonRegisterInfo::eliminateFrameIndex(), llvm::SystemZRegisterInfo::eliminateFrameIndex(), llvm::AArch64RegisterInfo::eliminateFrameIndex(), llvm::SIRegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), emitAlignedDPRCS2Restores(), emitAlignedDPRCS2Spills(), emitAligningInstructions(), emitARMRegPlusImmediate(), llvm::PPCTargetLowering::EmitAtomicBinary(), emitBuildPairF64Pseudo(), llvm::AArch64FrameLowering::emitCalleeSavedFrameMoves(), EmitCfiOffset(), llvm::InstrEmitter::EmitDbgLabel(), llvm::InstrEmitter::EmitDbgValue(), EmitDefCfaOffset(), EmitDefCfaRegister(), llvm::PPCTargetLowering::emitEHSjLjLongJmp(), llvm::PPCTargetLowering::emitEHSjLjSetJmp(), llvm::SIFrameLowering::emitEntryFunctionPrologue(), llvm::AVRFrameLowering::emitEpilogue(), llvm::Thumb1FrameLowering::emitEpilogue(), llvm::Mips16FrameLowering::emitEpilogue(), llvm::MipsSEFrameLowering::emitEpilogue(), llvm::SparcFrameLowering::emitEpilogue(), llvm::XCoreFrameLowering::emitEpilogue(), llvm::MSP430FrameLowering::emitEpilogue(), llvm::SIFrameLowering::emitEpilogue(), llvm::ARMFrameLowering::emitEpilogue(), llvm::AArch64FrameLowering::emitEpilogue(), llvm::ARCFrameLowering::emitEpilogue(), llvm::LanaiFrameLowering::emitEpilogue(), llvm::WebAssemblyFrameLowering::emitEpilogue(), llvm::X86FrameLowering::emitEpilogue(), llvm::PPCFrameLowering::emitEpilogue(), llvm::VEFrameLowering::emitEpilogueInsns(), llvm::AArch64TargetLowering::EmitF128CSEL(), emitFrameOffsetAdj(), llvm::HexagonDAGToDAGISel::EmitFunctionEntryCode(), emitGPDisp(), llvm::SITargetLowering::emitGWSMemViolTestLoop(), emitIncrement(), emitIndirectDst(), emitIndirectSrc(), llvm::R600TargetLowering::EmitInstrWithCustomInserter(), llvm::BPFTargetLowering::EmitInstrWithCustomInserter(), llvm::AVRTargetLowering::EmitInstrWithCustomInserter(), llvm::XCoreTargetLowering::EmitInstrWithCustomInserter(), llvm::MSP430TargetLowering::EmitInstrWithCustomInserter(), llvm::ARMTargetLowering::EmitInstrWithCustomInserter(), llvm::MipsTargetLowering::EmitInstrWithCustomInserter(), llvm::SITargetLowering::EmitInstrWithCustomInserter(), llvm::X86TargetLowering::EmitInstrWithCustomInserter(), llvm::MachineRegisterInfo::EmitLiveInCopies(), llvm::ARMBaseRegisterInfo::emitLoadConstPool(), emitLoadM0FromVGPRLoop(), emitLoadSRsrcFromVGPRLoop(), llvm::PPCTargetLowering::EmitPartwordAtomicBinary(), llvm::TargetLoweringBase::emitPatchPoint(), emitPostLd(), emitPostSt(), llvm::AVRFrameLowering::emitPrologue(), llvm::Thumb1FrameLowering::emitPrologue(), llvm::Mips16FrameLowering::emitPrologue(), llvm::NVPTXFrameLowering::emitPrologue(), llvm::MipsSEFrameLowering::emitPrologue(), llvm::SparcFrameLowering::emitPrologue(), llvm::VEFrameLowering::emitPrologue(), llvm::XCoreFrameLowering::emitPrologue(), llvm::RISCVFrameLowering::emitPrologue(), llvm::SIFrameLowering::emitPrologue(), llvm::MSP430FrameLowering::emitPrologue(), llvm::ARMFrameLowering::emitPrologue(), llvm::ARCFrameLowering::emitPrologue(), llvm::AArch64FrameLowering::emitPrologue(), llvm::LanaiFrameLowering::emitPrologue(), llvm::WebAssemblyFrameLowering::emitPrologue(), llvm::SystemZFrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), llvm::PPCFrameLowering::emitPrologue(), emitPrologueEpilogueSPUpdate(), llvm::VEFrameLowering::emitPrologueInsns(), emitReadCycleWidePseudo(), emitRegUpdate(), emitSelectPseudo(), llvm::MSP430TargetLowering::EmitShiftInstr(), emitSplitF64Pseudo(), llvm::X86FrameLowering::emitSPUpdate(), emitT2RegPlusImmediate(), emitThumb1LoadConstPool(), emitThumb2LoadConstPool(), emitThumbRegPlusImmediate(), emitThumbRegPlusImmInReg(), emitXBegin(), llvm::TargetLoweringBase::emitXRayCustomEvent(), llvm::TargetLoweringBase::emitXRayTypedEvent(), enableAllocFrameElim(), eraseDeadBBsAndChildren(), llvm::AMDGPURegisterBankInfo::executeInWaterfallLoop(), llvm::InstructionSelector::executeMatchTable(), llvm::VEInstrInfo::expandExtendStackPseudo(), expandLoadStackGuard(), llvm::ARMBaseInstrInfo::expandLoadStackGuardBase(), expandMOV32r1(), llvm::SIInstrInfo::expandMovDPP64(), ExpandMOVImmSExti8(), llvm::HexagonInstrInfo::expandPostRAPseudo(), llvm::SIInstrInfo::expandPostRAPseudo(), llvm::AArch64InstrInfo::expandPostRAPseudo(), llvm::PPCInstrInfo::expandPostRAPseudo(), llvm::SparcTargetLowering::expandSelectCC(), llvm::HexagonInstrInfo::expandVGatherPseudo(), extractRsrcPtr(), llvm::FastISel::fastEmitInst_(), llvm::FastISel::fastEmitInst_extractsubreg(), llvm::FastISel::fastEmitInst_f(), llvm::FastISel::fastEmitInst_i(), llvm::FastISel::fastEmitInst_r(), llvm::FastISel::fastEmitInst_ri(), llvm::FastISel::fastEmitInst_rii(), llvm::FastISel::fastEmitInst_rr(), llvm::FastISel::fastEmitInst_rri(), llvm::FastISel::fastEmitInst_rrr(), finalizeBundle(), llvm::SITargetLowering::finalizeLowering(), findIncDecAfter(), findNextInsertLocation(), findPotentialBlockers(), findStartOfTree(), findTemporariesForLR(), findUncondBrI(), findVCMPToFoldIntoVPST(), FixedPointIntrinsicToOpcode(), fixStackStores(), fixupGlobalSaddr(), llvm::ARMBaseInstrInfo::FoldImmediate(), llvm::SystemZInstrInfo::foldMemoryOperandImpl(), foldVGPRCopyIntoRegSequence(), for(), forceReg(), llvm::HexagonInstrInfo::genAllInsnTimingClasses(), llvm::AArch64InstrInfo::genAlternativeCodeSequence(), generateStackAdjustment(), genFusedMultiply(), llvm::MipsInstrInfo::genInstrWithNewOpc(), genMaddR(), genNeg(), llvm::SIInstrInfo::getAddNoCarry(), getAdjustedCmp(), getBufferFormatWithCompCount(), getCmpForPseudo(), getCompareCC(), getComparePred(), getCompareSourceReg(), getDSShaderTypeValue(), GetDSubRegs(), getEquivalentCallShort(), llvm::ARMTargetLowering::getExceptionSelectorRegister(), llvm::HexagonFrameLowering::getFrameIndexReference(), llvm::SparcInstrInfo::getGlobalBaseReg(), getImplicitScaleFactor(), getINCDECFromLEA(), GetInitialOffset(), getLaneCopyOpcode(), llvm::PPCInstrInfo::getLoadOpcodeForSpill(), getLoadStoreOffsetAlign(), getLogicalBitOpcode(), getLSMultipleTransferSize(), getMappedOp(), getMopState(), getNewSource(), getNewValueJumpOpcode(), getPostIndexedLoadStoreOpcode(), llvm::SITargetLowering::getPrefLoopAlignment(), getReassignedChan(), getRegClassForUnfoldedLoad(), getRegClassFromGRPhysReg(), llvm::FastISel::getRegForValue(), getRegsUsedByPHIs(), getRetpolineSymbol(), llvm::X86InstrInfo::getSerializableDirectMachineOperandTargetFlags(), getSubOpcode(), getTag(), llvm::BPFTargetLowering::getTargetNodeName(), getUnconditionalBrDisp(), getUnderlyingArgRegs(), llvm::ARMInstrInfo::getUnindexedOpcode(), getV_CMPOpcode(), getVectorSHLImm(), llvm::MipsTargetLowering::HandleByVal(), HandleVRSaveUpdate(), hasArgumentDef(), llvm::RISCVFrameLowering::hasBP(), hasOneExitNode(), hasUseAfterLoop(), hasVulnerableLoad(), hoistAndMergeSGPRInits(), IfNeededExtSP(), IfNeededLDAWSP(), llvm::MipsFunctionInfo::initGlobalBaseReg(), INITIALIZE_PASS(), llvm::X86FrameLowering::inlineStackProbe(), llvm::MipsInstrInfo::insertBranch(), llvm::LanaiInstrInfo::insertBranch(), llvm::AArch64InstrInfo::insertBranch(), llvm::SIInstrInfo::insertBranch(), llvm::X86InstrInfo::insertBranch(), llvm::HexagonFrameLowering::insertCFIInstructions(), llvm::SITargetLowering::insertCopiesSplitCSR(), llvm::AArch64TargetLowering::insertCopiesSplitCSR(), llvm::PPCTargetLowering::insertCopiesSplitCSR(), insertCopy(), insertCSRRestores(), insertCSRSaves(), insertDivByZeroTrap(), llvm::SIInstrInfo::insertEQ(), InsertFPConstInst(), InsertFPImmInst(), llvm::RISCVInstrInfo::insertIndirectBranch(), llvm::AVRInstrInfo::insertIndirectBranch(), llvm::SIInstrInfo::insertIndirectBranch(), InsertLDR_STR(), llvm::SIInstrInfo::insertNE(), InsertNewDef(), llvm::MipsInstrInfo::insertNoop(), llvm::HexagonInstrInfo::insertNoop(), llvm::PPCInstrInfo::insertNoop(), insertNoopInBundle(), insertNopBeforeInstruction(), llvm::RISCVInstrInfo::insertOutlinedCall(), llvm::AArch64InstrInfo::insertOutlinedCall(), llvm::X86InstrInfo::insertOutlinedCall(), insertPHI(), llvm::SIInstrInfo::insertReturn(), InsertReturnAddressAuth(), InsertSEH(), llvm::AArch64InstrInfo::insertSelect(), llvm::SystemZInstrInfo::insertSelect(), llvm::SIInstrInfo::insertSelect(), llvm::X86InstrInfo::insertSelect(), InsertSPConstInst(), InsertSPImmInst(), insertUndefLaneMask(), llvm::SIInstrInfo::insertWaitStates(), instrDefsUsesSCC(), isCallInstruction(), isConstant(), isCopy(), isCopyMulResult(), isEFLAGSLive(), isFpMulInstruction(), isFullUndefDef(), isHardwareLoop(), isIdentityValue(), llvm::X86TargetLowering::isIntDivCheap(), isLiveOut(), llvm::ARMBaseInstrInfo::isLoadFromStackSlotPostFE(), isMergeableLdStUpdate(), IsMovepDestinationRegPair(), isMulPowOf2(), isPHIRegionIndex(), isRegOtherThanSPAndFP(), IsSafeAndProfitableToMove(), isSExtLoad(), isStackPtrRelative(), isVRegCompatibleReg(), llvm::SIInstrInfo::legalizeGenericOperand(), llvm::SIInstrInfo::legalizeOperands(), llvm::SIInstrInfo::legalizeOperandsVOP2(), llvm::SIInstrInfo::legalizeOperandsVOP3(), llvm::SIInstrInfo::legalizeOpWithMove(), llvm::MipsSEInstrInfo::loadImmediate(), llvm::XCoreInstrInfo::loadImmediate(), llvm::Mips16InstrInfo::loadImmediate(), llvm::ARCInstrInfo::loadImmediate(), llvm::SystemZInstrInfo::loadImmediate(), loadM0FromVGPR(), llvm::MipsSEInstrInfo::loadRegFromStack(), llvm::Mips16InstrInfo::loadRegFromStack(), llvm::BPFInstrInfo::loadRegFromStackSlot(), llvm::RISCVInstrInfo::loadRegFromStackSlot(), llvm::MSP430InstrInfo::loadRegFromStackSlot(), llvm::Thumb1InstrInfo::loadRegFromStackSlot(), llvm::Thumb2InstrInfo::loadRegFromStackSlot(), llvm::LanaiInstrInfo::loadRegFromStackSlot(), llvm::XCoreInstrInfo::loadRegFromStackSlot(), llvm::ARCInstrInfo::loadRegFromStackSlot(), llvm::AVRInstrInfo::loadRegFromStackSlot(), llvm::SparcInstrInfo::loadRegFromStackSlot(), llvm::AArch64InstrInfo::loadRegFromStackSlot(), llvm::HexagonInstrInfo::loadRegFromStackSlot(), llvm::ARMBaseInstrInfo::loadRegFromStackSlot(), llvm::SIInstrInfo::loadRegFromStackSlot(), llvm::SystemZInstrInfo::loadRegFromStackSlot(), llvm::X86InstrInfo::loadRegFromStackSlot(), loadRegPairFromStackSlot(), loadSRsrcFromVGPR(), llvm::PPCRegisterInfo::lowerCRBitRestore(), llvm::PPCRegisterInfo::lowerCRBitSpilling(), llvm::PPCRegisterInfo::lowerCRRestore(), llvm::PPCRegisterInfo::lowerCRSpilling(), llvm::PPCRegisterInfo::lowerDynamicAlloc(), llvm::PPCRegisterInfo::lowerDynamicAreaOffset(), LowerFPToInt(), llvm::PPCRegisterInfo::lowerVRSAVERestore(), llvm::PPCRegisterInfo::lowerVRSAVESpilling(), llvm::Mips16InstrInfo::makeFrame(), makeImplicit(), MakeM0Inst(), mapWasmLandingPadIndex(), matchSwap(), llvm::SIRegisterInfo::materializeFrameBaseRegister(), llvm::AArch64RegisterInfo::materializeFrameBaseRegister(), llvm::PPCRegisterInfo::materializeFrameBaseRegister(), llvm::ARMBaseRegisterInfo::materializeFrameBaseRegister(), llvm::SIInstrInfo::materializeImmediate(), mergeOperations(), Mips16WhichOp8uOr16simm(), moveAndTeeForMultiUse(), llvm::SIInstrInfo::moveToVALU(), llvm::RISCVInstrInfo::movImm(), operator<<(), llvm::PPCInstrInfo::optimizeCompareInstr(), llvm::AArch64InstrInfo::optimizeCondBranch(), llvm::LanaiInstrInfo::optimizeSelect(), llvm::ARMBaseInstrInfo::optimizeSelect(), optimizeVcndVcmpPair(), packCmovGroup(), llvm::AArch64FrameLowering::processFunctionBeforeFrameFinalized(), llvm::X86FrameLowering::processFunctionBeforeFrameFinalized(), ProcessSourceNode(), llvm::SwiftErrorValueTracking::propagateVRegs(), llvm::SIInstrInfo::readlaneVGPRToSGPR(), llvm::TargetInstrInfo::reassociateOps(), llvm::X86InstrInfo::reMaterialize(), llvm::ARMBaseInstrInfo::reMaterialize(), RemoveDeadAddBetweenLEAAndJT(), llvm::X86InstrInfo::replaceBranchWithTailCall(), replaceFI(), ReplaceFrameIndex(), llvm::ARMTargetLowering::ReplaceNodeResults(), reportIllegalCopy(), llvm::ARMFrameLowering::ResolveFrameIndexReference(), llvm::AVRFrameLowering::restoreCalleeSavedRegisters(), llvm::Thumb1FrameLowering::restoreCalleeSavedRegisters(), llvm::SystemZFrameLowering::restoreCalleeSavedRegisters(), llvm::MSP430FrameLowering::restoreCalleeSavedRegisters(), llvm::AArch64FrameLowering::restoreCalleeSavedRegisters(), llvm::X86FrameLowering::restoreCalleeSavedRegisters(), llvm::PPCFrameLowering::restoreCalleeSavedRegisters(), restoreCRs(), llvm::Mips16InstrInfo::restoreFrame(), llvm::SIRegisterInfo::restoreSGPR(), RestoreSpillList(), llvm::X86FrameLowering::restoreWin32EHStackPointers(), llvm::UnreachableBlockElimPass::run(), llvm::InsertNOPLoad::runOnMachineFunction(), llvm::FixAllFDIVSQRT::runOnMachineFunction(), llvm::SelectionDAGISel::runOnMachineFunction(), llvm::MachinePipeliner::runOnMachineFunction(), llvm::AVRDynAllocaSR::runOnMachineFunction(), llvm::AMDGPUInstructionSelector::select(), llvm::FastISel::selectBitCast(), llvm::FastISel::selectCall(), selectCopy(), llvm::FastISel::selectIntrinsicCall(), llvm::FastISel::selectPatchpoint(), llvm::FastISel::selectStackmap(), llvm::FastISel::selectXRayCustomEvent(), llvm::FastISel::selectXRayTypedEvent(), llvm::FunctionLoweringInfo::set(), setCallTargetReg(), llvm::ARMBaseInstrInfo::setExecutionDomain(), setM0ToIndexFromSGPR(), llvm::AMDGPUInstructionSelector::setupMF(), shouldUseAndMask(), signOutlinedFunction(), llvm::SparcFrameLowering::SparcFrameLowering(), llvm::AVRFrameLowering::spillCalleeSavedRegisters(), llvm::Thumb1FrameLowering::spillCalleeSavedRegisters(), llvm::SystemZFrameLowering::spillCalleeSavedRegisters(), llvm::MipsSEFrameLowering::spillCalleeSavedRegisters(), llvm::MSP430FrameLowering::spillCalleeSavedRegisters(), llvm::AArch64FrameLowering::spillCalleeSavedRegisters(), llvm::X86FrameLowering::spillCalleeSavedRegisters(), llvm::PPCFrameLowering::spillCalleeSavedRegisters(), llvm::SIRegisterInfo::spillSGPR(), spillVGPRtoAGPR(), splitEdge(), splitMBB(), storeRegPairToStackSlot(), llvm::MipsSEInstrInfo::storeRegToStack(), llvm::Mips16InstrInfo::storeRegToStack(), llvm::BPFInstrInfo::storeRegToStackSlot(), llvm::RISCVInstrInfo::storeRegToStackSlot(), llvm::MSP430InstrInfo::storeRegToStackSlot(), llvm::Thumb1InstrInfo::storeRegToStackSlot(), llvm::Thumb2InstrInfo::storeRegToStackSlot(), llvm::LanaiInstrInfo::storeRegToStackSlot(), llvm::XCoreInstrInfo::storeRegToStackSlot(), llvm::ARCInstrInfo::storeRegToStackSlot(), llvm::AVRInstrInfo::storeRegToStackSlot(), llvm::SparcInstrInfo::storeRegToStackSlot(), llvm::AArch64InstrInfo::storeRegToStackSlot(), llvm::HexagonInstrInfo::storeRegToStackSlot(), llvm::ARMBaseInstrInfo::storeRegToStackSlot(), llvm::SIInstrInfo::storeRegToStackSlot(), llvm::SystemZInstrInfo::storeRegToStackSlot(), llvm::PPCInstrInfo::storeRegToStackSlot(), llvm::X86InstrInfo::storeRegToStackSlot(), subRangeLiveAt(), llvm::SystemZInstrInfo::SystemZInstrInfo(), tryToFindRegisterToRename(), tryToFoldACImm(), llvm::X86InstrInfo::unfoldMemoryOperand(), unstackifyVRegsUsedInSplitBB(), updateDefinedRegisters(), updateOperand(), VerifyLowRegs(), WindowsRequiresStackProbe(), llvm::WebAssemblyFrameLowering::writeSPToGlobal(), and X86ChooseCmpImmediateOpcode().
|
inline |
This version of the builder sets up the first operand as a destination virtual register.
Definition at line 323 of file MachineInstrBuilder.h.
References llvm::MachineFunction::CreateMachineInstr(), and llvm::RegState::Define.
|
inline |
This version of the builder inserts the newly-built instruction before the given position in the given MachineBasicBlock, and sets up the first operand as a destination virtual register.
Definition at line 332 of file MachineInstrBuilder.h.
References llvm::MachineInstrBuilder::addReg(), llvm::MachineFunction::CreateMachineInstr(), llvm::RegState::Define, llvm::MachineBasicBlock::getParent(), llvm::MachineBasicBlock::insert(), and MI.
|
inline |
This version of the builder inserts the newly-built instruction before the given position in the given MachineBasicBlock, and sets up the first operand as a destination virtual register.
If I is inside a bundle, then the newly inserted MachineInstr is added to the same bundle.
Definition at line 348 of file MachineInstrBuilder.h.
References llvm::MachineInstrBuilder::addReg(), llvm::MachineFunction::CreateMachineInstr(), llvm::RegState::Define, llvm::MachineBasicBlock::getParent(), llvm::MachineBasicBlock::insert(), and MI.
|
inline |
Definition at line 358 of file MachineInstrBuilder.h.
References BuildMI(), and llvm::MachineInstr::isInsideBundle().
|
inline |
Definition at line 368 of file MachineInstrBuilder.h.
References BuildMI().
|
inline |
This version of the builder inserts the newly-built instruction before the given position in the given MachineBasicBlock, and does NOT take a destination register.
Definition at line 377 of file MachineInstrBuilder.h.
References llvm::MachineFunction::CreateMachineInstr(), llvm::MachineBasicBlock::getParent(), llvm::MachineBasicBlock::insert(), and MI.
|
inline |
Definition at line 387 of file MachineInstrBuilder.h.
References llvm::MachineFunction::CreateMachineInstr(), llvm::MachineBasicBlock::getParent(), llvm::MachineBasicBlock::insert(), and MI.
|
inline |
Definition at line 397 of file MachineInstrBuilder.h.
References BuildMI(), and llvm::MachineInstr::isInsideBundle().
|
inline |
Definition at line 407 of file MachineInstrBuilder.h.
References BuildMI().
|
inline |
This version of the builder inserts the newly-built instruction at the end of the given MachineBasicBlock, and does NOT take a destination register.
Definition at line 415 of file MachineInstrBuilder.h.
References BuildMI(), and llvm::MachineBasicBlock::end().
|
inline |
This version of the builder inserts the newly-built instruction at the end of the given MachineBasicBlock, and sets up the first operand as a destination virtual register.
Definition at line 423 of file MachineInstrBuilder.h.
References buildDbgValueForSpill(), BuildMI(), llvm::MachineBasicBlock::end(), llvm::ISD::FrameIndex, I, Reg, and updateDbgValueForSpill().
| MachineInstrBuilder llvm::BuildMI | ( | MachineFunction & | MF, |
| const DebugLoc & | DL, | ||
| const MCInstrDesc & | MCID, | ||
| bool | IsIndirect, | ||
| Register | Reg, | ||
| const MDNode * | Variable, | ||
| const MDNode * | Expr | ||
| ) |
This version of the builder builds a DBG_VALUE intrinsic for either a value in a register or a register-indirect address.
The convention is that a DBG_VALUE is indirect iff the second operand is an immediate.
Definition at line 2014 of file MachineInstr.cpp.
References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addMetadata(), llvm::MachineInstrBuilder::addReg(), assert(), BuildMI(), and llvm::RegState::Debug.
| MachineInstrBuilder llvm::BuildMI | ( | MachineFunction & | MF, |
| const DebugLoc & | DL, | ||
| const MCInstrDesc & | MCID, | ||
| bool | IsIndirect, | ||
| MachineOperand & | MO, | ||
| const MDNode * | Variable, | ||
| const MDNode * | Expr | ||
| ) |
This version of the builder builds a DBG_VALUE intrinsic for a MachineOperand.
Definition at line 2030 of file MachineInstr.cpp.
References llvm::MachineInstrBuilder::add(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addMetadata(), llvm::MachineInstrBuilder::addReg(), assert(), BuildMI(), llvm::RegState::Debug, llvm::MachineOperand::getReg(), and llvm::MachineOperand::isReg().
| MachineInstrBuilder llvm::BuildMI | ( | MachineBasicBlock & | BB, |
| MachineBasicBlock::iterator | I, | ||
| const DebugLoc & | DL, | ||
| const MCInstrDesc & | MCID, | ||
| bool | IsIndirect, | ||
| Register | Reg, | ||
| const MDNode * | Variable, | ||
| const MDNode * | Expr | ||
| ) |
This version of the builder builds a DBG_VALUE intrinsic for either a value in a register or a register-indirect address and inserts it at position I.
Definition at line 2049 of file MachineInstr.cpp.
References BuildMI(), llvm::MachineBasicBlock::getParent(), and llvm::MachineBasicBlock::insert().
| MachineInstrBuilder llvm::BuildMI | ( | MachineBasicBlock & | BB, |
| MachineBasicBlock::iterator | I, | ||
| const DebugLoc & | DL, | ||
| const MCInstrDesc & | MCID, | ||
| bool | IsIndirect, | ||
| MachineOperand & | MO, | ||
| const MDNode * | Variable, | ||
| const MDNode * | Expr | ||
| ) |
This version of the builder builds a DBG_VALUE intrinsic for a machine operand and inserts it at position I.
Definition at line 2060 of file MachineInstr.cpp.
References BuildMI(), llvm::MachineBasicBlock::getParent(), and llvm::MachineBasicBlock::insert().
| ModuleSummaryIndex llvm::buildModuleSummaryIndex | ( | const Module & | M, |
| std::function< BlockFrequencyInfo *(const Function &F)> | GetBFICallback, | ||
| ProfileSummaryInfo * | PSI | ||
| ) |
Direct function to compute a ModuleSummaryIndex from a given module.
If operating within a pass manager which has defined ways to compute the BlockFrequencyInfo for a given function, that can be provided via a std::function callback. Otherwise, this routine will manually construct that information.
Definition at line 640 of file ModuleSummaryAnalysis.cpp.
References llvm::ModuleSummaryIndex::addGlobalValueSummary(), all_of(), assert(), llvm::AMDGPUISD::BFI, llvm::ModuleSymbolTable::CollectAsmSymbols(), collectUsedGlobalVariables(), computeAliasSummary(), computeFunctionSummary(), computeVariableSummary(), llvm::detail::DenseSetImpl< ValueT, DenseMap< ValueT, detail::DenseSetEmpty, ValueInfoT, detail::DenseSetPair< ValueT > >, ValueInfoT >::count(), llvm::SmallPtrSetImplBase::empty(), F(), G, llvm::ModuleSummaryIndex::getGlobalValueSummary(), llvm::GlobalValue::getGUID(), llvm::Module::getModuleFlag(), llvm::Module::getModuleInlineAsm(), llvm::Module::getNamedValue(), llvm::Function::hasFnAttribute(), llvm::GlobalValue::hasGlobalUnnamedAddr(), llvm::GlobalValue::hasLinkOnceODRLinkage(), llvm::Function::hasProfileData(), llvm::detail::DenseSetImpl< ValueT, DenseMap< ValueT, detail::DenseSetEmpty, ValueInfoT, detail::DenseSetPair< ValueT > >, ValueInfoT >::insert(), llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::GlobalValue::InternalLinkage, llvm::GlobalValue::isDeclaration(), llvm::GlobalValue::isDSOLocal(), ModuleSummaryDotFile, Name, llvm::sys::fs::OF_None, report_fatal_error(), llvm::Function::returnDoesNotAlias(), setLiveRoot(), llvm::object::BasicSymbolRef::SF_Global, llvm::object::BasicSymbolRef::SF_Weak, and VI.
Referenced by llvm::ModuleSummaryIndexAnalysis::run(), and llvm::ModuleSummaryIndexWrapperPass::runOnModule().
| void llvm::BuryPointer | ( | const void * | Ptr | ) |
Definition at line 15 of file BuryPointer.cpp.
References LLVM_ATTRIBUTE_UNUSED.
Referenced by BuryPointer().
| void llvm::BuryPointer | ( | std::unique_ptr< T > | Ptr | ) |
Definition at line 23 of file BuryPointer.h.
References BuryPointer().
| bool llvm::bypassSlowDivision | ( | BasicBlock * | BB, |
| const DenseMap< unsigned int, unsigned int > & | BypassWidth | ||
| ) |
This optimization identifies DIV instructions in a BB that can be profitably bypassed and carried out with a shorter, faster divide.
This optimization may add basic blocks immediately after BB; for obvious reasons, you shouldn't pass those blocks to bypassSlowDivision.
Referenced by createCodeGenPreparePass(), and llvm::DenseMapInfo< DivRemMapKey >::getHashValue().
Return a byte-swapped representation of the 16-bit argument.
Definition at line 475 of file MathExtras.h.
References llvm::sys::SwapByteOrder_16().
Referenced by llvm::APInt::byteSwap().
Return a byte-swapped representation of the 32-bit argument.
Definition at line 480 of file MathExtras.h.
References llvm::sys::SwapByteOrder_32().
Referenced by llvm::APInt::byteSwap().
|
inline |
Return a byte-swapped representation of the 64-bit argument.
Definition at line 485 of file MathExtras.h.
References llvm::sys::SwapByteOrder_64().
Referenced by llvm::APInt::byteSwap().
| SmallVectorImpl<T>::const_pointer llvm::c_str | ( | SmallVectorImpl< T > & | str | ) |
Definition at line 193 of file WindowsSupport.h.
References llvm::SmallVectorTemplateCommon< T >::data(), llvm::SmallVectorTemplateBase< T >::pop_back(), and llvm::SmallVectorTemplateBase< T >::push_back().
Referenced by llvm::DWARFUnit::collectAddressRanges(), llvm::TargetLowering::getMultipleConstraintMatchWeight(), llvm::NVPTXRegisterInfo::getName(), LLVMCreateBinary(), LLVMGetDefaultTargetTriple(), LLVMMachOUniversalBinaryCopyObjectForArch(), LLVMNormalizeTargetTriple(), and llvm::NVPTXTargetLowering::LowerCall().
Definition at line 46 of file NVPTXUtilities.cpp.
References assert(), dyn_cast(), llvm::numbers::e, llvm::MDNode::getNumOperands(), llvm::MDNode::getOperand(), llvm::MDString::getString(), llvm::ConstantInt::getZExtValue(), and llvm::StringRef::str().
Referenced by cacheAnnotationFromMD(), findAllNVVMAnnotation(), and findOneNVVMAnnotation().
|
static |
Definition at line 72 of file NVPTXUtilities.cpp.
References cacheAnnotationFromMD(), llvm::numbers::e, llvm::Module::getNamedMetadata(), llvm::NamedMDNode::getNumOperands(), llvm::MDNode::getOperand(), and llvm::NamedMDNode::getOperand().
| void llvm::calculateClrEHStateNumbers | ( | const Function * | Fn, |
| WinEHFuncInfo & | FuncInfo | ||
| ) |
Definition at line 478 of file WinEHPrepare.cpp.
References addClrEHHandler(), assert(), Catch, Cleanup(), llvm::WinEHFuncInfo::ClrEHUnwindMap, llvm::WinEHFuncInfo::EHPadStateMap, llvm::SmallVectorImpl< T >::emplace_back(), llvm::SmallVectorBase::empty(), Fault, Finally, llvm::BasicBlock::getFirstNonPHI(), llvm::Instruction::getParent(), I, and llvm::SmallVectorImpl< T >::pop_back_val().
Referenced by llvm::FunctionLoweringInfo::set().
|
inlinestatic |
Calculate what to divide by to scale counts.
Given the maximum count, calculate a divisor that will scale all the weights to strictly less than std::numeric_limits<uint32_t>::max().
Definition at line 188 of file Instrumentation.h.
References max().
Referenced by llvm::pgo::promoteIndirectCall(), and setProfMetadata().
| void llvm::calculateDbgEntityHistory | ( | const MachineFunction * | MF, |
| const TargetRegisterInfo * | TRI, | ||
| DbgValueHistoryMap & | DbgValues, | ||
| DbgLabelInstrMap & | DbgLabels | ||
| ) |
Definition at line 231 of file DbgEntityHistoryCalculator.cpp.
References llvm::DbgLabelInstrMap::addInstr(), assert(), clobberRegisterUses(), llvm::DbgValueHistoryMap::Entry::endEntry(), llvm::MachineInstr::FrameDestroy, llvm::MachineInstr::FrameSetup, llvm::DbgValueHistoryMap::getEntry(), llvm::TargetRegisterInfo::getFrameRegister(), llvm::TargetLoweringBase::getStackPointerRegisterToSaveRestore(), llvm::MachineFunction::getSubtarget(), llvm::TargetSubtargetInfo::getTargetLowering(), handleNewDebugValue(), llvm::DbgValueHistoryMap::Entry::isClosed(), llvm::DbgValueHistoryMap::Entry::isDbgValue(), llvm::Register::isPhysicalRegister(), llvm::MCRegAliasIterator::isValid(), llvm::Register::isVirtualRegister(), MI, llvm::SmallVectorTemplateBase< T, bool >::push_back(), Reg, llvm::DbgValueHistoryMap::startClobber(), and TRI.
Referenced by llvm::DebugHandlerBase::beginFunction(), and llvm::DbgLabelInstrMap::end().
| void llvm::calculateSEHStateNumbers | ( | const Function * | ParentFn, |
| WinEHFuncInfo & | FuncInfo | ||
| ) |
Definition at line 429 of file WinEHPrepare.cpp.
References calculateStateNumbersForInvokes(), isTopLevelPadForMSVC(), and llvm::WinEHFuncInfo::SEHUnwindMap.
Referenced by calculateSEHStateNumbers(), getSuccState(), and llvm::FunctionLoweringInfo::set().
| void llvm::calculateSpillWeightsAndHints | ( | LiveIntervals & | LIS, |
| MachineFunction & | MF, | ||
| VirtRegMap * | VRM, | ||
| const MachineLoopInfo & | MLI, | ||
| const MachineBlockFrequencyInfo & | MBFI, | ||
| VirtRegAuxInfo::NormalizingFn | norm = normalizeSpillWeight |
||
| ) |
Compute spill weights and allocation hints for all virtual register live intervals.
Definition at line 31 of file CalcSpillWeights.cpp.
References llvm::VirtRegAuxInfo::calculateSpillWeightAndHint(), dbgs(), llvm::numbers::e, llvm::LiveIntervals::getInterval(), llvm::MachineFunction::getName(), llvm::MachineFunction::getRegInfo(), llvm::Register::index2VirtReg(), LLVM_DEBUG, MRI, and Reg.
Referenced by normalizePBQPSpillWeight(), and llvm::VirtRegAuxInfo::VirtRegAuxInfo().
| void llvm::calculateWasmEHInfo | ( | const Function * | F, |
| WasmEHFuncInfo & | EHInfo | ||
| ) |
Definition at line 352 of file WasmEHPrepare.cpp.
References llvm::BasicBlock::begin(), llvm::BasicBlock::getFirstNonPHI(), llvm::BasicBlock::isEHPad(), and llvm::WasmEHFuncInfo::setEHPadUnwindDest().
Referenced by llvm::WasmEHFuncInfo::hasEHPadUnwindDest(), and llvm::FunctionLoweringInfo::set().
| void llvm::calculateWinCXXEHStateNumbers | ( | const Function * | ParentFn, |
| WinEHFuncInfo & | FuncInfo | ||
| ) |
Analyze the IR in ParentFn and it's handlers to build WinEHFuncInfo, which describes the state numbers and tables used by __CxxFrameHandler3.
This analysis assumes that WinEHPrepare has already been run.
Definition at line 447 of file WinEHPrepare.cpp.
References calculateCXXStateNumbers(), calculateStateNumbersForInvokes(), llvm::WinEHFuncInfo::EHPadStateMap, and isTopLevelPadForMSVC().
Referenced by getSuccState(), and llvm::FunctionLoweringInfo::set().
| void llvm::call_once | ( | once_flag & | flag, |
| Function && | F, | ||
| Args &&... | ArgList | ||
| ) |
Execute the function specified as a parameter once.
Typical usage:
| flag | Flag used for tracking whether or not this has run. |
| F | Function to call once. |
Definition at line 118 of file Threading.h.
References llvm::sys::CompareAndSwap(), F(), get_max_thread_name_length(), get_thread_name(), get_threadid(), hardware_concurrency(), heavyweight_hardware_concurrency(), llvm::sys::MemoryFence(), Name, set_thread_name(), TsanHappensAfter, TsanHappensBefore, TsanIgnoreWritesBegin, TsanIgnoreWritesEnd, and llvm::sys::Wait().
Referenced by llvm::TargetPassConfig::createRegAllocPass(), and getManagedStaticMutex().
| Pass* llvm::callDefaultCtor | ( | ) |
Definition at line 76 of file PassSupport.h.
| bool llvm::callsGCLeafFunction | ( | const CallBase * | Call, |
| const TargetLibraryInfo & | TLI | ||
| ) |
Return true if this call calls a gc leaf function.
A leaf function is a function that does not safepoint the thread during its execution. During a call or invoke to such a function, the callers stack does not have to be made parseable.
Most passes can and should ignore this information, and it is only used during lowering by the GC infrastructure.
Definition at line 2532 of file Local.cpp.
References F(), llvm::CallBase::getCalledFunction(), llvm::TargetLibraryInfo::getLibFunc(), llvm::TargetLibraryInfo::has(), and llvm::CallBase::hasFnAttr().
Referenced by getKnownAlignment(), needsStatepoint(), and llvm::RewriteStatepointsForGC::runOnFunction().
canConstantFoldCallTo - Return true if its even possible to fold a call to the specified function.
Definition at line 1402 of file ConstantFolding.cpp.
References llvm::lltok::APFloat, assert(), llvm::APFloat::bitcastToAPInt(), llvm::APFloat::clearSign(), ConstantFoldLoadFromConstPtr(), llvm::APFloat::convert(), llvm::APFloat::convertToDouble(), llvm::APFloat::convertToFloat(), llvm::APFloat::convertToInteger(), llvm::APFloat::copySign(), llvm::APInt::countLeadingZeros(), llvm::APInt::countTrailingZeros(), E, llvm::APFloat::fusedMultiplyAdd(), llvm::ConstantInt::get(), llvm::ConstantFP::get(), llvm::ConstantStruct::get(), llvm::ConstantVector::get(), llvm::UndefValue::get(), llvm::Constant::getAggregateElement(), llvm::Constant::getAllOnesValue(), llvm::APInt::getBitWidth(), llvm::CallBase::getCaller(), llvm::Type::getContext(), llvm::SequentialType::getElementType(), llvm::Type::getFltSemantics(), llvm::Type::getInt1Ty(), llvm::Type::getIntegerBitWidth(), llvm::Function::getIntrinsicID(), llvm::TargetLibraryInfo::getLibFunc(), llvm::Value::getName(), llvm::Constant::getNullValue(), llvm::SequentialType::getNumElements(), llvm::Instruction::getParent(), llvm::APInt::getSignedMaxValue(), llvm::APInt::getSignedMinValue(), llvm::Type::getStructElementType(), llvm::ConstantInt::getTrue(), getType(), llvm::Value::getType(), llvm::ConstantFP::getValueAPF(), llvm::APInt::getZExtValue(), llvm::TargetLibraryInfo::has(), llvm::Value::hasName(), hasVectorInstrinsicScalarOpd(), I, llvm::APFloatBase::IEEEdouble(), llvm::APFloatBase::IEEEhalf(), llvm::Type::isDoubleTy(), llvm::Type::isFloatTy(), llvm::Type::isHalfTy(), llvm::CallBase::isNoBuiltin(), llvm::APInt::isNullValue(), llvm::APInt::isOneValue(), llvm::CallBase::isStrictFP(), LLVM_FALLTHROUGH, llvm_unreachable, Log2(), log2(), llvm::APInt::lshr(), makeMutableArrayRef(), llvm::BitmaskEnumDetail::Mask(), maximum(), maxnum(), minimum(), minnum(), llvm::APFloat::mod(), mode, Name, llvm::Intrinsic::not_intrinsic, NotLibFunc, NullPointerIsDefined(), llvm::User::operand_values(), Operands, llvm::APFloatBase::opInexact, llvm::APFloatBase::opOK, llvm::SmallVectorTemplateBase< T >::push_back(), llvm::APFloatBase::rmNearestTiesToAway, llvm::APFloatBase::rmNearestTiesToEven, llvm::APFloatBase::rmTowardNegative, llvm::APFloatBase::rmTowardPositive, llvm::APFloatBase::rmTowardZero, round(), llvm::APFloat::roundToIntegral(), llvm::APInt::sadd_ov(), llvm::APInt::sadd_sat(), llvm::APInt::sextOrSelf(), llvm::APInt::sextOrTrunc(), llvm::APInt::shl(), llvm::SmallVectorBase::size(), llvm::StringRef::size(), llvm::ArrayRef< T >::size(), llvm::APIntOps::smax(), llvm::APIntOps::smin(), llvm::APInt::smul_ov(), llvm::APInt::ssub_ov(), llvm::APInt::ssub_sat(), llvm::sys::fs::status(), llvm::APInt::uadd_ov(), llvm::APInt::uadd_sat(), llvm::APInt::umul_ov(), llvm::APInt::urem(), llvm::APInt::usub_ov(), llvm::APInt::usub_sat(), llvm::NVPTX::PTXLdStInstCode::V2, and llvm::RISCVFenceField::W.
Referenced by CanConstantFold(), ConstantFoldLoadFromConstPtr(), and SimplifyCall().
Given i1 V, can every user of V be freely adapted if V is changed to !V ?
See also: isFreeToInvert()
Definition at line 218 of file InstCombineInternal.h.
References I, llvm::PatternMatch::m_Not(), llvm::PatternMatch::m_Value(), llvm::PatternMatch::match(), llvm::MCID::Select, and llvm::Value::users().
Referenced by foldXorToXor().
|
static |
Check whether it is safe to if-convert this phi node.
Phi nodes with constant expressions that can trap are not safe to if convert.
Definition at line 359 of file LoopVectorizationLegality.cpp.
References C, and llvm::BasicBlock::phis().
Referenced by llvm::LoopVectorizationLegality::blockNeedsPredication().
Returns true if S is defined and never is equal to signed/unsigned max.
Definition at line 1035 of file LoopUtils.cpp.
References getBitWidth(), llvm::ScalarEvolution::getConstant(), llvm::APInt::getMaxValue(), llvm::APInt::getSignedMaxValue(), llvm::SCEV::getType(), llvm::CmpInst::ICMP_SLT, llvm::CmpInst::ICMP_ULT, llvm::ScalarEvolution::isAvailableAtLoopEntry(), and llvm::ScalarEvolution::isLoopEntryGuardedByCond().
Returns true if S is defined and never is equal to signed/unsigned min.
Definition at line 1024 of file LoopUtils.cpp.
References getBitWidth(), llvm::ScalarEvolution::getConstant(), llvm::APInt::getMinValue(), llvm::APInt::getSignedMinValue(), llvm::SCEV::getType(), llvm::CmpInst::ICMP_SGT, llvm::CmpInst::ICMP_UGT, llvm::ScalarEvolution::isAvailableAtLoopEntry(), and llvm::ScalarEvolution::isLoopEntryGuardedByCond().
| bool llvm::CannotBeNegativeZero | ( | const Value * | V, |
| const TargetLibraryInfo * | TLI, | ||
| unsigned | Depth = 0 |
||
| ) |
Return true if we can prove that the specified FP value is never equal to -0.0.
NOTE: this function will need to be revisited when we support non-default rounding modes!
Definition at line 2993 of file ValueTracking.cpp.
References dyn_cast(), getIntrinsicForCallSite(), llvm::PatternMatch::m_FAdd(), llvm::PatternMatch::m_PosZeroFP(), llvm::PatternMatch::m_Value(), and llvm::PatternMatch::match().
Referenced by cannotBeOrderedLessThanZeroImpl(), foldSelectBinOpIdentity(), SimplifyFAddInst(), SimplifyFSubInst(), and llvm::InstCombiner::visitFSub().
| bool llvm::CannotBeOrderedLessThanZero | ( | const Value * | V, |
| const TargetLibraryInfo * | TLI | ||
| ) |
Return true if we can prove that the specified FP value is either NaN or never less than -0.0.
NaN –> true +0 –> true -0 –> true x > +0 –> true x < -0 –> false
Definition at line 3187 of file ValueTracking.cpp.
References cannotBeOrderedLessThanZeroImpl().
Referenced by isKnownNeverNaN(), and SimplifyFCmpInst().
|
static |
Definition at line 510 of file ArchiveWriter.cpp.
References P, and llvm::MipsISD::Ret.
Referenced by computeArchiveRelativePath().
Definition at line 77 of file LoopUnrollPeel.cpp.
References all_of(), dyn_cast(), llvm::SmallVectorBase::empty(), llvm::LoopBase< BlockT, LoopT >::getExitingBlock(), llvm::LoopBase< BlockT, LoopT >::getLoopLatch(), llvm::BasicBlock::getTerminatingDeoptimizeCall(), llvm::BasicBlock::getTerminator(), llvm::LoopBase< BlockT, LoopT >::getUniqueExitBlock(), llvm::LoopBase< BlockT, LoopT >::getUniqueNonLatchExitBlocks(), llvm::BranchInst::isConditional(), llvm::LoopBase< BlockT, LoopT >::isLoopExiting(), llvm::Loop::isLoopSimplifyForm(), and UnrollPeelMultiDeoptExit.
Referenced by computePeelCount(), llvm::HexagonTTIImpl::getUnrollingPreferences(), and peelLoop().
Check if we can safely rename this Comdat function.
Instances of the same comdat function may have different control flows thus can not share the same counter variable.
Definition at line 1088 of file InstrProf.cpp.
References assert(), llvm::GlobalValue::AvailableExternallyLinkage, llvm::StringRef::empty(), llvm::GlobalValue::getLinkage(), llvm::Value::getName(), llvm::GlobalValue::getParent(), llvm::Function::hasAddressTaken(), llvm::GlobalObject::hasComdat(), llvm::GlobalValue::isDiscardableIfUnused(), and needsComdatForCounter().
Referenced by canRenameComdat(), getInstrProfNameSeparator(), and getVarName().
| bool llvm::canReplaceOperandWithVariable | ( | const Instruction * | I, |
| unsigned | OpIdx | ||
| ) |
Given an instruction, is it legal to set operand OpIdx to a non-constant value?
Definition at line 2918 of file Local.cpp.
References llvm::MCID::Call, E, gep_type_begin(), llvm::Instruction::getOpcode(), llvm::User::getOperand(), llvm::Value::getType(), I, llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::isBundleOperand(), llvm::Type::isMetadataTy(), and llvm::generic_gep_type_iterator< ItTy >::isStruct().
Referenced by canSinkInstructions(), llvm::GVNExpression::Expression::dump(), and getKnownAlignment().
Definition at line 69 of file EHPersonalities.cpp.
References classifyEHPersonality(), llvm::Function::getPersonalityFn(), and isAsynchronousEHPersonality().
Referenced by llvm::IRPosition::getAttrs(), isNoOpWithoutInvoke(), markAliveBlocks(), and SimplifyFunction().
| bool llvm::canSinkOrHoistInst | ( | Instruction & | I, |
| AAResults * | AA, | ||
| DominatorTree * | DT, | ||
| Loop * | CurLoop, | ||
| AliasSetTracker * | CurAST, | ||
| MemorySSAUpdater * | MSSAU, | ||
| bool | TargetExecutesOncePerLoop, | ||
| SinkAndHoistLICMFlags * | LICMFlags = nullptr, |
||
| OptimizationRemarkEmitter * | ORE = nullptr |
||
| ) |
Returns true if is legal to hoist or sink this instruction disregarding the possible introduction of faults.
Reasoning about potential faulting instructions is the responsibility of the caller since it is challenging to do efficiently from within this routine. TargetExecutesOncePerLoop is true only when it is guaranteed that the target executes at most once per execution of the loop body. This is used to assess the legality of duplicating atomic loads. Generally, this is true when moving out of loop and not true when moving into loops. If ORE is set use it to emit optimization remarks.
Definition at line 1083 of file LICM.cpp.
References assert(), llvm::AliasSetTracker::begin(), llvm::LoopBase< BlockT, LoopT >::contains(), DEBUG_TYPE, llvm::MemorySSA::dominates(), llvm::OptimizationRemarkEmitter::emit(), llvm::AliasSetTracker::end(), FMRB_DoesNotAccessMemory, llvm::MemoryLocation::get(), llvm::AliasSetTracker::getAliasSetFor(), llvm::MemorySSA::getBlockAccesses(), llvm::LoopBase< BlockT, LoopT >::getBlocks(), llvm::MemorySSAWalker::getClobberingMemoryAccess(), llvm::MemoryUseOrDef::getDefiningAccess(), llvm::MemorySSA::getMemoryAccess(), llvm::MemorySSAUpdater::getMemorySSA(), llvm::AAResults::getModRefBehavior(), llvm::AAResults::getModRefInfo(), llvm::MemorySSA::getSkipSelfWalker(), llvm::AliasSet::getUniqueInstruction(), llvm::MemorySSA::isLiveOnEntryDef(), isLoadInvariantInLoop(), llvm::Loop::isLoopInvariant(), isModOrRefSet(), llvm::SinkAndHoistLICMFlags::IsSink, llvm::SinkAndHoistLICMFlags::LicmMssaOptCap, llvm::SinkAndHoistLICMFlags::LicmMssaOptCounter, llvm::PatternMatch::match(), llvm::Instruction::mayReadOrWriteMemory(), MRI, llvm::SinkAndHoistLICMFlags::NoOfMemAccTooLarge, llvm::AAResults::onlyAccessesArgPointees(), llvm::AAResults::onlyReadsMemory(), pointerInvalidatedByLoop(), pointerInvalidatedByLoopWithMSSA(), llvm::AAResults::pointsToConstantMemory(), SI, llvm::Sched::Source, and llvm::LocationSize::unknown().
Referenced by hoistRegion(), sinkLoopInvariantInstructions(), and sinkRegion().
Report a fatal error if Err is a failure value.
This function can be used to wrap calls to fallible functions ONLY when it is known that the Error will always be a success value. E.g.
Definition at line 703 of file Error.h.
Referenced by llvm::orc::OrcMCJITReplacement::addModule(), llvm::orc::OrcMCJITReplacement::addObjectFile(), addPadding(), llvm::orc::rpc::detail::RPCEndpointBase< SingleThreadedRPCEndpoint< ChannelT, FunctionIdT, SequenceNumberT >, ChannelT, FunctionIdT, SequenceNumberT >::appendCallAsync(), llvm::codeview::ContinuationRecordBuilder::begin(), llvm::orc::cloneToNewContext(), commitFpm(), computeAddrMap(), llvm::msf::WritableMappedBlockStream::createFpmStream(), createRecord(), llvm::MCStreamer::EmitDwarfFileDirective(), llvm::MCJIT::emitObject(), llvm::codeview::ContinuationRecordBuilder::end(), llvm::CodeViewYAML::fromDebugH(), llvm::orc::JITCompileCallbackManager::getCompileCallback(), llvm::MCDwarfDwoLineTable::getFile(), llvm::MCDwarfLineTable::getFile(), llvm::orc::AbsoluteSymbolsMaterializationUnit::getName(), llvm::pdb::PDBFileBuilder::getNamedStreamIndex(), llvm::pdb::SymbolCache::getOrCreateGlobalSymbolByOffset(), llvm::orc::OrcMCJITReplacement::getSymbolAddress(), llvm::codeview::getSymbolName(), handleAllErrors(), llvm::pdb::PDBFile::hasPDBIpiStream(), llvm::xray::mergeProfilesByStack(), llvm::xray::mergeProfilesByThread(), llvm::pdb::NativeEnumGlobals::NativeEnumGlobals(), llvm::orc::ConcurrentIRCompiler::operator()(), llvm::xray::Profile::Profile(), resolveTypeIndexReferences(), llvm::orc::OrcMCJITReplacement::runStaticConstructorsDestructors(), llvm::codeview::SimpleTypeSerializer::serialize(), llvm::orc::OrcMCJITReplacement::setProcessAllSections(), llvm::DWARFDebugLoclists::visitLocationList(), llvm::codeview::ContinuationRecordBuilder::writeMemberType(), and llvm::pdb::NativeTypeFunctionSig::~NativeTypeFunctionSig().
Report a fatal error if ValOrErr is a failure value, otherwise unwraps and returns the contained value.
This function can be used to wrap calls to fallible functions ONLY when it is known that the Error will always be a success value. E.g.
Definition at line 731 of file Error.h.
References E, llvm_unreachable, llvm::raw_string_ostream::str(), and llvm::Expected< T >::takeError().
Report a fatal error if ValOrErr is a failure value, otherwise unwraps and returns the contained reference.
This function can be used to wrap calls to fallible functions ONLY when it is known that the Error will always be a success value. E.g.
Definition at line 762 of file Error.h.
References E, llvm_unreachable, llvm::raw_string_ostream::str(), and llvm::Expected< T >::takeError().
Determine if the values of the given function's arguments can be tracked interprocedurally.
The value of an argument can be tracked if the function has local linkage and its address is not taken.
Definition at line 19 of file ValueLatticeUtils.cpp.
References llvm::Function::hasAddressTaken(), and llvm::GlobalValue::hasLocalLinkage().
Referenced by runCVP(), and runIPSCCP().
| bool llvm::canTrackGlobalVariableInterprocedurally | ( | GlobalVariable * | GV | ) |
Determine if the value maintained in the given global variable can be tracked interprocedurally.
A value can be tracked if the global variable has local linkage and is only used by non-volatile loads and stores.
Definition at line 27 of file ValueLatticeUtils.cpp.
References any_of(), llvm::GlobalVariable::hasDefinitiveInitializer(), llvm::GlobalValue::hasLocalLinkage(), llvm::GlobalVariable::isConstant(), llvm::SPII::Load, llvm::SPII::Store, and llvm::Value::users().
Referenced by runIPSCCP().
Determine if the values of the given function's returns can be tracked interprocedurally.
Return values can be tracked if the function has an exact definition and it doesn't have the "naked" attribute. Naked functions may contain assembly code that returns untrackable values.
Definition at line 23 of file ValueLatticeUtils.cpp.
References llvm::GlobalValue::hasExactDefinition(), and llvm::Function::hasFnAttribute().
Referenced by runIPSCCP().
Definition at line 22 of file Capacity.h.
|
inline |
Definition at line 906 of file SmallVector.h.
References llvm::sys::path::begin(), llvm::SmallVectorTemplateCommon< T >::capacity_in_bytes(), and llvm::SmallVectorBase::Size.
Definition at line 931 of file BitVector.h.
References llvm::BitVector::getMemorySize().
|
inline |
Definition at line 1269 of file DenseMap.h.
Computes the Bernstein hash after folding the input according to the Dwarf 5 standard case folding rules.
Definition at line 71 of file DJB.cpp.
References C, chopOneUTF32(), djbHash(), llvm::StringRef::empty(), fastCaseFoldingDjbHash(), foldCharDwarf(), H, and toUTF8().
Referenced by djbHash(), llvm::DWARFDebugNames::dump(), llvm::DWARF5AccelTableData::hash(), and llvm::DWARF5AccelTableStaticData::hash().
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 286 of file Casting.h.
References assert(), and LLVM_NODISCARD.
|
inline |
Definition at line 297 of file Casting.h.
References assert(), and LLVM_NODISCARD.
|
inline |
|
inline |
Definition at line 314 of file Casting.h.
References LLVM_NODISCARD.
Return V if it is an i8*, otherwise cast it to i8*.
Definition at line 822 of file BuildLibCalls.cpp.
References llvm::IRBuilder< T, Inserter >::CreateBitCast(), llvm::IRBuilderBase::getInt8PtrTy(), llvm::Type::getPointerAddressSpace(), and llvm::Value::getType().
Referenced by annotateNonNullAndDereferenceable(), emitBCmp(), emitFGetSUnlocked(), emitFPutS(), emitFPutSUnlocked(), emitFReadUnlocked(), emitFWrite(), emitFWriteUnlocked(), emitMemChr(), emitMemCmp(), emitMemCpyChk(), emitPutS(), emitSNPrintf(), emitSPrintf(), emitStpCpy(), emitStpNCpy(), emitStrCat(), emitStrChr(), emitStrCpy(), emitStrDup(), emitStrLCat(), emitStrLCpy(), emitStrLen(), emitStrNCat(), emitStrNCmp(), emitStrNCpy(), emitVSNPrintf(), emitVSPrintf(), isReportingError(), and optimizeMemCmpConstantSize().
| bool llvm::CC_AArch64_AAPCS | ( | unsigned | ValNo, |
| MVT | ValVT, | ||
| MVT | LocVT, | ||
| CCValAssign::LocInfo | LocInfo, | ||
| ISD::ArgFlagsTy | ArgFlags, | ||
| CCState & | State | ||
| ) |
| bool llvm::CC_AArch64_DarwinPCS | ( | unsigned | ValNo, |
| MVT | ValVT, | ||
| MVT | LocVT, | ||
| CCValAssign::LocInfo | LocInfo, | ||
| ISD::ArgFlagsTy | ArgFlags, | ||
| CCState & | State | ||
| ) |
Referenced by llvm::AArch64TargetLowering::CCAssignFnForCall(), and getImplicitScaleFactor().
| bool llvm::CC_AArch64_DarwinPCS_ILP32_VarArg | ( | unsigned | ValNo, |
| MVT | ValVT, | ||
| MVT | LocVT, | ||
| CCValAssign::LocInfo | LocInfo, | ||
| ISD::ArgFlagsTy | ArgFlags, | ||
| CCState & | State | ||
| ) |
Referenced by llvm::AArch64TargetLowering::CCAssignFnForCall().
| bool llvm::CC_AArch64_DarwinPCS_VarArg | ( | unsigned | ValNo, |
| MVT | ValVT, | ||
| MVT | LocVT, | ||
| CCValAssign::LocInfo | LocInfo, | ||
| ISD::ArgFlagsTy | ArgFlags, | ||
| CCState & | State | ||
| ) |
Referenced by llvm::AArch64TargetLowering::CCAssignFnForCall().
| bool llvm::CC_AArch64_GHC | ( | unsigned | ValNo, |
| MVT | ValVT, | ||
| MVT | LocVT, | ||
| CCValAssign::LocInfo | LocInfo, | ||
| ISD::ArgFlagsTy | ArgFlags, | ||
| CCState & | State | ||
| ) |
Referenced by llvm::AArch64TargetLowering::CCAssignFnForCall(), and getImplicitScaleFactor().
| bool llvm::CC_AArch64_WebKit_JS | ( | unsigned | ValNo, |
| MVT | ValVT, | ||
| MVT | LocVT, | ||
| CCValAssign::LocInfo | LocInfo, | ||
| ISD::ArgFlagsTy | ArgFlags, | ||
| CCState & | State | ||
| ) |
Referenced by llvm::AArch64TargetLowering::CCAssignFnForCall(), and getImplicitScaleFactor().
| bool llvm::CC_AArch64_Win64_CFGuard_Check | ( | unsigned | ValNo, |
| MVT | ValVT, | ||
| MVT | LocVT, | ||
| CCValAssign::LocInfo | LocInfo, | ||
| ISD::ArgFlagsTy | ArgFlags, | ||
| CCState & | State | ||
| ) |
Referenced by llvm::AArch64TargetLowering::CCAssignFnForCall(), and getImplicitScaleFactor().
| bool llvm::CC_AArch64_Win64_VarArg | ( | unsigned | ValNo, |
| MVT | ValVT, | ||
| MVT | LocVT, | ||
| CCValAssign::LocInfo | LocInfo, | ||
| ISD::ArgFlagsTy | ArgFlags, | ||
| CCState & | State | ||
| ) |
Referenced by llvm::AArch64TargetLowering::CCAssignFnForCall().
| bool llvm::CC_ARM_AAPCS | ( | unsigned | ValNo, |
| MVT | ValVT, | ||
| MVT | LocVT, | ||
| CCValAssign::LocInfo | LocInfo, | ||
| ISD::ArgFlagsTy | ArgFlags, | ||
| CCState & | State | ||
| ) |
Referenced by llvm::ARMTargetLowering::CCAssignFnForReturn(), and getComparePred().
| bool llvm::CC_ARM_AAPCS_VFP | ( | unsigned | ValNo, |
| MVT | ValVT, | ||
| MVT | LocVT, | ||
| CCValAssign::LocInfo | LocInfo, | ||
| ISD::ArgFlagsTy | ArgFlags, | ||
| CCState & | State | ||
| ) |
Referenced by llvm::ARMTargetLowering::CCAssignFnForReturn(), and getComparePred().
| bool llvm::CC_ARM_APCS | ( | unsigned | ValNo, |
| MVT | ValVT, | ||
| MVT | LocVT, | ||
| CCValAssign::LocInfo | LocInfo, | ||
| ISD::ArgFlagsTy | ArgFlags, | ||
| CCState & | State | ||
| ) |
Referenced by llvm::ARMTargetLowering::CCAssignFnForReturn(), and getComparePred().
| bool llvm::CC_ARM_APCS_GHC | ( | unsigned | ValNo, |
| MVT | ValVT, | ||
| MVT | LocVT, | ||
| CCValAssign::LocInfo | LocInfo, | ||
| ISD::ArgFlagsTy | ArgFlags, | ||
| CCState & | State | ||
| ) |
Referenced by llvm::ARMTargetLowering::CCAssignFnForReturn(), and getComparePred().
| bool llvm::CC_ARM_Win32_CFGuard_Check | ( | unsigned | ValNo, |
| MVT | ValVT, | ||
| MVT | LocVT, | ||
| CCValAssign::LocInfo | LocInfo, | ||
| ISD::ArgFlagsTy | ArgFlags, | ||
| CCState & | State | ||
| ) |
Referenced by llvm::ARMTargetLowering::CCAssignFnForReturn(), and getComparePred().
| bool llvm::CC_PPC32_SVR4 | ( | unsigned | ValNo, |
| MVT | ValVT, | ||
| MVT | LocVT, | ||
| CCValAssign::LocInfo | LocInfo, | ||
| ISD::ArgFlagsTy | ArgFlags, | ||
| CCState & | State | ||
| ) |
Referenced by buildCallOperands(), and EnsureStackAlignment().
| bool llvm::CC_PPC32_SVR4_ByVal | ( | unsigned | ValNo, |
| MVT | ValVT, | ||
| MVT | LocVT, | ||
| CCValAssign::LocInfo | LocInfo, | ||
| ISD::ArgFlagsTy | ArgFlags, | ||
| CCState & | State | ||
| ) |
Referenced by buildCallOperands(), and EnsureStackAlignment().
| bool llvm::CC_PPC32_SVR4_VarArg | ( | unsigned | ValNo, |
| MVT | ValVT, | ||
| MVT | LocVT, | ||
| CCValAssign::LocInfo | LocInfo, | ||
| ISD::ArgFlagsTy | ArgFlags, | ||
| CCState & | State | ||
| ) |
Referenced by buildCallOperands().
| bool llvm::CC_PPC64_ELF_FIS | ( | unsigned | ValNo, |
| MVT | ValVT, | ||
| MVT | LocVT, | ||
| CCValAssign::LocInfo | LocInfo, | ||
| ISD::ArgFlagsTy | ArgFlags, | ||
| CCState & | State | ||
| ) |
Referenced by getComparePred().
|
inline |
Definition at line 127 of file SystemZCallingConv.h.
References report_fatal_error().
|
inline |
Definition at line 87 of file SystemZCallingConv.h.
References llvm::CCState::addLoc(), llvm::CCState::AllocateReg(), llvm::CCState::AllocateStack(), llvm::SystemZ::ArgGPRs, llvm::SmallVectorBase::empty(), llvm::CCValAssign::getPending(), llvm::CCState::getPendingLocs(), llvm::MVT::i64, llvm::CCValAssign::Indirect, llvm::ISD::ArgFlagsTy::isSplit(), llvm::ISD::ArgFlagsTy::isSplitEnd(), llvm::SmallVectorTemplateBase< T >::push_back(), and Reg.
| bool llvm::CC_X86 | ( | unsigned | ValNo, |
| MVT | ValVT, | ||
| MVT | LocVT, | ||
| CCValAssign::LocInfo | LocInfo, | ||
| ISD::ArgFlagsTy | ArgFlags, | ||
| CCState & | State | ||
| ) |
|
inline |
center_justify - add spaces before and after string so total output is Width characters.
If Str is larger that Width, full string is written with no padding.
Definition at line 159 of file Format.h.
References llvm::FormattedString::JustifyCenter.
| void llvm::changeToCall | ( | InvokeInst * | II, |
| DomTreeUpdater * | DTU = nullptr |
||
| ) |
This function converts the specified invoek into a normall call.
changeToCall - Convert the specified invoke into a normal call.
Definition at line 1972 of file Local.cpp.
References llvm::DomTreeUpdater::applyUpdatesPermissive(), llvm::BranchInst::Create(), createCallMatchingInvoke(), llvm::DominatorTreeBase< BasicBlock, false >::Delete, llvm::Instruction::eraseFromParent(), llvm::InvokeInst::getNormalDest(), llvm::Instruction::getParent(), llvm::InvokeInst::getUnwindDest(), llvm::Instruction::insertBefore(), llvm::BasicBlock::removePredecessor(), llvm::Value::replaceAllUsesWith(), and llvm::Value::takeName().
Referenced by getKnownAlignment(), markAliveBlocks(), removeUnwindEdge(), and llvm::Attributor::run().
| BasicBlock * llvm::changeToInvokeAndSplitBasicBlock | ( | CallInst * | CI, |
| BasicBlock * | UnwindEdge | ||
| ) |
Convert the CallInst to InvokeInst with the specified unwind edge basic block.
This also splits the basic block where CI is located, because InvokeInst is a terminator instruction. Returns the newly split basic block.
Definition at line 1991 of file Local.cpp.
References llvm::CallBase::arg_begin(), llvm::CallBase::arg_end(), llvm::InvokeInst::Create(), llvm::CallBase::getAttributes(), llvm::CallBase::getCalledValue(), llvm::CallBase::getCallingConv(), llvm::Instruction::getDebugLoc(), llvm::CallBase::getFunctionType(), llvm::BasicBlock::getInstList(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::Value::getName(), llvm::CallBase::getOperandBundlesAsDefs(), llvm::Instruction::getParent(), llvm::iplist_impl< IntrusiveListT, TraitsT >::pop_back(), llvm::iplist_impl< IntrusiveListT, TraitsT >::pop_front(), llvm::Value::replaceAllUsesWith(), llvm::CallBase::setAttributes(), llvm::CallBase::setCallingConv(), llvm::Instruction::setDebugLoc(), and llvm::BasicBlock::splitBasicBlock().
Referenced by getKnownAlignment(), HandleCallsInBlockInlinedThroughInvoke(), and llvm::EscapeEnumerator::Next().
| unsigned llvm::changeToUnreachable | ( | Instruction * | I, |
| bool | UseLLVMTrap, | ||
| bool | PreserveLCSSA = false, |
||
| DomTreeUpdater * | DTU = nullptr, |
||
| MemorySSAUpdater * | MSSAU = nullptr |
||
| ) |
Insert an unreachable instruction before the specified instruction, making it and the rest of the code in the block dead.
Definition at line 1915 of file Local.cpp.
References llvm::DomTreeUpdater::applyUpdatesPermissive(), llvm::MemorySSAUpdater::changeToUnreachable(), llvm::CallInst::Create(), llvm::DominatorTreeBase< BasicBlock, false >::Delete, llvm::BasicBlock::end(), llvm::iplist_impl< IntrusiveListT, TraitsT >::erase(), llvm::UndefValue::get(), llvm::Value::getContext(), llvm::Instruction::getDebugLoc(), llvm::Intrinsic::getDeclaration(), llvm::BasicBlock::getInstList(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::Instruction::getNumSuccessors(), llvm::Instruction::getParent(), llvm::BasicBlock::getParent(), llvm::GlobalValue::getParent(), llvm::BasicBlock::getTerminator(), I, llvm::Instruction::setDebugLoc(), Successor, and successors().
Referenced by llvm::coro::Shape::buildFrom(), DeleteBasicBlock(), getKnownAlignment(), InlineFunction(), markAliveBlocks(), replaceSwiftErrorOps(), llvm::Attributor::run(), runIPSCCP(), and simplifyOneLoop().
| bool llvm::CheckBitcodeOutputToConsole | ( | raw_ostream & | stream_to_check, |
| bool | print_warning = true |
||
| ) |
Determine if the raw_ostream provided is connected to a terminal.
If so, generate a warning message to errs() advising against display of bitcode and return true. Otherwise just return false. Check for output written to a console
| stream_to_check | The stream to be checked |
| print_warning | Control whether warnings are printed |
Definition at line 18 of file SystemUtils.cpp.
References errs(), and llvm::raw_ostream::is_displayed().
| std::enable_if<std::is_signed<T>::value, llvm::Optional<T> >::type llvm::checkedAdd | ( | T | LHS, |
| T | RHS | ||
| ) |
Add two signed integers LHS and RHS.
None otherwise. Definition at line 48 of file CheckedArithmetic.h.
References llvm::APInt::sadd_ov().
Referenced by checkedMulAdd(), and llvm::InterleaveGroup< llvm::Instruction >::insertMember().
| std::enable_if<std::is_unsigned<T>::value, llvm::Optional<T> >::type llvm::checkedAddUnsigned | ( | T | LHS, |
| T | RHS | ||
| ) |
Add two unsigned integers LHS and RHS.
None otherwise. Definition at line 86 of file CheckedArithmetic.h.
References llvm::APInt::uadd_ov().
Referenced by checkedMulAddUnsigned().
| std::enable_if<std::is_signed<T>::value, llvm::Optional<T> >::type llvm::checkedMul | ( | T | LHS, |
| T | RHS | ||
| ) |
Multiply two signed integers LHS and RHS.
None otherwise. Definition at line 66 of file CheckedArithmetic.h.
References llvm::APInt::smul_ov().
Referenced by checkedMulAdd().
| std::enable_if<std::is_signed<T>::value, llvm::Optional<T> >::type llvm::checkedMulAdd | ( | T | A, |
| T | B, | ||
| T | C | ||
| ) |
Multiply A and B, and add C to the resulting product.
None otherwise. Definition at line 75 of file CheckedArithmetic.h.
References checkedAdd(), checkedMul(), and None.
| std::enable_if<std::is_unsigned<T>::value, llvm::Optional<T> >::type llvm::checkedMulAddUnsigned | ( | T | A, |
| T | B, | ||
| T | C | ||
| ) |
Multiply unsigned integers A and B, and add C to the resulting product.
None otherwise. Definition at line 104 of file CheckedArithmetic.h.
References checkedAddUnsigned(), checkedMulUnsigned(), and None.
| std::enable_if<std::is_unsigned<T>::value, llvm::Optional<T> >::type llvm::checkedMulUnsigned | ( | T | LHS, |
| T | RHS | ||
| ) |
Multiply two unsigned integers LHS and RHS.
None otherwise. Definition at line 95 of file CheckedArithmetic.h.
References llvm::APInt::umul_ov().
Referenced by checkedMulAddUnsigned().
| std::enable_if<std::is_signed<T>::value, llvm::Optional<T> >::type llvm::checkedSub | ( | T | LHS, |
| T | RHS | ||
| ) |
Subtract two signed integers LHS and RHS.
None otherwise. Definition at line 57 of file CheckedArithmetic.h.
References llvm::APInt::ssub_ov().
Referenced by llvm::InterleaveGroup< llvm::Instruction >::insertMember().
| void llvm::checkForCycles | ( | const SDNode * | N, |
| const SelectionDAG * | DAG = nullptr, |
||
| bool | force = false |
||
| ) |
Definition at line 9766 of file SelectionDAG.cpp.
References assert(), and checkForCyclesHelper().
| void llvm::checkForCycles | ( | const SelectionDAG * | DAG, |
| bool | force = false |
||
| ) |
Definition at line 9783 of file SelectionDAG.cpp.
References llvm::SDValue::getNode(), and llvm::SelectionDAG::getRoot().
Referenced by llvm::SelectionDAG::AssignTopologicalOrder(), llvm::SDDbgInfo::DbgLabelEnd(), llvm::SelectionDAG::isConstantFPBuildVectorOrConstantFP(), and llvm::SelectionDAG::setRoot().
Definition at line 884 of file Instructions.h.
References assert().
Referenced by llvm::ExtractValueInst::classof(), and llvm::GetElementPtrInst::getGEPReturnType().
| iterator_range<typename GraphTraits<GraphType>::ChildIteratorType> llvm::children | ( | const typename GraphTraits< GraphType >::NodeRef & | G | ) |
Definition at line 121 of file GraphTraits.h.
References make_range().
Referenced by llvm::RegionBase< RegionTraits< Function > >::addSubRegion(), llvm::LoopInfoBase< BasicBlock, Loop >::analyze(), llvm::DWARFDie::collectChildrenAddressRanges(), llvm::DIE::computeOffsetsAndAbbrevs(), discoverAndMapSubloop(), llvm::LoopBase< BasicBlock, Loop >::getLoopLatch(), llvm::LoopBase< BasicBlock, Loop >::getLoopLatches(), llvm::LoopBase< BasicBlock, Loop >::getLoopPredecessor(), llvm::LoopBase< BasicBlock, Loop >::getNumBackEdges(), llvm::LoopBase< BasicBlock, Loop >::hasDedicatedExits(), llvm::DIE::print(), llvm::RegionBase< RegionTraits< Function > >::removeSubRegion(), llvm::DominatorTreeBase< BasicBlock, IsPostDom >::Split(), and llvm::RegionBase< RegionTraits< Function > >::transferChildrenTo().
| iterator_range<typename GraphTraits<GraphType>::ChildEdgeIteratorType> llvm::children_edges | ( | const typename GraphTraits< GraphType >::NodeRef & | G | ) |
Definition at line 135 of file GraphTraits.h.
References make_range().
| EHPersonality llvm::classifyEHPersonality | ( | const Value * | Pers | ) |
See if the given exception handling personality function is one that we understand.
If so, return a description of it; otherwise return Unknown.
Definition at line 21 of file EHPersonalities.cpp.
References llvm::StringSwitch< T, R >::Case(), CoreCLR, llvm::StringSwitch< T, R >::Default(), dyn_cast(), F(), llvm::Value::getName(), GNU_Ada, GNU_C, GNU_C_SjLj, GNU_CXX, GNU_CXX_SjLj, GNU_ObjC, MSVC_CXX, MSVC_Win64SEH, MSVC_X86SEH, Rust, llvm::Value::stripPointerCasts(), Unknown, and Wasm_CXX.
Referenced by llvm::DwarfCFIException::beginFunction(), llvm::WinException::beginFunction(), llvm::CodeViewDebug::beginFunctionImpl(), canSimplifyInvokeNoUnwind(), llvm::LoopSafetyInfo::computeBlockColors(), createCallInst(), createDwarfEHPass(), createObjCARCOptPass(), createPHIsForCMOVsInSinkBB(), llvm::AArch64TargetLowering::EmitLoweredCatchRet(), llvm::X86FrameLowering::emitPrologue(), llvm::WinException::endFunclet(), llvm::ARMException::endFunction(), llvm::WinException::endFunction(), findUnwindDestinations(), getEHScopeMembership(), llvm::X86TargetLowering::getExceptionPointerRegister(), llvm::X86TargetLowering::getExceptionSelectorRegister(), getMOVL(), getSEHRegistrationNodeSize(), llvm::SelectionDAGBuilder::getValueImpl(), INITIALIZE_PASS(), InlineFunction(), isFuncletReturnInstr(), IsInterestingCmp(), isSortedByValueNo(), isUsingScopeBasedEH(), llvm::SelectionDAGBuilder::lowerInvokable(), llvm::MachineFunction::MachineFunction(), mapWasmLandingPadIndex(), matchPair(), mergeCleanupPad(), needFuncLabelsForEHOrDebugInfo(), llvm::EscapeEnumerator::Next(), llvm::X86FrameLowering::processFunctionBeforeFrameFinalized(), llvm::X86FrameLowering::restoreCalleeSavedRegisters(), llvm::StackProtector::runOnFunction(), llvm::FunctionLoweringInfo::set(), llvm::X86FrameLowering::spillCalleeSavedRegisters(), and llvm::InstCombiner::visitLandingPadInst().
Definition at line 41 of file NVPTXUtilities.cpp.
Referenced by llvm::NVPTXAsmPrinter::doFinalization().
|
inline |
Definition at line 176 of file AliasAnalysis.h.
References Ref.
Referenced by llvm::AliasSetTracker::add(), and llvm::AAResults::getModRefInfo().
|
inline |
Definition at line 182 of file AliasAnalysis.h.
References NoModRef.
Referenced by llvm::AAResults::callCapturesBefore(), llvm::BasicAAResult::getModRefInfo(), llvm::AAResults::getModRefInfo(), and llvm::MemoryDependenceResults::getSimplePointerDependencyFrom().
|
inline |
Definition at line 179 of file AliasAnalysis.h.
References Mod.
Referenced by llvm::AAResults::getModRefInfo().
| void llvm::CloneAndPruneFunctionInto | ( | Function * | NewFunc, |
| const Function * | OldFunc, | ||
| ValueToValueMapTy & | VMap, | ||
| bool | ModuleLevelChanges, | ||
| SmallVectorImpl< ReturnInst *> & | Returns, | ||
| const char * | NameSuffix = "", |
||
| ClonedCodeInfo * | CodeInfo = nullptr, |
||
| Instruction * | TheCall = nullptr |
||
| ) |
This works exactly like CloneFunctionInto, except that it does some simple constant prop and DCE on the fly.
The effect of this is to copy significantly less code in cases where (for example) a function call with constant arguments is inlined, and those constant arguments cause a significant amount of code in the callee to be dead. Since this doesn't produce an exactly copy of the input, it can't be used for things like CloneFunction or CloneModule.
If ModuleLevelChanges is false, VMap contains no non-identity GlobalValue mappings.
The effect of this is to copy significantly less code in cases where (for example) a function call with constant arguments is inlined, and those constant arguments cause a significant amount of code in the callee to be dead. Since this doesn't produce an exact copy of the input, it can't be used for things like CloneFunction or CloneModule.
Definition at line 726 of file CloneFunction.cpp.
References CloneAndPruneIntoFromInst(), llvm::BasicBlock::front(), and llvm::Function::front().
Referenced by InlineFunction().
| void llvm::CloneAndPruneIntoFromInst | ( | Function * | NewFunc, |
| const Function * | OldFunc, | ||
| const Instruction * | StartingInst, | ||
| ValueToValueMapTy & | VMap, | ||
| bool | ModuleLevelChanges, | ||
| SmallVectorImpl< ReturnInst *> & | Returns, | ||
| const char * | NameSuffix = "", |
||
| ClonedCodeInfo * | CodeInfo = nullptr |
||
| ) |
This works like CloneAndPruneFunctionInto, except that it does not clone the entire function.
Instead it starts at an instruction provided by the caller and copies (and prunes) only the code reachable from that instruction.
Definition at line 448 of file CloneFunction.cpp.
References llvm::Function::args(), assert(), llvm::BasicBlock::back(), llvm::BasicBlock::begin(), ConstantFoldTerminator(), llvm::ValueMap< KeyT, ValueT, Config >::count(), DeleteDeadBlock(), dyn_cast(), llvm::numbers::e, E, llvm::Function::end(), llvm::Instruction::eraseFromParent(), llvm::BasicBlock::eraseFromParent(), llvm::BasicBlock::front(), llvm::UndefValue::get(), llvm::Function::getBasicBlockList(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::getCalledFunction(), llvm::Module::getDataLayout(), llvm::Function::getEntryBlock(), llvm::PHINode::getIncomingBlock(), llvm::PHINode::getIncomingValue(), llvm::BasicBlock::getInstList(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::PHINode::getNumIncomingValues(), llvm::Instruction::getParent(), llvm::GlobalValue::getParent(), llvm::BasicBlock::getSinglePredecessor(), llvm::BranchInst::getSuccessor(), llvm::BasicBlock::getTerminator(), llvm::Value::getType(), I, llvm::SetVector< T, SmallVector< T, N >, SmallDenseSet< T, N > >::insert(), llvm::BranchInst::isConditional(), isInstructionTriviallyDead(), llvm::Function::isIntrinsic(), llvm::ValueMap< KeyT, ValueT, Config >::lookup(), MapValue(), pred, pred_begin(), pred_end(), pred_size(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::iplist_impl< IntrusiveListT, TraitsT >::push_back(), RemapInstruction(), llvm::PHINode::removeIncomingValue(), llvm::Value::replaceAllUsesWith(), RF_NoModuleLevelChanges, RF_None, llvm::PHINode::setIncomingBlock(), llvm::PHINode::setIncomingValue(), SimplifyInstruction(), Size, llvm::SmallVectorBase::size(), llvm::SetVector< T, SmallVector< T, N >, SmallDenseSet< T, N > >::size(), and llvm::Value::users().
Referenced by CloneAndPruneFunctionInto().
| BasicBlock * llvm::CloneBasicBlock | ( | const BasicBlock * | BB, |
| ValueToValueMapTy & | VMap, | ||
| const Twine & | NameSuffix = "", |
||
| Function * | F = nullptr, |
||
| ClonedCodeInfo * | CodeInfo = nullptr, |
||
| DebugInfoFinder * | DIFinder = nullptr |
||
| ) |
Return a copy of the specified basic block, but without embedding the block into a particular function.
See comments in Cloning.h.
The block returned is an exact copy of the specified basic block, without any remapping having been performed. Because of this, this is only suitable for applications where the basic block will be inserted into the same function that it was cloned from (loop unrolling would use this, for example).
Also, note that this function makes a direct copy of the basic block, and can thus produce illegal LLVM code. In particular, it will copy any PHI nodes from the original block, even though there are no predecessors for the newly cloned block (thus, phi nodes will have to be updated). Also, this block will branch to the old successors of the original block: these successors will have to have any PHI nodes updated to account for the new incoming edges.
The correlation between instructions in the source and result basic blocks is recorded in the VMap map.
If you have a particular suffix you'd like to use to add to any cloned names, specify it as the optional third parameter.
If you would like the basic block to be auto-inserted into the end of a function, you can specify it as the optional fourth parameter.
If you would like to collect additional information about the cloned function, you can specify a ClonedCodeInfo object with the optional fifth parameter.
Definition at line 40 of file CloneFunction.cpp.
References llvm::ClonedCodeInfo::ContainsCalls, llvm::ClonedCodeInfo::ContainsDynamicAllocas, llvm::BasicBlock::Create(), F(), llvm::BasicBlock::getContext(), llvm::BasicBlock::getInstList(), llvm::Value::getName(), llvm::GlobalValue::getParent(), llvm::Value::hasName(), I, llvm::DebugInfoFinder::processInstruction(), llvm::iplist_impl< IntrusiveListT, TraitsT >::push_back(), and llvm::Value::setName().
Referenced by assertBranchOrSelectConditionHoisted(), buildClonedLoopBlocks(), CloneFunctionInto(), CloneLoopBlocks(), cloneLoopBlocks(), cloneLoopWithPreheader(), SplitIndirectBrCriticalEdges(), UnrollAndJamLoop(), and UnrollLoop().
| Function * llvm::CloneFunction | ( | Function * | F, |
| ValueToValueMapTy & | VMap, | ||
| ClonedCodeInfo * | CodeInfo = nullptr |
||
| ) |
Return a copy of the specified function and add it to that function's module.
Also, any references specified in the VMap are changed to refer to their mapped value instead of the original one. If any of the arguments to the function are in the VMap, the arguments are deleted from the resultant function. The VMap is updated to include mappings from all of the instructions and basicblocks in the function from their old to new values. The final argument captures information about the cloned code if non-null.
VMap contains no non-identity GlobalValue mappings and debug info metadata will not be cloned.
Also, any references specified in the VMap are changed to refer to their mapped value instead of the original one. If any of the arguments to the function are in the VMap, the arguments are deleted from the resultant function. The VMap is updated to include mappings from all of the instructions and basicblocks in the function from their old to new values.
Definition at line 237 of file CloneFunction.cpp.
References llvm::Function::args(), llvm::Instruction::clone(), CloneFunctionInto(), llvm::ValueMap< KeyT, ValueT, Config >::count(), llvm::BasicBlock::Create(), llvm::Function::Create(), llvm::Value::deleteValue(), llvm::BasicBlock::end(), llvm::FunctionType::get(), llvm::BlockAddress::get(), llvm::GlobalValue::getAddressSpace(), llvm::BasicBlock::getContext(), llvm::Module::getDataLayout(), llvm::Function::getFunctionType(), llvm::BasicBlock::getInstList(), llvm::GlobalValue::getLinkage(), llvm::BasicBlock::getModule(), llvm::Value::getName(), llvm::GlobalValue::getParent(), llvm::FunctionType::getReturnType(), llvm::Function::getSubprogram(), llvm::BasicBlock::getTerminator(), llvm::BasicBlock::hasAddressTaken(), llvm::Value::hasName(), I, llvm::ARM_PROC::IE, llvm::FunctionType::isVarArg(), llvm::Instruction::mayHaveSideEffects(), llvm::iplist_impl< IntrusiveListT, TraitsT >::push_back(), RemapInstruction(), RF_NoModuleLevelChanges, RF_None, llvm::Value::setName(), and SimplifyInstruction().
Referenced by hasProfileData(), and replaceAliasWithAliasee().
| void llvm::CloneFunctionInto | ( | Function * | NewFunc, |
| const Function * | OldFunc, | ||
| ValueToValueMapTy & | VMap, | ||
| bool | ModuleLevelChanges, | ||
| SmallVectorImpl< ReturnInst *> & | Returns, | ||
| const char * | NameSuffix = "", |
||
| ClonedCodeInfo * | CodeInfo = nullptr, |
||
| ValueMapTypeRemapper * | TypeMapper = nullptr, |
||
| ValueMaterializer * | Materializer = nullptr |
||
| ) |
Clone OldFunc into NewFunc, transforming the old arguments into references to VMap values.
Note that if NewFunc already has basic blocks, the ones cloned into it will be added to the end of the function. This function fills in a list of return instructions, and can optionally remap types and/or append the specified suffix to all values cloned.
If ModuleLevelChanges is false, VMap contains no non-identity GlobalValue mappings.
Definition at line 84 of file CloneFunction.cpp.
References llvm::GlobalObject::addMetadata(), llvm::Function::arg_size(), llvm::Function::args(), assert(), llvm::Function::begin(), CloneBasicBlock(), llvm::DebugInfoFinder::compile_unit_count(), llvm::DebugInfoFinder::compile_units(), llvm::Function::copyAttributesFrom(), llvm::ValueMap< KeyT, ValueT, Config >::count(), llvm::Function::end(), llvm::Function::front(), llvm::AttributeList::get(), llvm::BlockAddress::get(), llvm::GlobalObject::getAllMetadata(), llvm::Function::getAttributes(), llvm::Function::getContext(), llvm::DIScope::getFile(), llvm::Module::getOrInsertNamedMetadata(), llvm::GlobalValue::getParent(), llvm::Function::getPersonalityFn(), llvm::Function::getSubprogram(), llvm::BasicBlock::getTerminator(), llvm::BasicBlock::hasAddressTaken(), llvm::Function::hasPersonalityFn(), I, llvm::SmallPtrSetImpl< PtrType >::insert(), MapMetadata(), MapValue(), llvm::ValueMap< KeyT, ValueT, Config >::MD(), llvm::SmallVectorTemplateBase< T >::push_back(), RemapInstruction(), RF_NoModuleLevelChanges, RF_None, llvm::Function::setAttributes(), llvm::Function::setPersonalityFn(), llvm::DebugInfoFinder::subprograms(), and llvm::DebugInfoFinder::types().
Referenced by CloneFunction(), CloneModule(), llvm::orc::moveFunctionBody(), PushArgMD(), and replaceSwiftErrorOps().
| Loop * llvm::cloneLoopWithPreheader | ( | BasicBlock * | Before, |
| BasicBlock * | LoopDomBB, | ||
| Loop * | OrigLoop, | ||
| ValueToValueMapTy & | VMap, | ||
| const Twine & | NameSuffix, | ||
| LoopInfo * | LI, | ||
| DominatorTree * | DT, | ||
| SmallVectorImpl< BasicBlock *> & | Blocks | ||
| ) |
Clones a loop OrigLoop.
Returns the loop and the blocks in Blocks.
Updates LoopInfo and DominatorTree assuming the loop is dominated by block LoopDomBB. Insert the new blocks before block specified in Before. Note: Only innermost loops are supported.
Returns the loop and the blocks in Blocks.
Updates LoopInfo and DominatorTree assuming the loop is dominated by block LoopDomBB. Insert the new blocks before block specified in Before.
Definition at line 752 of file CloneFunction.cpp.
References llvm::LoopBase< BlockT, LoopT >::addBasicBlockToLoop(), llvm::LoopBase< BlockT, LoopT >::addChildLoop(), llvm::DominatorTreeBase< NodeT, IsPostDom >::addNewBlock(), llvm::LoopInfoBase< BlockT, LoopT >::addTopLevelLoop(), llvm::LoopInfoBase< BlockT, LoopT >::AllocateLoop(), assert(), llvm::DominatorTreeBase< NodeT, IsPostDom >::changeImmediateDominator(), CloneBasicBlock(), llvm::Function::end(), F(), llvm::Function::getBasicBlockList(), llvm::DomTreeNodeBase< NodeT >::getBlock(), llvm::LoopBase< BlockT, LoopT >::getBlocks(), llvm::LoopBase< BlockT, LoopT >::getHeader(), llvm::DomTreeNodeBase< NodeT >::getIDom(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::LoopInfoBase< BlockT, LoopT >::getLoopFor(), llvm::LoopBase< BlockT, LoopT >::getLoopPreheader(), llvm::LoopBase< BlockT, LoopT >::getLoopsInPreorder(), llvm::DominatorTreeBase< NodeT, IsPostDom >::getNode(), llvm::BasicBlock::getParent(), llvm::LoopBase< BlockT, LoopT >::getParentLoop(), llvm::LoopBase< BlockT, LoopT >::moveToHeader(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::iplist_impl< IntrusiveListT, TraitsT >::splice().
Referenced by llvm::InlineFunctionInfo::reset(), and llvm::LoopVersioning::versionLoop().
Return an exact copy of the specified module.
This is not as easy as it might seem because we have to worry about making copies of global variables and functions, and making their (initializers and references, respectively) refer to the right globals.
Definition at line 34 of file CloneModule.cpp.
Referenced by CloneModule(), llvm::orc::cloneToNewContext(), LLVMCloneModule(), and SplitModule().
| std::unique_ptr< Module > llvm::CloneModule | ( | const Module & | M, |
| ValueToValueMapTy & | VMap | ||
| ) |
Definition at line 41 of file CloneModule.cpp.
References CloneModule().
| std::unique_ptr< Module > llvm::CloneModule | ( | const Module & | M, |
| ValueToValueMapTy & | VMap, | ||
| function_ref< bool(const GlobalValue *)> | ShouldCloneDefinition | ||
| ) |
Return a copy of the specified module.
The ShouldCloneDefinition function controls whether a specific GlobalValue's definition is cloned. If the function returns false, the module copy will contain an external reference in place of the global definition.
Definition at line 46 of file CloneModule.cpp.
References llvm::GlobalObject::addMetadata(), llvm::NamedMDNode::addOperand(), llvm::Function::arg_begin(), C, CloneFunctionInto(), llvm::GlobalIndirectSymbol::copyAttributesFrom(), llvm::GlobalVariable::copyAttributesFrom(), llvm::Function::copyAttributesFrom(), copyComdat(), llvm::GlobalAlias::create(), llvm::Function::Create(), llvm::numbers::e, E, llvm::GlobalValue::ExternalLinkage, F(), llvm::Module::getContext(), llvm::Module::getDataLayout(), llvm::Module::getModuleIdentifier(), llvm::Module::getModuleInlineAsm(), llvm::NamedMDNode::getName(), llvm::NamedMDNode::getNumOperands(), llvm::NamedMDNode::getOperand(), llvm::Module::getSourceFileName(), llvm::Module::getTargetTriple(), llvm::Module::global_begin(), llvm::Module::global_end(), I, llvm::SmallPtrSetImpl< PtrType >::insert(), MapMetadata(), MapValue(), llvm::NamedMDNode::operands(), RF_MoveDistinctMDs, llvm::GlobalAlias::setAliasee(), llvm::GlobalVariable::setInitializer(), llvm::GlobalValue::setLinkage(), llvm::Value::setName(), and llvm::Function::setPersonalityFn().
| SmallVector< DomTreeNode *, 16 > llvm::collectChildrenInLoop | ( | DomTreeNode * | N, |
| const Loop * | CurLoop | ||
| ) |
Does a BFS from a given node to all of its children inside a given loop.
The returned vector of nodes includes the starting point.
Definition at line 488 of file LoopUtils.cpp.
References llvm::LoopBase< BlockT, LoopT >::contains(), I, llvm::SmallVectorTemplateBase< T >::push_back(), and llvm::SmallVectorBase::size().
Referenced by sinkRegion().
| void llvm::collectCmpOps | ( | CmpInst * | Comparison, |
| SmallVectorImpl< Value *> & | CmpOperands | ||
| ) |
Definition at line 324 of file PredicateInfo.cpp.
References llvm::User::getOperand(), llvm::PatternMatch::m_c_And(), llvm::PatternMatch::m_Cmp(), llvm::PatternMatch::m_Value(), llvm::PatternMatch::match(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::SmallVectorTemplateBase< T >::push_back().
| Error llvm::collectPGOFuncNameStrings | ( | ArrayRef< std::string > | NameStrs, |
| bool | doCompression, | ||
| std::string & | Result | ||
| ) |
Given a vector of strings (function PGO names) NameStrs, the method generates a combined string Result thatis ready to be serialized.
The Result string is comprised of three fields: The first field is the legnth of the uncompressed strings, and the the second field is the length of the zlib-compressed string. Both fields are encoded in ULEB128. If doCompress is false, the third field is the uncompressed strings; otherwise it is the compressed string. When the string compression is off, the second field will have value zero.
Definition at line 378 of file InstrProf.cpp.
References assert(), llvm::ArrayRef< T >::begin(), llvm::zlib::BestSizeCompression, llvm::zlib::compress(), compress_failed, consumeError(), count(), E, llvm::ArrayRef< T >::empty(), encodeULEB128(), llvm::ArrayRef< T >::end(), getInstrProfNameSeparator(), join(), P, llvm::SmallVectorBase::size(), llvm::ArrayRef< T >::size(), and llvm::Error::success().
Referenced by collectPGOFuncNameStrings(), getInstrProfNameSeparator(), and needsRuntimeRegistrationOfSectionRange().
| Error llvm::collectPGOFuncNameStrings | ( | ArrayRef< GlobalVariable *> | NameVars, |
| std::string & | Result, | ||
| bool | doCompression = true |
||
| ) |
Produce Result string with the same format described above.
The input is vector of PGO function name variables that are referenced.
Definition at line 426 of file InstrProf.cpp.
References collectPGOFuncNameStrings(), getPGOFuncNameVarInitializer(), and llvm::zlib::isAvailable().
| GlobalVariable * llvm::collectUsedGlobalVariables | ( | const Module & | M, |
| SmallPtrSetImpl< GlobalValue *> & | Set, | ||
| bool | CompilerUsed | ||
| ) |
Given "llvm.used" or "llvm.compiler.used" as a global name, collect the initializer elements of that global in Set and return the global itself.
Definition at line 614 of file Module.cpp.
References G, llvm::Module::getGlobalVariable(), llvm::GlobalVariable::getInitializer(), llvm::GlobalVariable::hasInitializer(), llvm::SmallPtrSetImpl< PtrType >::insert(), and llvm::User::operands().
Referenced by buildModuleSummaryIndex(), llvm::Module::debug_compile_units(), EmbedBitcodeInModule(), llvm::FunctionImportGlobalProcessing::FunctionImportGlobalProcessing(), llvm::InternalizePass::internalizeModule(), and setUsedInitializer().
| DenseMap< BasicBlock *, ColorVector > llvm::colorEHFunclets | ( | Function & | F | ) |
If an EH funclet personality is in use (see isFuncletEHPersonality), this will recompute which blocks are in which funclet.
It is possible that some blocks are in multiple funclets. Consider this analysis to be expensive.
Definition at line 77 of file EHPersonalities.cpp.
References dbgs(), DEBUG_WITH_TYPE, llvm::SmallVectorBase::empty(), llvm::Function::getEntryBlock(), llvm::BasicBlock::getFirstNonPHI(), llvm::Value::getName(), getParent(), llvm::BasicBlock::getTerminator(), is_contained(), llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::TinyPtrVector< EltTy >::push_back(), successors(), and llvm::MCID::Terminator.
Referenced by calculateStateNumbersForInvokes(), llvm::LoopSafetyInfo::computeBlockColors(), createCallInst(), createObjCARCOptPass(), and getSuccState().
|
static |
Definition at line 244 of file GVNHoist.cpp.
References combineMetadata().
|
static |
Definition at line 506 of file APFloat.cpp.
References lfExactlyHalf, lfExactlyZero, lfLessThanHalf, and lfMoreThanHalf.
Referenced by llvm::detail::IEEEFloat::compareAbsoluteValue(), and llvm::detail::IEEEFloat::~IEEEFloat().
| void llvm::combineMetadata | ( | Instruction * | K, |
| const Instruction * | J, | ||
| ArrayRef< unsigned > | KnownIDs, | ||
| bool | DoesKMove | ||
| ) |
Combine the metadata of two instructions so that K can replace J.
Some metadata kinds can only be kept if K does not move, meaning it dominated J in the original IR.
Metadata not listed as known via KnownIDs is removed
Definition at line 2299 of file Local.cpp.
References llvm::Instruction::dropUnknownNonDebugMetadata(), llvm::Instruction::getAllMetadataOtherThanDebugLoc(), llvm::Instruction::getMetadata(), llvm::MDNode::getMostGenericAliasScope(), llvm::MDNode::getMostGenericAlignmentOrDereferenceable(), llvm::MDNode::getMostGenericFPMath(), llvm::MDNode::getMostGenericRange(), llvm::MDNode::getMostGenericTBAA(), llvm::MDNode::intersect(), intersectAccessGroups(), llvm_unreachable, and llvm::Instruction::setMetadata().
Referenced by combineKnownMetadata(), combineMetadataForCSE(), getKnownAlignment(), HoistThenElseCodeToIf(), isSafeAndProfitableToSinkLoad(), moveUp(), and patchReplacementInstruction().
| void llvm::combineMetadataForCSE | ( | Instruction * | K, |
| const Instruction * | J, | ||
| bool | DoesKMove | ||
| ) |
Combine the metadata of two instructions so that K can replace J.
This specifically handles the case of CSE-like transformations. Some metadata can only be kept if K dominates J. For this to be correct, K cannot be hoisted.
Unknown metadata is removed.
Definition at line 2380 of file Local.cpp.
References combineMetadata().
Referenced by llvm::GVNExpression::Expression::dump(), getKnownAlignment(), llvm::JumpThreadingPass::SimplifyPartiallyRedundantLoad(), sinkLastInstruction(), and llvm::InstCombiner::visitLoadInst().
Returns the alignment that satisfies both alignments.
Same semantic as MinAlign.
Definition at line 215 of file Alignment.h.
Referenced by commonAlignment(), llvm::MachineFrameInfo::CreateFixedObject(), llvm::MachineFrameInfo::CreateFixedSpillStackObject(), findCommonAlignment(), getAdjustedAlignment(), getTypePartition(), llvm::GISelKnownBits::inferAlignmentForFrameIdx(), llvm::SITargetLowering::LowerCall(), splitMergedValStore(), and llvm::sroa::AllocaSliceRewriter::visit().
Returns the alignment that satisfies both alignments.
Same semantic as MinAlign.
Definition at line 219 of file Alignment.h.
References llvm::Align::Align(), MinAlign(), and llvm::Align::value().
|
inline |
Returns the alignment that satisfies both alignments.
Same semantic as MinAlign.
Definition at line 225 of file Alignment.h.
References B, and commonAlignment().
|
inline |
Returns the alignment that satisfies both alignments.
Same semantic as MinAlign.
Definition at line 231 of file Alignment.h.
References llvm::Align::MaybeAlign, and MinAlign().
|
static |
Definition at line 639 of file LoopInfoImpl.h.
References all_of(), assert(), llvm::SmallPtrSetImpl< PtrType >::begin(), compareVectors(), llvm::SmallPtrSetImpl< PtrType >::count(), llvm::SmallPtrSetImpl< PtrType >::end(), llvm::DenseMapBase< DenseMap< KeyT, ValueT, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::erase(), H, llvm::DenseMapBase< DenseMap< KeyT, ValueT, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::lookup(), and llvm::SmallPtrSetImplBase::size().
Referenced by llvm::LoopInfoBase< BasicBlock, Loop >::verify().
|
inlinestatic |
Definition at line 29 of file ASanStackFrameLayout.cpp.
References llvm::ASanStackVariableDescription::Alignment.
Referenced by ComputeASanStackFrameLayout().
|
static |
Definition at line 447 of file RuntimeDyld.cpp.
Referenced by llvm::RuntimeDyldImpl::computeTotalAllocSize().
| void llvm::computeAndAddLiveIns | ( | LivePhysRegs & | LiveRegs, |
| MachineBasicBlock & | MBB | ||
| ) |
Convenience function combining computeLiveIns() and addLiveIns().
Definition at line 322 of file LivePhysRegs.cpp.
References llvm::LivePhysRegs::addLiveIns(), and computeLiveIns().
Referenced by addExclusiveRegPair(), ComputeCommonTailLength(), for(), makeImplicit(), operator<<(), and recomputeLiveIns().
Definition at line 520 of file ArchiveWriter.cpp.
References llvm::sys::path::append(), llvm::sys::path::begin(), canonicalizePath(), llvm::sys::path::convert_to_slash(), llvm::sys::path::end(), errorCodeToError(), llvm::sys::path::parent_path(), llvm::sys::path::posix, llvm::sys::path::root_name(), and llvm::SmallString< InternalLen >::str().
| SmallString< 64 > llvm::ComputeASanStackFrameDescription | ( | const SmallVectorImpl< ASanStackVariableDescription > & | Vars | ) |
Definition at line 97 of file ASanStackFrameLayout.cpp.
References Name, llvm::SmallVectorBase::size(), llvm::raw_svector_ostream::str(), and to_string().
| ASanStackFrameLayout llvm::ComputeASanStackFrameLayout | ( | SmallVectorImpl< ASanStackVariableDescription > & | Vars, |
| size_t | Granularity, | ||
| size_t | MinHeaderSize | ||
| ) |
Definition at line 54 of file ASanStackFrameLayout.cpp.
References assert(), CompareVars(), llvm::ASanStackFrameLayout::FrameAlignment, llvm::ASanStackFrameLayout::FrameSize, llvm::ASanStackFrameLayout::Granularity, max(), llvm::SmallVectorBase::Size, Size, llvm::SmallVectorBase::size(), stable_sort(), and VarAndRedzoneSize().
| uint64_t llvm::computeBundlePadding | ( | const MCAssembler & | Assembler, |
| const MCEncodedFragment * | F, | ||
| uint64_t | FOffset, | ||
| uint64_t | FSize | ||
| ) |
Compute the amount of padding required before the fragment F to obey bundling restrictions, where FOffset is the fragment's offset in its section and FSize is the fragment's size.
Definition at line 190 of file MCFragment.cpp.
References llvm::MCEncodedFragment::alignToBundleEnd(), assert(), llvm::ilist_alloc_traits< NodeTy >::deleteNode(), llvm::MCFragment::destroy(), and llvm::MCAssembler::getBundleAlignSize().
Referenced by llvm::MCAssembler::addFileName(), llvm::MCAsmLayout::layoutFragment(), and llvm::MCELFStreamer::MCELFStreamer().
| ConstantRange llvm::computeConstantRange | ( | const Value * | V, |
| bool | UseInstrInfo = true |
||
| ) |
Determine the possible constant range of an integer or vector of integer value.
This is intended as a cheap, non-recursive check.
Definition at line 5864 of file ValueTracking.cpp.
References assert(), C, getConstantRangeFromMetadata(), llvm::InstrInfoQuery::getMetadata(), llvm::ConstantRange::getNonEmpty(), llvm::Type::getScalarSizeInBits(), llvm::Value::getType(), llvm::ConstantRange::intersectWith(), llvm::Type::isIntOrIntVectorTy(), llvm::PatternMatch::m_APInt(), llvm::PatternMatch::match(), setLimitsForBinOp(), setLimitsForIntrinsic(), setLimitsForSelectPattern(), SI, and Upper.
Referenced by computeConstantRangeIncludingKnownBits(), and simplifyICmpWithConstant().
| void llvm::ComputeCrossModuleImport | ( | const ModuleSummaryIndex & | Index, |
| const StringMap< GVSummaryMapTy > & | ModuleToDefinedGVSummaries, | ||
| StringMap< FunctionImporter::ImportMapTy > & | ImportLists, | ||
| StringMap< FunctionImporter::ExportSetTy > & | ExportLists | ||
| ) |
Compute all the imports and exports for every module in the Index.
Compute all the import and export for every module using the Index.
ModuleToDefinedGVSummaries contains for each Module a map (GUID -> Summary) for every global defined in the module.
ImportLists will be populated with an entry for every Module we are importing into. This entry is itself a map that can be passed to FunctionImporter::importFunctions() above (see description there).
ExportLists contains for each Module the set of globals (GUID) that will be imported by another module, or referenced by such a function. I.e. this is the set of globals that need to be promoted/renamed appropriately.
Definition at line 666 of file FunctionImport.cpp.
References assert(), checkVariableImport(), ComputeImportForModule(), dbgs(), LLVM_DEBUG, numGlobalVarSummaries(), and llvm::StringMapImpl::size().
Referenced by llvm::lto::createWriteIndexesThinBackend(), llvm::ThinLTOCodeGenerator::crossModuleImport(), llvm::ThinLTOCodeGenerator::emitImports(), llvm::ThinLTOCodeGenerator::gatherImportedSummariesForModule(), llvm::ThinLTOCodeGenerator::internalize(), llvm::ThinLTOCodeGenerator::promote(), and llvm::ThinLTOCodeGenerator::run().
| void llvm::ComputeCrossModuleImportForModule | ( | StringRef | ModulePath, |
| const ModuleSummaryIndex & | Index, | ||
| FunctionImporter::ImportMapTy & | ImportList | ||
| ) |
Compute all the imports for the given module using the Index.
Compute all the imports for the given module in the Index.
ImportList will be populated with a map that can be passed to FunctionImporter::importFunctions() above (see description there).
Definition at line 739 of file FunctionImport.cpp.
References llvm::ModuleSummaryIndex::collectDefinedFunctionsForModule(), ComputeImportForModule(), dbgs(), dumpImportListForModule(), and LLVM_DEBUG.
Referenced by doImportingForModule().
| void llvm::ComputeCrossModuleImportForModuleFromIndex | ( | StringRef | ModulePath, |
| const ModuleSummaryIndex & | Index, | ||
| FunctionImporter::ImportMapTy & | ImportList | ||
| ) |
Mark all external summaries in Index for import into the given module.
Used for distributed builds using a distributed index.
ImportList will be populated with a map that can be passed to FunctionImporter::importFunctions() above (see description there).
Definition at line 758 of file FunctionImport.cpp.
References assert(), dumpImportListForModule(), and llvm::StringMap< ValueTy, AllocatorTy >::insert().
Referenced by doImportingForModule().
| void llvm::computeDeadSymbols | ( | ModuleSummaryIndex & | Index, |
| const DenseSet< GlobalValue::GUID > & | GUIDPreservedSymbols, | ||
| function_ref< PrevailingType(GlobalValue::GUID)> | isPrevailing | ||
| ) |
Compute all the symbols that are "dead": i.e these that can't be reached in the graph from any of the given symbols listed in GUIDPreservedSymbols.
Non-prevailing symbols are symbols without a prevailing copy anywhere in IR and are normally dead, isPrevailing predicate returns status of symbol.
Definition at line 782 of file FunctionImport.cpp.
References any_of(), assert(), llvm::GlobalValue::AvailableExternallyLinkage, ComputeDead, dbgs(), llvm::SmallVectorBase::empty(), llvm::detail::DenseSetImpl< ValueT, DenseMap< ValueT, detail::DenseSetEmpty, ValueInfoT, detail::DenseSetPair< ValueT > >, ValueInfoT >::empty(), llvm::X86AS::FS, llvm::ValueInfo::getGUID(), llvm::ValueInfo::getSummaryList(), llvm::ModuleSummaryIndex::getValueInfo(), llvm::GlobalValue::isInterposableLinkage(), llvm::GlobalValue::LinkOnceODRLinkage, LLVM_DEBUG, No, llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T >::push_back(), Ref, report_fatal_error(), llvm::SmallVectorImpl< T >::reserve(), llvm::detail::DenseSetImpl< ValueT, DenseMap< ValueT, detail::DenseSetEmpty, ValueInfoT, detail::DenseSetPair< ValueT > >, ValueInfoT >::size(), updateValueInfoForIndirectCalls(), VI, llvm::GlobalValue::WeakODRLinkage, and llvm::ModuleSummaryIndex::withGlobalValueDeadStripping().
Referenced by computeDeadSymbolsWithConstProp().
| void llvm::computeDeadSymbolsWithConstProp | ( | ModuleSummaryIndex & | Index, |
| const DenseSet< GlobalValue::GUID > & | GUIDPreservedSymbols, | ||
| function_ref< PrevailingType(GlobalValue::GUID)> | isPrevailing, | ||
| bool | ImportEnabled | ||
| ) |
Compute dead symbols and run constant propagation in combined index after that.
Definition at line 898 of file FunctionImport.cpp.
References computeDeadSymbols(), and llvm::ModuleSummaryIndex::propagateAttributes().
Referenced by computeDeadSymbolsInIndex(), and llvm::lto::LTO::run().
|
static |
Definition at line 310 of file RuntimeDyldMachO.cpp.
References llvm::SectionEntry::getLoadAddress(), and llvm::SectionEntry::getObjAddress().
Referenced by llvm::SwingSchedulerDAG::classof(), llvm::SwingSchedulerDAG::isLoopCarriedDep(), and llvm::RuntimeDyldMachOCRTPBase< RuntimeDyldMachOX86_64 >::registerEHFrames().
| unsigned llvm::ComputeEditDistance | ( | ArrayRef< T > | FromArray, |
| ArrayRef< T > | ToArray, | ||
| bool | AllowReplacements = true, |
||
| unsigned | MaxEditDistance = 0 |
||
| ) |
Determine the edit distance between two sequences.
| FromArray | the first sequence to compare. |
| ToArray | the second sequence to compare. |
| AllowReplacements | whether to allow element replacements (change one element into another) as a single operation, rather than as two operations (an insertion and a removal). |
| MaxEditDistance | If non-zero, the maximum edit distance that this routine is allowed to compute. If the edit distance will exceed that maximum, returns MaxEditDistance+1. |
AllowReplacements is true) replacements needed to transform one of the given sequences into the other. If zero, the sequences are identical. Definition at line 42 of file edit_distance.h.
References llvm::ArrayRef< T >::size().
Referenced by llvm::StringRef::edit_distance().
Definition at line 67 of file ScalarEvolutionExpressions.h.
References Arg, llvm::APInt::getZExtValue(), Size, and llvm::APInt::uadd_sat().
| MemoryAccessKind llvm::computeFunctionBodyMemoryAccess | ( | Function & | F, |
| AAResults & | AAR | ||
| ) |
Returns the memory access properties of this copy of the function.
Definition at line 227 of file FunctionAttrs.cpp.
References checkFunctionMemoryAccess().
Referenced by AddCalls().
| void llvm::computeKnownBits | ( | const Value * | V, |
| KnownBits & | Known, | ||
| const DataLayout & | DL, | ||
| unsigned | Depth = 0, |
||
| AssumptionCache * | AC = nullptr, |
||
| const Instruction * | CxtI = nullptr, |
||
| const DominatorTree * | DT = nullptr, |
||
| OptimizationRemarkEmitter * | ORE = nullptr, |
||
| bool | UseInstrInfo = true |
||
| ) |
Determine which bits of V are known to be either zero or one and return them in the KnownZero/KnownOne bit sets.
This function is defined on values with integer type, values with pointer type, and vectors of integers. In the case where V is a vector, the known zero and known one values are the same width as the vector element, and the bit is set only if it is true for all of the elements in the vector.
Definition at line 169 of file ValueTracking.cpp.
References safeCxtI().
Referenced by aliasSameBasePointerGEPs(), annotateNonNullAndDereferenceable(), computeConstantRangeIncludingKnownBits(), computeKnownBits(), llvm::InstCombiner::computeKnownBits(), computeKnownBitsAddSub(), computeKnownBitsFromAssume(), computeKnownBitsFromOperator(), computeKnownBitsFromShiftOperator(), computeKnownBitsMul(), llvm::slpvectorizer::BoUpSLP::computeMinimumValueSizes(), ComputeNumSignBitsImpl(), computeOverflowForSignedMul(), computeOverflowForUnsignedMul(), computeRecurrenceType(), ConstantFoldLoadFromConstPtr(), llvm::SelectionDAG::DbgLabelEnd(), EvaluateConstantChrecAtConstant(), foldShiftIntoShiftInAnotherHandOfAndInICmp(), getOrEnforceKnownAlignment(), getRangeForAffineARHelper(), GetRangeFromMetadata(), haveNoCommonBitsSet(), llvm::SelectionDAG::InferPtrAlignment(), isAlwaysLive(), isKnownNegative(), isKnownNonEqual(), isKnownNonNegative(), isKnownNonZero(), isKnownToBeAPowerOfTwo(), isSupportedGuardInstruction(), isTruePredicate(), isZero(), MaskedValueIsZero(), processUGT_ADDCST_ADD(), promotedOpIsNUW(), propagateMetadata(), llvm::InstCombiner::run(), safeCxtI(), ShrinkDemandedConstant(), SimplifyAndInst(), simplifyICmpWithBinOp(), simplifyICmpWithZero(), SimplifyInstruction(), SimplifyLShrInst(), llvm::InstCombiner::simplifyRangeCheck(), SimplifyRightShift(), SimplifyShift(), SimplifySubInst(), llvm::InstCombiner::visitAdd(), llvm::InstCombiner::visitReturnInst(), llvm::InstCombiner::visitSExt(), llvm::InstCombiner::visitSub(), llvm::InstCombiner::visitTrunc(), and llvm::InstCombiner::visitZExt().
| KnownBits llvm::computeKnownBits | ( | const Value * | V, |
| const DataLayout & | DL, | ||
| unsigned | Depth = 0, |
||
| AssumptionCache * | AC = nullptr, |
||
| const Instruction * | CxtI = nullptr, |
||
| const DominatorTree * | DT = nullptr, |
||
| OptimizationRemarkEmitter * | ORE = nullptr, |
||
| bool | UseInstrInfo = true |
||
| ) |
Returns the known bits rather than passing by reference.
Definition at line 181 of file ValueTracking.cpp.
References computeKnownBits(), and safeCxtI().
Compute known bits from the range metadata.
KnownZero the set of bits that are known to be zero KnownOne the set of bits that are known to be one
Definition at line 440 of file ValueTracking.cpp.
References assert(), countLeadingZeros(), llvm::KnownBits::getBitWidth(), llvm::APInt::getHighBitsSet(), llvm::MDNode::getNumOperands(), llvm::MDNode::getOperand(), llvm::ConstantInt::getValue(), llvm::BitmaskEnumDetail::Mask(), llvm::KnownBits::One, llvm::APInt::setAllBits(), Upper, and llvm::KnownBits::Zero.
Referenced by llvm::SelectionDAG::computeKnownBits(), computeKnownBitsFromOperator(), and llvm::GISelKnownBits::computeKnownBitsImpl().
| void llvm::computeLegalValueVTs | ( | const Function & | F, |
| const TargetMachine & | TM, | ||
| Type * | Ty, | ||
| SmallVectorImpl< MVT > & | ValueVTs | ||
| ) |
Definition at line 29 of file WebAssemblyMachineFunctionInfo.cpp.
References ComputeValueVTs(), F(), llvm::Function::getContext(), llvm::Module::getDataLayout(), llvm::GlobalValue::getParent(), llvm::TargetMachine::getSubtarget(), I, and llvm::SmallVectorTemplateBase< T >::push_back().
Referenced by callingConvSupported(), computeSignatureVTs(), getFunctionReturns(), and llvm::WebAssemblyFunctionInfo::setCFGStackified().
| unsigned llvm::ComputeLinearIndex | ( | Type * | Ty, |
| const unsigned * | Indices, | ||
| const unsigned * | IndicesEnd, | ||
| unsigned | CurIndex = 0 |
||
| ) |
Compute the linearized index of a member in a nested aggregate/struct/array.
Compute the linearized index of a member in a nested aggregate/struct/array by recursing and accumulating CurIndex as long as there are indices in the index list.
Given an LLVM IR aggregate type and a sequence of insertvalue or extractvalue indices that identify a member, return the linearized index of the start of the member, i.e the number of element in memory before the sought one. This is disconnected from the number of bytes.
| Ty | is the type indexed by Indices. |
| Indices | is an optional pointer in the indices list to the current index. |
| IndicesEnd | is the end of the indices list. |
| CurIndex | is the current index in the recursion. |
CurIndex plus the linear index in Ty the indices list.Definition at line 35 of file Analysis.cpp.
References assert().
Referenced by ComputeLinearIndex(), and llvm::FastISel::selectExtractValue().
|
inline |
Definition at line 59 of file Analysis.h.
References attributesPermitTailCall(), llvm::ArrayRef< T >::begin(), ComputeLinearIndex(), computeValueLLTs(), ComputeValueVTs(), llvm::ArrayRef< T >::end(), ExtractTypeInfo(), F(), getEHScopeMembership(), getFCmpCodeWithoutNaN(), getFCmpCondCode(), getICmpCondCode(), hasInlineAsmMemConstraint(), I, isInTailCallPosition(), llvm::MipsISD::Ret, returnTypeIsEligibleForTailCall(), and llvm::SystemZISD::TM.
| void llvm::computeLiveIns | ( | LivePhysRegs & | LiveRegs, |
| const MachineBasicBlock & | MBB | ||
| ) |
Computes registers live-in to MBB assuming all of its successors live-in lists are up-to-date.
Puts the result into the given LivePhysReg instance LiveRegs.
Definition at line 242 of file LivePhysRegs.cpp.
References llvm::LivePhysRegs::addLiveOutsNoPristines(), llvm::MachineBasicBlock::getParent(), llvm::MachineFunction::getRegInfo(), llvm::MachineRegisterInfo::getTargetRegisterInfo(), llvm::LivePhysRegs::init(), make_range(), MI, MRI, llvm::MachineBasicBlock::rbegin(), llvm::MachineBasicBlock::rend(), and llvm::LivePhysRegs::stepBackward().
Referenced by computeAndAddLiveIns(), mergeOperations(), and operator<<().
| void llvm::computeLTOCacheKey | ( | SmallString< 40 > & | Key, |
| const lto::Config & | Conf, | ||
| const ModuleSummaryIndex & | Index, | ||
| StringRef | ModuleID, | ||
| const FunctionImporter::ImportMapTy & | ImportList, | ||
| const FunctionImporter::ExportSetTy & | ExportList, | ||
| const std::map< GlobalValue::GUID, GlobalValue::LinkageTypes > & | ResolvedODR, | ||
| const GVSummaryMapTy & | DefinedGlobals, | ||
| const std::set< GlobalValue::GUID > & | CfiFunctionDefs = {}, |
||
| const std::set< GlobalValue::GUID > & | CfiFunctionDecls = {} |
||
| ) |
Computes a unique hash for the Module considering the current list of export/import and other global analysis results.
The hash is produced in Key.
Definition at line 72 of file LTO.cpp.
References llvm::lto::Config::AAPipeline, Arg, llvm::lto::Config::CGFileType, llvm::lto::Config::CGOptLevel, llvm::lto::Config::CodeModel, llvm::lto::Config::CPU, Data, llvm::TargetOptions::DataSections, llvm::TargetOptions::DebuggerTuning, llvm::lto::Config::DefaultTriple, llvm::lto::Config::DwoDir, llvm::ModuleSummaryIndex::findSummaryInModule(), llvm::lto::Config::Freestanding, llvm::X86AS::FS, llvm::TargetOptions::FunctionSections, llvm::MemoryBuffer::getFile(), llvm::ModuleSummaryIndex::getModuleHash(), llvm::X86AS::GS, I, llvm::lto::Config::MAttrs, llvm::lto::Config::Options, llvm::lto::Config::OptLevel, llvm::lto::Config::OptPipeline, llvm::lto::Config::OverrideTriple, llvm::lto::Config::ProfileRemapping, llvm::TargetOptions::RelaxELFRelocations, llvm::lto::Config::RelocModel, llvm::SHA1::result(), llvm::lto::Config::SampleProfile, toHex(), TT, llvm::ModuleSummaryIndex::typeIds(), llvm::SHA1::update(), llvm::lto::Config::UseNewPM, and VI.
| MapVector< Instruction *, uint64_t > llvm::computeMinimumValueSizes | ( | ArrayRef< BasicBlock *> | Blocks, |
| DemandedBits & | DB, | ||
| const TargetTransformInfo * | TTI = nullptr |
||
| ) |
Compute a map of integer instructions to their minimum legal type size.
C semantics force sub-int-sized values (e.g. i8, i16) to be promoted to int type (e.g. i32) whenever arithmetic is performed on them.
For targets with native i8 or i16 operations, usually InstCombine can shrink the arithmetic type down again. However InstCombine refuses to create illegal types, so for targets without i8 or i16 registers, the lengthening and shrinking remains.
Most SIMD ISAs (e.g. NEON) however support vectors of i8 or i16 even when their scalar equivalents do not, so during vectorization it is important to remove these lengthens and truncates when deciding the profitability of vectorization.
This function analyzes the given range of instructions and determines the minimum type size each can be converted to. It attempts to remove or minimize type size changes across each def-use chain, so for example in the following code:
%1 = load i8, i8* %2 = add i8 %1, 2 %3 = load i16, i16* %4 = zext i8 %2 to i32 %5 = zext i16 %3 to i32 %6 = add i32 %4, %5 %7 = trunc i32 %6 to i16
Instruction %6 must be done at least in i16, so computeMinimumValueSizes will return: {%1: 16, %2: 16, %3: 16, %4: 16, %5: 16, %6: 16, %7: 16}.
If the optional TargetTransformInfo is provided, this function tries harder to do less work by only looking at illegal types.
Definition at line 369 of file VectorUtils.cpp.
References llvm::EquivalenceClasses< ElemTy >::begin(), llvm::SmallPtrSetImpl< PtrType >::count(), countLeadingZeros(), E, llvm::SmallVectorBase::empty(), llvm::EquivalenceClasses< ElemTy >::end(), llvm::APInt::getBitWidth(), llvm::DemandedBits::getDemandedBits(), llvm::EquivalenceClasses< ElemTy >::getOrInsertLeaderValue(), getScalarSizeInBits(), llvm::Value::getType(), llvm::APInt::getZExtValue(), I, llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::Type::isIntegerTy(), isPowerOf2_64(), llvm::TargetTransformInfo::isTypeLegal(), llvm::EquivalenceClasses< ElemTy >::member_begin(), llvm::EquivalenceClasses< ElemTy >::member_end(), MI, NextPowerOf2(), llvm::RISCVFenceField::O, llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T >::push_back(), and llvm::EquivalenceClasses< ElemTy >::unionSets().
Referenced by llvm::slpvectorizer::BoUpSLP::bestOrder(), and llvm::LoopVectorizationCostModel::computeMaxVF().
| bool llvm::ComputeMultiple | ( | Value * | V, |
| unsigned | Base, | ||
| Value *& | Multiple, | ||
| bool | LookThroughSExt = false, |
||
| unsigned | Depth = 0 |
||
| ) |
This function computes the integer multiple of Base that equals V.
If successful, it returns true and returns the multiple in Multiple. If unsuccessful, it returns false. Also, if V can be simplified to an integer, then the simplified V is returned in Val. Look through sext only if LookThroughSExt=true.
If successful, it returns true and returns the multiple in Multiple. If unsuccessful, it returns false. It looks through SExt instructions only if LookThroughSExt is true.
Definition at line 2765 of file ValueTracking.cpp.
References assert(), dyn_cast(), llvm::ConstantInt::get(), llvm::APInt::getBitWidth(), llvm::Value::getContext(), llvm::APInt::getLimitedValue(), llvm::ConstantExpr::getMul(), llvm::Operator::getOpcode(), llvm::User::getOperand(), llvm::Value::getType(), llvm::ConstantInt::getValue(), llvm::ConstantExpr::getZExt(), llvm::ConstantInt::getZExtValue(), llvm::Type::isIntegerTy(), LLVM_FALLTHROUGH, and llvm::APInt::setBit().
Referenced by computeArraySize().
| unsigned llvm::ComputeNumSignBits | ( | const Value * | Op, |
| const DataLayout & | DL, | ||
| unsigned | Depth = 0, |
||
| AssumptionCache * | AC = nullptr, |
||
| const Instruction * | CxtI = nullptr, |
||
| const DominatorTree * | DT = nullptr, |
||
| bool | UseInstrInfo = true |
||
| ) |
Return the number of times the sign bit of the register is replicated into the other bits.
We know that at least 1 bit is always equal to the sign bit (itself), but other cases can give us information. For example, immediately after an "ashr X, 2", we know that the top 3 bits are all equal to each other, so we return 3. For vectors, return the number of sign bits for the vector element with the mininum number of known sign bits.
Definition at line 301 of file ValueTracking.cpp.
References ComputeNumSignBits(), and safeCxtI().
Referenced by areInverseVectorBitmasks(), llvm::slpvectorizer::BoUpSLP::computeMinimumValueSizes(), llvm::InstCombiner::ComputeNumSignBits(), ComputeNumSignBitsImpl(), computeOverflowForSignedAdd(), computeOverflowForSignedMul(), computeOverflowForSignedSub(), computeRecurrenceType(), getMulHu(), GetRangeFromMetadata(), MaskedValueIsZero(), promotedOpIsNUW(), ShrinkDemandedConstant(), SimplifyAShrInst(), llvm::InstCombiner::visitSExt(), and llvm::InstCombiner::visitShl().
| OverflowResult llvm::computeOverflowForSignedAdd | ( | const Value * | LHS, |
| const Value * | RHS, | ||
| const DataLayout & | DL, | ||
| AssumptionCache * | AC = nullptr, |
||
| const Instruction * | CxtI = nullptr, |
||
| const DominatorTree * | DT = nullptr |
||
| ) |
Definition at line 4412 of file ValueTracking.cpp.
References computeOverflowForSignedAdd().
Referenced by llvm::InstCombiner::computeOverflow(), llvm::InstCombiner::computeOverflowForSignedAdd(), isGEPFoldable(), and llvm::InstCombiner::visitInstruction().
| OverflowResult llvm::computeOverflowForSignedAdd | ( | const AddOperator * | Add, |
| const DataLayout & | DL, | ||
| AssumptionCache * | AC = nullptr, |
||
| const Instruction * | CxtI = nullptr, |
||
| const DominatorTree * | DT = nullptr |
||
| ) |
This version also leverages the sign bit of Add if known.
Definition at line 4403 of file ValueTracking.cpp.
References llvm::MCID::Add, computeOverflowForSignedAdd(), and llvm::User::getOperand().
| OverflowResult llvm::computeOverflowForSignedMul | ( | const Value * | LHS, |
| const Value * | RHS, | ||
| const DataLayout & | DL, | ||
| AssumptionCache * | AC, | ||
| const Instruction * | CxtI, | ||
| const DominatorTree * | DT, | ||
| bool | UseInstrInfo = true |
||
| ) |
Definition at line 4188 of file ValueTracking.cpp.
References computeKnownBits(), ComputeNumSignBits(), llvm::Type::getScalarSizeInBits(), llvm::Value::getType(), llvm::KnownBits::isNonNegative(), MayOverflow, and NeverOverflows.
Referenced by llvm::InstCombiner::computeOverflow(), llvm::InstCombiner::computeOverflowForSignedMul(), and llvm::InstCombiner::visitInstruction().
| OverflowResult llvm::computeOverflowForSignedSub | ( | const Value * | LHS, |
| const Value * | RHS, | ||
| const DataLayout & | DL, | ||
| AssumptionCache * | AC, | ||
| const Instruction * | CxtI, | ||
| const DominatorTree * | DT | ||
| ) |
Definition at line 4319 of file ValueTracking.cpp.
References computeConstantRangeIncludingKnownBits(), ComputeNumSignBits(), mapOverflowResult(), NeverOverflows, and llvm::ConstantRange::signedSubMayOverflow().
Referenced by llvm::InstCombiner::computeOverflow(), llvm::InstCombiner::computeOverflowForSignedSub(), and llvm::InstCombiner::visitInstruction().
| OverflowResult llvm::computeOverflowForUnsignedAdd | ( | const Value * | LHS, |
| const Value * | RHS, | ||
| const DataLayout & | DL, | ||
| AssumptionCache * | AC, | ||
| const Instruction * | CxtI, | ||
| const DominatorTree * | DT, | ||
| bool | UseInstrInfo = true |
||
| ) |
Definition at line 4230 of file ValueTracking.cpp.
References computeConstantRangeIncludingKnownBits(), mapOverflowResult(), and llvm::ConstantRange::unsignedAddMayOverflow().
Referenced by llvm::InstCombiner::computeOverflow(), llvm::InstCombiner::computeOverflowForUnsignedAdd(), and llvm::InstCombiner::visitInstruction().
| OverflowResult llvm::computeOverflowForUnsignedMul | ( | const Value * | LHS, |
| const Value * | RHS, | ||
| const DataLayout & | DL, | ||
| AssumptionCache * | AC, | ||
| const Instruction * | CxtI, | ||
| const DominatorTree * | DT, | ||
| bool | UseInstrInfo = true |
||
| ) |
Definition at line 4174 of file ValueTracking.cpp.
References computeKnownBits(), llvm::ConstantRange::fromKnownBits(), mapOverflowResult(), and llvm::ConstantRange::unsignedMulMayOverflow().
Referenced by llvm::InstCombiner::computeOverflow(), llvm::InstCombiner::computeOverflowForUnsignedMul(), and llvm::InstCombiner::visitInstruction().
| OverflowResult llvm::computeOverflowForUnsignedSub | ( | const Value * | LHS, |
| const Value * | RHS, | ||
| const DataLayout & | DL, | ||
| AssumptionCache * | AC, | ||
| const Instruction * | CxtI, | ||
| const DominatorTree * | DT | ||
| ) |
Definition at line 4306 of file ValueTracking.cpp.
References computeConstantRangeIncludingKnownBits(), mapOverflowResult(), and llvm::ConstantRange::unsignedSubMayOverflow().
Referenced by llvm::InstCombiner::computeOverflow(), llvm::InstCombiner::computeOverflowForUnsignedSub(), and llvm::InstCombiner::visitInstruction().
| void llvm::computePeelCount | ( | Loop * | L, |
| unsigned | LoopSize, | ||
| TargetTransformInfo::UnrollingPreferences & | UP, | ||
| unsigned & | TripCount, | ||
| ScalarEvolution & | SE | ||
| ) |
Definition at line 281 of file LoopUnrollPeel.cpp.
References llvm::TargetTransformInfo::UnrollingPreferences::AllowPeeling, assert(), llvm::BasicBlock::begin(), calculateIterationsToInvariance(), canPeel(), countToEliminateCompares(), dbgs(), llvm::LoopBase< BlockT, LoopT >::empty(), llvm::LoopBase< BlockT, LoopT >::getHeader(), getLoopEstimatedTripCount(), llvm::LoopBase< BlockT, LoopT >::getLoopLatch(), getOptionalIntLoopAttribute(), llvm::BasicBlock::getParent(), llvm::Function::hasProfileData(), LLVM_DEBUG, max(), llvm::TargetTransformInfo::UnrollingPreferences::PeelCount, llvm::TargetTransformInfo::UnrollingPreferences::PeelProfiledIterations, llvm::TargetTransformInfo::UnrollingPreferences::Threshold, UnrollForcePeelCount, and UnrollPeelMaxCount.
Referenced by computeUnrollCount().
| void llvm::computeSignatureVTs | ( | const FunctionType * | Ty, |
| const Function & | F, | ||
| const TargetMachine & | TM, | ||
| SmallVectorImpl< MVT > & | Params, | ||
| SmallVectorImpl< MVT > & | Results | ||
| ) |
Definition at line 45 of file WebAssemblyMachineFunctionInfo.cpp.
References llvm::SmallVectorImpl< T >::clear(), computeLegalValueVTs(), llvm::TargetMachine::createDataLayout(), F(), llvm::MVT::getIntegerVT(), llvm::DataLayout::getPointerSizeInBits(), llvm::FunctionType::getReturnType(), llvm::TargetMachine::getSubtarget(), llvm::FunctionType::isVarArg(), llvm::FunctionType::params(), llvm::SmallVectorTemplateBase< T >::push_back(), and llvm::SmallVectorBase::size().
Referenced by callingConvSupported(), llvm::WebAssemblyAsmPrinter::EmitEndOfAsmFile(), llvm::WebAssemblyAsmPrinter::EmitFunctionBodyStart(), and llvm::WebAssemblyFunctionInfo::setCFGStackified().
|
static |
Definition at line 212 of file SpeculativeExecution.cpp.
References llvm::MCID::Add, llvm::MCID::Call, llvm::SmallPtrSetImpl< PtrType >::count(), llvm::Operator::getOpcode(), llvm::BasicBlock::getTerminator(), llvm::TargetTransformInfo::getUserCost(), I, llvm::SmallPtrSetImpl< PtrType >::insert(), isSafeToSpeculativelyExecute(), llvm::MCID::Select, llvm::SmallPtrSetImplBase::size(), SpecExecMaxNotHoisted, and SpecExecMaxSpeculationCost.
Referenced by DominatesMergePoint(), and SpeculativelyExecuteBB().
| void llvm::computeSyntheticCounts | ( | ModuleSummaryIndex & | Index | ) |
Compute synthetic function entry counts.
Definition at line 45 of file SummaryBasedOptimizations.cpp.
References F(), llvm::ValueInfo::getSummaryList(), initializeCounts(), llvm::SyntheticCountsUtils< CallGraphType >::propagate(), SaturatingAdd(), llvm::CalleeInfo::ScaleShift, llvm::ModuleSummaryIndex::setHasSyntheticEntryCounts(), and ThinLTOSynthesizeEntryCounts.
Referenced by llvm::lto::createWriteIndexesThinBackend(), llvm::FunctionImportGlobalProcessing::FunctionImportGlobalProcessing(), and llvm::ThinLTOCodeGenerator::run().
| bool llvm::computeUnrollCount | ( | Loop * | L, |
| const TargetTransformInfo & | TTI, | ||
| DominatorTree & | DT, | ||
| LoopInfo * | LI, | ||
| ScalarEvolution & | SE, | ||
| const SmallPtrSetImpl< const Value *> & | EphValues, | ||
| OptimizationRemarkEmitter * | ORE, | ||
| unsigned & | TripCount, | ||
| unsigned | MaxTripCount, | ||
| bool | MaxOrZero, | ||
| unsigned & | TripMultiple, | ||
| unsigned | LoopSize, | ||
| TargetTransformInfo::UnrollingPreferences & | UP, | ||
| bool & | UseUpperBound | ||
| ) |
Definition at line 738 of file LoopUnrollPass.cpp.
References llvm::TargetTransformInfo::UnrollingPreferences::AllowExpensiveTripCount, llvm::TargetTransformInfo::UnrollingPreferences::AllowRemainder, analyzeLoopUnrollCost(), assert(), llvm::TargetTransformInfo::UnrollingPreferences::BEInsns, computePeelCount(), llvm::TargetTransformInfo::UnrollingPreferences::Count, dbgs(), DEBUG_TYPE, llvm::TargetTransformInfo::UnrollingPreferences::DefaultUnrollRuntimeCount, llvm::OptimizationRemarkEmitter::emit(), FlatLoopTripCountThreshold, llvm::TargetTransformInfo::UnrollingPreferences::Force, llvm::TargetTransformInfo::UnrollingPreferences::FullUnrollMaxCount, getFullUnrollBoostingFactor(), llvm::LoopBase< BlockT, LoopT >::getHeader(), getLoopEstimatedTripCount(), llvm::BasicBlock::getParent(), llvm::Loop::getStartLoc(), getUnrolledLoopSize(), llvm::Function::hasProfileData(), HasRuntimeUnrollDisablePragma(), HasUnrollEnablePragma(), HasUnrollFullPragma(), LLVM_DEBUG, max(), llvm::TargetTransformInfo::UnrollingPreferences::MaxCount, llvm::TargetTransformInfo::UnrollingPreferences::MaxPercentThresholdBoost, llvm::TargetTransformInfo::UnrollingPreferences::Partial, llvm::TargetTransformInfo::UnrollingPreferences::PartialThreshold, llvm::TargetTransformInfo::UnrollingPreferences::PeelCount, PragmaUnrollThreshold, llvm::TargetTransformInfo::UnrollingPreferences::Runtime, llvm::TargetTransformInfo::UnrollingPreferences::Threshold, UnrollCount, UnrollCountPragmaValue(), UnrollMaxUpperBound, and llvm::TargetTransformInfo::UnrollingPreferences::UpperBound.
Referenced by computeUnrollAndJamCount(), and tryToUnrollLoop().
| void llvm::computeValueLLTs | ( | const DataLayout & | DL, |
| Type & | Ty, | ||
| SmallVectorImpl< LLT > & | ValueTys, | ||
| SmallVectorImpl< uint64_t > * | Offsets = nullptr, |
||
| uint64_t | StartingOffset = 0 |
||
| ) |
computeValueLLTs - Given an LLVM IR type, compute a sequence of LLTs that represent all the individual underlying non-aggregate types that comprise it.
If Offsets is non-null, it points to a vector to be filled in with the in-memory offsets of each of the individual values.
Definition at line 127 of file Analysis.cpp.
References llvm::numbers::e, E, llvm::StructLayout::getElementOffset(), getLLTForType(), llvm::DataLayout::getStructLayout(), llvm::DataLayout::getTypeAllocSize(), I, llvm::Type::isVoidTy(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by ComputeLinearIndex(), llvm::IRTranslator::getAnalysisUsage(), getOffsetFromIndices(), llvm::CallLowering::packRegs(), and llvm::CallLowering::unpackRegs().
| void llvm::ComputeValueVTs | ( | const TargetLowering & | TLI, |
| const DataLayout & | DL, | ||
| Type * | Ty, | ||
| SmallVectorImpl< EVT > & | ValueVTs, | ||
| SmallVectorImpl< uint64_t > * | Offsets = nullptr, |
||
| uint64_t | StartingOffset = 0 |
||
| ) |
ComputeValueVTs - Given an LLVM IR type, compute a sequence of EVTs that represent all the individual underlying non-aggregate types that comprise it.
If Offsets is non-null, it points to a vector to be filled in with the in-memory offsets of each of the individual values.
Definition at line 119 of file Analysis.cpp.
Referenced by addStackMapLiveVars(), llvm::AMDGPUCallLowering::AMDGPUCallLowering(), llvm::AMDGPUTargetLowering::analyzeFormalArgumentsCompute(), computeLegalValueVTs(), ComputeLinearIndex(), llvm::FunctionLoweringInfo::ComputePHILiveOutRegInfo(), ComputePTXValueVTs(), ComputeValueVTs(), llvm::FunctionLoweringInfo::CreateRegs(), doesCalleeRestoreStack(), findMatchingInlineAsmOperand(), findUnwindDestinations(), FixedPointIntrinsicToOpcode(), getOpenCLAlignment(), llvm::NVPTXTargetLowering::getPrototype(), GetReturnInfo(), getUniformBase(), llvm::FunctionLoweringInfo::getValueFromVirtualReg(), llvm::SelectionDAGBuilder::getValueImpl(), isSupportedType(), llvm::NVPTXTargetLowering::LowerCall(), llvm::FastISel::lowerCallTo(), llvm::TargetLowering::LowerCallTo(), llvm::X86CallLowering::lowerReturn(), llvm::AArch64CallLowering::lowerReturn(), llvm::RegsForValue::RegsForValue(), llvm::FastISel::selectExtractValue(), llvm::FunctionLoweringInfo::set(), tryToElideArgumentCopy(), llvm::SelectionDAGBuilder::visitBitTestCase(), VisitGlobalVariableForEmission(), and llvm::X86CallLowering::X86CallLowering().
| void llvm::ComputeValueVTs | ( | const TargetLowering & | TLI, |
| const DataLayout & | DL, | ||
| Type * | Ty, | ||
| SmallVectorImpl< EVT > & | ValueVTs, | ||
| SmallVectorImpl< EVT > * | MemVTs, | ||
| SmallVectorImpl< uint64_t > * | Offsets = nullptr, |
||
| uint64_t | StartingOffset = 0 |
||
| ) |
Variant of ComputeValueVTs that also produces the memory VTs.
ComputeValueVTs - Given an LLVM IR type, compute a sequence of EVTs that represent all the individual underlying non-aggregate types that comprise it.
If Offsets is non-null, it points to a vector to be filled in with the in-memory offsets of each of the individual values.
Definition at line 83 of file Analysis.cpp.
References ComputeValueVTs(), llvm::numbers::e, llvm::StructLayout::getElementOffset(), llvm::TargetLoweringBase::getMemValueType(), llvm::DataLayout::getStructLayout(), llvm::DataLayout::getTypeAllocSize(), llvm::TargetLoweringBase::getValueType(), llvm::Type::isVoidTy(), llvm::SmallVectorTemplateBase< T >::push_back(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
| detail::concat_range<ValueT, RangeTs...> llvm::concat | ( | RangeTs &&... | Ranges | ) |
Concatenated range across two or more ranges.
The desired value type must be explicitly specified.
Definition at line 952 of file STLExtras.h.
Referenced by llvm::ImmutableListFactory< T >::add(), llvm::ImmutableListFactory< T >::create(), llvm::ImmutableListFactory< T >::emplace(), and llvm::HvxSelector::getPairVT().
Concatenate a list of vectors.
This function generates code that concatenate the vectors in Vecs into a single large vector. The number of vectors should be greater than one, and their element types should be the same. The number of elements in the vectors should also be the same; however, if the last vector has fewer elements, it will be padded with undefs.
Definition at line 726 of file VectorUtils.cpp.
References llvm::SmallVectorImpl< T >::append(), assert(), llvm::ArrayRef< T >::begin(), concatenateTwoVectors(), llvm::ArrayRef< T >::end(), llvm::Value::getType(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SmallVectorBase::size(), and llvm::ArrayRef< T >::size().
Referenced by group2Shuffle(), llvm::AArch64TargetLowering::lowerInterleavedLoad(), llvm::ARMTargetLowering::lowerInterleavedLoad(), and llvm::InnerLoopVectorizer::vectorizeInterleaveGroup().
|
inlinestatic |
Get the operand corresponding to the conditional code result.
By default, this is 0 (no register).
Definition at line 473 of file ARMBaseInstrInfo.h.
References llvm::MachineOperand::CreateReg().
Referenced by addExclusiveRegPair(), llvm::ARMFrameLowering::adjustForSegmentedStacks(), ContainsReg(), llvm::ARMBaseInstrInfo::convertToThreeAddress(), llvm::ARMBaseInstrInfo::copyPhysReg(), emitAlignedDPRCS2Restores(), emitAlignedDPRCS2Spills(), emitAligningInstructions(), emitARMRegPlusImmediate(), llvm::ARMFrameLowering::emitEpilogue(), llvm::ARMTargetLowering::EmitInstrWithCustomInserter(), emitPostSt(), llvm::ARMFrameLowering::emitPrologue(), emitT2RegPlusImmediate(), llvm::ARMBaseInstrInfo::FoldImmediate(), getComparePred(), makeImplicit(), llvm::ARMBaseRegisterInfo::materializeFrameBaseRegister(), llvm::ARMBaseInstrInfo::optimizeSelect(), llvm::ARMTargetLowering::ReplaceNodeResults(), and VerifyLowRegs().
|
inline |
Definition at line 205 of file MachineInstrBundle.h.
References llvm::ConstMIBundleOperands::end(), llvm::MachineInstr::getParent(), and make_range().
Referenced by phys_regs_and_masks().
Definition at line 999 of file ConstantFold.cpp.
References llvm::MCID::Add, llvm::APFloat::add(), llvm::AMDGPU::HSAMD::Kernel::Arg::Key::Align, llvm::APInt::ashr(), assert(), llvm::APFloat::divide(), llvm::numbers::e, llvm::IntegerType::get(), llvm::ConstantInt::get(), llvm::ConstantFP::get(), llvm::ConstantVector::get(), llvm::ConstantExpr::get(), llvm::UndefValue::get(), llvm::GlobalValue::getAlignment(), llvm::Constant::getAllOnesValue(), llvm::ConstantExpr::getAnd(), llvm::ConstantExpr::getBinOpIdentity(), llvm::APInt::getBitWidth(), llvm::ConstantExpr::getCompare(), llvm::Value::getContext(), llvm::ConstantExpr::getExtractElement(), llvm::ConstantInt::getFalse(), llvm::CmpInst::getInversePredicate(), llvm::APInt::getLowBitsSet(), llvm::ConstantExpr::getLShr(), llvm::ConstantFP::getNaN(), llvm::Constant::getNullValue(), getOpcode(), llvm::GlobalValue::getParent(), llvm::Value::getPointerAlignment(), llvm::Type::getPrimitiveSizeInBits(), llvm::Value::getType(), llvm::ConstantExpr::getXor(), llvm::APInt::isAllOnesValue(), llvm::Instruction::isAssociative(), llvm::Instruction::isBinaryOp(), llvm::Instruction::isCommutative(), llvm::Instruction::isIntDivRem(), llvm::Type::isIntegerTy(), llvm::APInt::isMinSignedValue(), llvm::Constant::isNullValue(), llvm::Type::isVectorTy(), LLVM_FALLTHROUGH, llvm_unreachable, Log2(), llvm::APInt::lshr(), llvm::PatternMatch::m_APInt(), llvm::PatternMatch::m_One(), llvm::PatternMatch::m_Undef(), llvm::PatternMatch::m_Zero(), llvm::PatternMatch::match(), llvm::APFloat::mod(), llvm::APFloat::multiply(), None, pred, llvm::SmallVectorTemplateBase< T >::push_back(), llvm::APFloatBase::rmNearestTiesToEven, llvm::APInt::sdiv(), llvm::APInt::shl(), llvm::APInt::srem(), llvm::APFloat::subtract(), T, llvm::APInt::udiv(), llvm::APInt::ult(), and llvm::APInt::urem().
Referenced by llvm::ConstantExpr::get().
| Constant * llvm::ConstantFoldBinaryOpOperands | ( | unsigned | Opcode, |
| Constant * | LHS, | ||
| Constant * | RHS, | ||
| const DataLayout & | DL | ||
| ) |
Attempt to constant fold a binary operation with the specified operands.
If it fails, it returns a constant expression of the specified operands.
Definition at line 1298 of file ConstantFolding.cpp.
References assert(), C, llvm::ConstantExpr::get(), and llvm::Instruction::isBinaryOp().
Referenced by ConstantFoldCompareInstOperands(), ConstantFoldLoadFromConstPtr(), and foldOrCommuteConstant().
| Optional< APInt > llvm::ConstantFoldBinOp | ( | unsigned | Opcode, |
| const unsigned | Op1, | ||
| const unsigned | Op2, | ||
| const MachineRegisterInfo & | MRI | ||
| ) |
Definition at line 338 of file Utils.cpp.
References llvm::APInt::ashr(), getConstantVRegVal(), llvm::LLT::getSizeInBits(), llvm::MachineRegisterInfo::getType(), llvm::APInt::lshr(), None, llvm::APInt::sdiv(), llvm::APInt::srem(), llvm::APInt::udiv(), and llvm::APInt::urem().
Referenced by llvm::ConstantFoldingMIRBuilder::buildInstr(), and llvm::CSEMIRBuilder::buildInstr().
| Constant * llvm::ConstantFoldCall | ( | const CallBase * | Call, |
| Function * | F, | ||
| ArrayRef< Constant *> | Operands, | ||
| const TargetLibraryInfo * | TLI = nullptr |
||
| ) |
ConstantFoldCall - Attempt to constant fold a call to the specified function with the specified arguments, returning null if unsuccessful.
Definition at line 2470 of file ConstantFolding.cpp.
References llvm::Module::getDataLayout(), llvm::Function::getIntrinsicID(), llvm::Value::getName(), llvm::GlobalValue::getParent(), llvm::Function::getReturnType(), llvm::Value::hasName(), llvm::CallBase::isNoBuiltin(), llvm::CallBase::isStrictFP(), Name, and Operands.
Referenced by ConstantFoldLoadFromConstPtr(), llvm::Evaluator::EvaluateBlock(), and SimplifyCall().
| opcode | The opcode of the cast |
| V | The source constant |
| DestTy | The destination type |
Definition at line 521 of file ConstantFold.cpp.
References llvm::APFloatBase::Bogus(), C, llvm::APFloat::convert(), llvm::APFloat::convertFromAPInt(), llvm::APFloat::convertToInteger(), llvm::numbers::e, ExtractConstantBytes(), FoldBitCast(), foldConstantCastPair(), llvm::IntegerType::get(), llvm::ConstantInt::get(), llvm::ConstantFP::get(), llvm::ConstantVector::get(), llvm::ConstantPointerNull::get(), llvm::UndefValue::get(), getBitWidth(), llvm::ConstantExpr::getCast(), llvm::CastInst::getCastOpcode(), llvm::Value::getContext(), llvm::SequentialType::getElementType(), llvm::ConstantExpr::getExtractElement(), llvm::Type::getFltSemantics(), getFoldedAlignOf(), getFoldedOffsetOf(), getFoldedSizeOf(), llvm::ConstantExpr::getMul(), llvm::Constant::getNullValue(), llvm::APInt::getNullValue(), llvm::ConstantExpr::getPointerCast(), llvm::Type::getPrimitiveSizeInBits(), llvm::GEPOperator::getSourceElementType(), llvm::Value::getType(), llvm::Type::getVectorNumElements(), llvm::APFloatBase::IEEEdouble(), llvm::APFloatBase::IEEEhalf(), llvm::APFloatBase::IEEEquad(), llvm::APFloatBase::IEEEsingle(), llvm::tgtok::IntVal, llvm::Type::isDoubleTy(), llvm::Type::isFloatTy(), llvm::Type::isFP128Ty(), llvm::Type::isHalfTy(), llvm::Constant::isNullValue(), llvm::ConstantInt::isOne(), llvm::Type::isPPC_FP128Ty(), llvm::Type::isVectorTy(), llvm::Type::isX86_FP80Ty(), llvm::Type::isX86_MMXTy(), llvm_unreachable, llvm::APFloatBase::opInvalidOp, llvm::APFloatBase::PPCDoubleDouble(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::APFloatBase::rmNearestTiesToEven, llvm::APFloatBase::rmTowardZero, and llvm::APFloatBase::x87DoubleExtended().
Referenced by getFoldedCast().
| Constant * llvm::ConstantFoldCastOperand | ( | unsigned | Opcode, |
| Constant * | C, | ||
| Type * | DestTy, | ||
| const DataLayout & | DL | ||
| ) |
Attempt to constant fold a cast with the specified operand.
If it fails, it returns a constant expression of the specified operand.
Definition at line 1309 of file ConstantFolding.cpp.
References assert(), FoldBitCast(), llvm::ConstantInt::get(), llvm::ConstantExpr::getAnd(), llvm::ConstantExpr::getCast(), llvm::ConstantExpr::getIntegerCast(), llvm::APInt::getLowBitsSet(), llvm::Type::getPointerAddressSpace(), llvm::DataLayout::getPointerTypeSizeInBits(), llvm::Type::getScalarSizeInBits(), llvm::Value::getType(), llvm::Instruction::isCast(), llvm_unreachable, and llvm::BitmaskEnumDetail::Mask().
Referenced by CanShareConstantPoolEntry(), ConstantFoldLoadFromConstPtr(), and SimplifyCastInst().
| Constant * llvm::ConstantFoldCompareInstOperands | ( | unsigned | Predicate, |
| Constant * | LHS, | ||
| Constant * | RHS, | ||
| const DataLayout & | DL, | ||
| const TargetLibraryInfo * | TLI = nullptr |
||
| ) |
ConstantFoldCompareInstOperands - Attempt to constant fold a compare instruction (icmp/fcmp) with the specified operands.
If it fails, it returns a constant expression of the specified operands.
Definition at line 1204 of file ConstantFolding.cpp.
References ConstantFoldBinaryOpOperands(), llvm::ConstantExpr::getCompare(), llvm::ConstantExpr::getIntegerCast(), llvm::DataLayout::getIntPtrType(), llvm::Constant::getNullValue(), llvm::User::getOperand(), llvm::CmpInst::getSwappedPredicate(), llvm::Value::getType(), llvm::CmpInst::ICMP_EQ, llvm::CmpInst::ICMP_NE, and llvm::Constant::isNullValue().
Referenced by BuildConstantFromSCEV(), computeUnsignedMinMaxValuesFromKnownBits(), ConstantFold(), ConstantFoldInstruction(), ConstantFoldLoadFromConstPtr(), EvaluateConstantChrecAtConstant(), EvaluateExpression(), getPredicateResult(), SimplifyFCmpInst(), SimplifyICmpInst(), and SimplifyWithOpReplaced().
| Constant * llvm::ConstantFoldCompareInstruction | ( | unsigned short | predicate, |
| Constant * | C1, | ||
| Constant * | C2 | ||
| ) |
Definition at line 1810 of file ConstantFold.cpp.
References llvm::CmpInst::BAD_FCMP_PREDICATE, llvm::CmpInst::BAD_ICMP_PREDICATE, llvm::APFloatBase::cmpEqual, llvm::APFloatBase::cmpGreaterThan, llvm::APFloatBase::cmpLessThan, llvm::APFloatBase::cmpUnordered, llvm::APFloat::compare(), llvm::numbers::e, evaluateFCmpRelation(), evaluateICmpRelation(), llvm::CmpInst::FCMP_FALSE, llvm::CmpInst::FCMP_OEQ, llvm::CmpInst::FCMP_OGE, llvm::CmpInst::FCMP_OGT, llvm::CmpInst::FCMP_OLE, llvm::CmpInst::FCMP_OLT, llvm::CmpInst::FCMP_ONE, llvm::CmpInst::FCMP_ORD, llvm::CmpInst::FCMP_TRUE, llvm::CmpInst::FCMP_UEQ, llvm::CmpInst::FCMP_UGE, llvm::CmpInst::FCMP_UGT, llvm::CmpInst::FCMP_ULE, llvm::CmpInst::FCMP_ULT, llvm::CmpInst::FCMP_UNE, llvm::CmpInst::FCMP_UNO, llvm::IntegerType::get(), llvm::ConstantInt::get(), llvm::VectorType::get(), llvm::ConstantVector::get(), llvm::UndefValue::get(), llvm::Constant::getAllOnesValue(), llvm::ConstantExpr::getBitCast(), llvm::ConstantExpr::getCast(), llvm::ConstantExpr::getCompare(), llvm::Value::getContext(), llvm::ConstantExpr::getExtractElement(), llvm::ConstantInt::getFalse(), llvm::ConstantExpr::getICmp(), llvm::Type::getInt1Ty(), llvm::ConstantExpr::getNot(), llvm::Constant::getNullValue(), llvm::User::getOperand(), llvm::CmpInst::getSwappedPredicate(), llvm::ConstantInt::getTrue(), llvm::ConstantExpr::getTrunc(), llvm::Value::getType(), llvm::Type::getVectorNumElements(), llvm::ConstantExpr::getXor(), llvm::CmpInst::ICMP_EQ, llvm::CmpInst::ICMP_NE, llvm::CmpInst::ICMP_SGE, llvm::CmpInst::ICMP_SGT, llvm::CmpInst::ICMP_SLE, llvm::CmpInst::ICMP_SLT, llvm::CmpInst::ICMP_UGE, llvm::CmpInst::ICMP_UGT, llvm::CmpInst::ICMP_ULE, llvm::CmpInst::ICMP_ULT, llvm::ICmpInst::isEquality(), llvm::Type::isFloatingPointTy(), llvm::Type::isFPOrFPVectorTy(), llvm::Type::isIntegerTy(), llvm::CmpInst::isIntPredicate(), llvm::Constant::isNullValue(), llvm::CmpInst::isSigned(), llvm::CmpInst::isTrueWhenEqual(), llvm::CmpInst::isUnordered(), llvm::Type::isVectorTy(), llvm_unreachable, NullPointerIsDefined(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::RISCVFenceField::R, llvm::APInt::sge(), llvm::APInt::sgt(), llvm::APInt::sle(), llvm::APInt::slt(), llvm::APInt::uge(), llvm::APInt::ugt(), llvm::APInt::ule(), llvm::APInt::ult(), and llvm::NVPTX::PTXLdStInstCode::V2.
Referenced by llvm::ConstantExpr::getFCmp(), and llvm::ConstantExpr::getICmp().
| Constant * llvm::ConstantFoldConstant | ( | const Constant * | C, |
| const DataLayout & | DL, | ||
| const TargetLibraryInfo * | TLI = nullptr |
||
| ) |
ConstantFoldConstant - Attempt to fold the constant using the specified DataLayout.
If successful, the constant result is returned, if not, null is returned.
Definition at line 1191 of file ConstantFolding.cpp.
Referenced by AddReachableCodeToWorklist(), llvm::VNCoercion::coerceAvailableValueToLoadTypeHelper(), ConstantFoldLoadFromConstPtr(), ConvertDoubleToBytes(), decomposeSimpleLinearExpr(), emitGlobalConstantImpl(), evaluateBitcastFromPtr(), llvm::Evaluator::EvaluateBlock(), getReducedType(), getShiftedValue(), isZero(), llvm::AsmPrinter::lowerConstant(), OptimizeGlobalVars(), and SimplifyGEPInst().
| Optional< APInt > llvm::ConstantFoldExtOp | ( | unsigned | Opcode, |
| const unsigned | Op1, | ||
| uint64_t | Imm, | ||
| const MachineRegisterInfo & | MRI | ||
| ) |
Definition at line 414 of file Utils.cpp.
References getConstantVRegVal(), llvm::LLT::getSizeInBits(), llvm::MachineRegisterInfo::getType(), None, llvm::APInt::sext(), and llvm::APInt::trunc().
Referenced by llvm::ConstantFoldingMIRBuilder::buildInstr(), and llvm::CSEMIRBuilder::buildInstr().
Attempt to constant fold an extractelement instruction with the specified operands and indices.
The constant result is returned if successful; if not, null is returned.
Definition at line 788 of file ConstantFold.cpp.
References dyn_cast(), llvm::numbers::e, llvm::UndefValue::get(), llvm::Constant::getAggregateElement(), llvm::ConstantExpr::getExtractElement(), llvm::Value::getType(), llvm::Type::getVectorElementType(), llvm::Type::getVectorNumElements(), llvm::Type::isVectorTy(), llvm::SmallVectorTemplateBase< T >::push_back(), and llvm::SmallVectorImpl< T >::reserve().
Referenced by llvm::ConstantExpr::getExtractElement(), and SimplifyExtractElementInst().
Attempt to constant fold an extractvalue instruction with the specified operands and indices.
The constant result is returned if successful; if not, null is returned.
Definition at line 910 of file ConstantFold.cpp.
References C, llvm::ArrayRef< T >::empty(), llvm::Constant::getAggregateElement(), and llvm::ArrayRef< T >::slice().
Referenced by llvm::ConstantExpr::getExtractValue(), and SimplifyExtractValueInst().
| Constant * llvm::ConstantFoldGetElementPtr | ( | Type * | Ty, |
| Constant * | C, | ||
| bool | InBounds, | ||
| Optional< unsigned > | InRangeIndex, | ||
| ArrayRef< Value *> | Idxs | ||
| ) |
Definition at line 2189 of file ConstantFold.cpp.
References llvm::MCID::Add, llvm::SmallVectorImpl< T >::append(), assert(), llvm::ArrayRef< T >::begin(), C, llvm::ArrayRef< T >::data(), dyn_cast(), llvm::numbers::e, E, llvm::SmallVectorBase::empty(), llvm::ArrayRef< T >::empty(), llvm::ArrayRef< T >::end(), gep_type_begin(), gep_type_end(), llvm::ConstantInt::get(), llvm::VectorType::get(), llvm::PointerType::get(), llvm::ConstantExpr::get(), llvm::UndefValue::get(), llvm::ConstantExpr::getAdd(), llvm::PointerType::getAddressSpace(), llvm::Type::getContext(), llvm::Value::getContext(), llvm::SequentialType::getElementType(), llvm::PointerType::getElementType(), llvm::GetElementPtrInst::getGEPReturnType(), llvm::ConstantExpr::getGetElementPtr(), llvm::GetElementPtrInst::getIndexedType(), llvm::Type::getIntegerBitWidth(), llvm::Type::getIntNTy(), llvm::Constant::getNullValue(), llvm::Type::getScalarSizeInBits(), llvm::Type::getScalarType(), llvm::ConstantExpr::getSDiv(), llvm::generic_gep_type_iterator< ItTy >::getSequentialNumElements(), llvm::ConstantExpr::getSExt(), llvm::ConstantExpr::getSExtOrBitCast(), llvm::ConstantVector::getSplat(), llvm::ConstantDataVector::getSplat(), llvm::ConstantExpr::getSRem(), getType(), llvm::Value::getType(), llvm::Type::getVectorNumElements(), I, InRange(), llvm::generic_gep_type_iterator< ItTy >::isBoundedSequential(), isInBoundsIndices(), isIndexInRangeOfArrayType(), llvm::Type::isIntOrIntVectorTy(), llvm::Constant::isNullValue(), llvm::generic_gep_type_iterator< ItTy >::isSequential(), llvm::Type::isVectorTy(), makeArrayRef(), max(), None, llvm::SmallVectorTemplateBase< T >::push_back(), llvm::SmallVectorImpl< T >::reserve(), llvm::SmallVectorImpl< T >::resize(), llvm::ArrayRef< T >::size(), and Unknown.
Referenced by llvm::ConstantExpr::getGetElementPtr().
| Constant * llvm::ConstantFoldInsertElementInstruction | ( | Constant * | Val, |
| Constant * | Elt, | ||
| Constant * | Idx | ||
| ) |
Attempt to constant fold an insertelement instruction with the specified operands and indices.
The constant result is returned if successful; if not, null is returned.
Definition at line 827 of file ConstantFold.cpp.
References C, dyn_cast(), llvm::ConstantInt::get(), llvm::ConstantVector::get(), llvm::UndefValue::get(), llvm::Value::getContext(), llvm::ConstantExpr::getExtractElement(), llvm::Type::getInt32Ty(), llvm::Value::getType(), llvm::Type::getVectorNumElements(), llvm::VectorType::isScalable(), llvm::SmallVectorTemplateBase< T >::push_back(), and llvm::SmallVectorImpl< T >::reserve().
Referenced by llvm::ConstantExpr::getInsertElement(), and SimplifyInsertElementInst().
| Constant * llvm::ConstantFoldInsertValueInstruction | ( | Constant * | Agg, |
| Constant * | Val, | ||
| ArrayRef< unsigned > | Idxs | ||
| ) |
ConstantFoldInsertValueInstruction - Attempt to constant fold an insertvalue instruction with the specified operands and indices.
The constant result is returned if successful; if not, null is returned.
Definition at line 922 of file ConstantFold.cpp.
References C, llvm::ArrayRef< T >::empty(), llvm::ConstantArray::get(), llvm::ConstantStruct::get(), llvm::ConstantVector::get(), llvm::Constant::getAggregateElement(), llvm::Value::getType(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::ArrayRef< T >::slice(), and llvm::ARM_MB::ST.
Referenced by llvm::ConstantExpr::getInsertValue(), and SimplifyInsertValueInst().
| Constant * llvm::ConstantFoldInstOperands | ( | Instruction * | I, |
| ArrayRef< Constant *> | Ops, | ||
| const DataLayout & | DL, | ||
| const TargetLibraryInfo * | TLI = nullptr |
||
| ) |
ConstantFoldInstOperands - Attempt to constant fold an instruction with the specified operands.
If successful, the constant result is returned, if not, null is returned. Note that this function can fail when attempting to fold instructions like loads and stores, which have no constant expression form.
Definition at line 1197 of file ConstantFolding.cpp.
References llvm::Instruction::getOpcode().
Referenced by alwaysAvailable(), BuildConstantFromSCEV(), ConstantFold(), ConstantFoldInstruction(), EvaluateExpression(), and SimplifyWithOpReplaced().
| Constant * llvm::ConstantFoldInstruction | ( | Instruction * | I, |
| const DataLayout & | DL, | ||
| const TargetLibraryInfo * | TLI = nullptr |
||
| ) |
ConstantFoldInstruction - Try to constant fold the specified instruction.
If successful, the constant result is returned, if not, null is returned. Note that this fails if not all of the operands are constant. Otherwise, this function can only fail when attempting to fold instructions like loads and stores, which have no constant expression form.
Definition at line 1120 of file ConstantFolding.cpp.
References all_of(), C, ConstantFoldCompareInstOperands(), ConstantFoldInstOperands(), dyn_cast(), llvm::UndefValue::get(), llvm::ConstantExpr::getExtractValue(), llvm::ConstantExpr::getInsertValue(), llvm::User::operands(), and llvm::SmallVectorTemplateBase< T >::push_back().
Referenced by AddReachableCodeToWorklist(), CleanupConstantGlobalUsers(), ConstantPropUsersOf(), createConstantPropagationPass(), hoistRegion(), llvm::JumpThreadingPass::ProcessBlock(), llvm::InstCombiner::run(), and SimplifyInstruction().
| Constant * llvm::ConstantFoldLoadFromConstPtr | ( | Constant * | C, |
| Type * | Ty, | ||
| const DataLayout & | DL | ||
| ) |
ConstantFoldLoadFromConstPtr - Return the value that a load from C would produce if it is constant and determinable.
If this is not determinable, return null.
Definition at line 623 of file ConstantFolding.cpp.
References assert(), llvm::ArrayRef< T >::back(), llvm::StringRef::bytes(), C, llvm::MCID::Call, canConstantFoldCallTo(), computeKnownBits(), ConstantFoldBinaryOpOperands(), ConstantFoldCall(), ConstantFoldCastOperand(), ConstantFoldCompareInstOperands(), ConstantFoldConstant(), ConstantFoldLoadThroughGEPConstantExpr(), ConstantFoldUnaryOpOperand(), llvm::ArrayRef< T >::data(), dyn_cast(), llvm::numbers::e, llvm::SmallVectorBase::empty(), llvm::StringRef::empty(), llvm::DenseMapBase< SmallDenseMap< KeyT, ValueT, InlineBuckets, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::end(), F(), llvm::DenseMapBase< SmallDenseMap< KeyT, ValueT, InlineBuckets, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::find(), FoldBitCast(), GEP, llvm::ConstantInt::get(), llvm::ConstantVector::get(), llvm::UndefValue::get(), llvm::ConstantExpr::getBitCast(), llvm::ConstantExpr::getCast(), llvm::CastInst::getCastOpcode(), llvm::KnownBits::getConstant(), getConstantStringInfo(), llvm::Type::getContext(), llvm::StructLayout::getElementContainingOffset(), llvm::ConstantExpr::getExtractElement(), llvm::ConstantExpr::getExtractValue(), llvm::ConstantExpr::getGetElementPtr(), llvm::DataLayout::getIndexedOffsetInType(), llvm::GetElementPtrInst::getIndexedType(), llvm::DataLayout::getIndexType(), llvm::GEPOperator::getInRangeIndex(), llvm::ConstantExpr::getInsertElement(), llvm::Type::getInt32Ty(), llvm::ConstantExpr::getIntToPtr(), llvm::Constant::getNullValue(), llvm::User::getOperand(), llvm::ConstantExpr::getPointerCast(), llvm::Type::getPointerElementType(), llvm::Type::getPointerTo(), llvm::Type::getPrimitiveSizeInBits(), llvm::ConstantExpr::getPtrToInt(), llvm::GEPOperator::getResultElementType(), llvm::Type::getScalarType(), llvm::ConstantExpr::getSelect(), llvm::ConstantExpr::getShuffleVector(), llvm::GEPOperator::getSourceElementType(), llvm::DataLayout::getStructLayout(), llvm::ConstantExpr::getSub(), getType(), llvm::Value::getType(), llvm::DataLayout::getTypeAllocSize(), llvm::DataLayout::getTypeSizeInBits(), GetUnderlyingObject(), llvm::APInt::getZExtValue(), I, llvm::DenseMapBase< SmallDenseMap< KeyT, ValueT, InlineBuckets, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::insert(), llvm::Instruction::isBinaryOp(), llvm::Instruction::isCast(), llvm::KnownBits::isConstant(), IsConstantOffsetFromGlobal(), llvm::Type::isFloatingPointTy(), llvm::GEPOperator::isInBounds(), llvm::Type::isIntegerTy(), llvm::DataLayout::isLittleEndian(), llvm::APInt::isNegative(), llvm::DataLayout::isNonIntegralPointerType(), llvm::APInt::isNullValue(), llvm::Type::isPointerTy(), llvm::Type::isSized(), llvm::Type::isStructTy(), llvm::Instruction::isUnaryOp(), llvm::LoadInst::isVolatile(), llvm_unreachable, makeArrayRef(), llvm::KnownBits::One, llvm::User::op_begin(), llvm::User::op_end(), llvm::User::operands(), llvm::SmallVectorTemplateBase< T >::push_back(), reverse(), llvm::APInt::sdiv_ov(), llvm::MCID::Select, llvm::SmallVectorBase::size(), llvm::StringRef::size(), llvm::ArrayRef< T >::size(), llvm::ArrayRef< T >::slice(), llvm::tgtok::StrVal, llvm::APInt::uge(), llvm::KnownBits::Zero, and llvm::APInt::zextOrTrunc().
Referenced by llvm::VNCoercion::analyzeLoadFromClobberingMemInst(), BuildConstantFromSCEV(), canConstantFoldCallTo(), ConstantFoldLoadThroughBitcast(), EvaluateExpression(), getMemCmpLoad(), llvm::VNCoercion::getMemInstValueForLoadHelper(), optimizeMemCmpConstantSize(), SimplifyRelativeLoad(), and SimplifyWithOpReplaced().
| Constant * llvm::ConstantFoldLoadThroughBitcast | ( | Constant * | C, |
| Type * | DestTy, | ||
| const DataLayout & | DL | ||
| ) |
ConstantFoldLoadThroughBitcast - try to cast constant to destination type returning null if unsuccessful.
Can cast pointer to pointer or pointer to integer and vice versa if their sizes are equal.
Definition at line 328 of file ConstantFolding.cpp.
References assert(), llvm::CastInst::castIsValid(), ConstantFoldLoadFromConstPtr(), dyn_cast(), FoldBitCast(), llvm::ConstantInt::get(), llvm::UndefValue::get(), llvm::Constant::getAggregateElement(), llvm::ConstantExpr::getCast(), llvm::Value::getContext(), llvm::StructLayout::getElementContainingOffset(), llvm::StructLayout::getElementOffset(), llvm::Type::getInt16Ty(), llvm::Type::getInt32Ty(), llvm::Type::getInt64Ty(), llvm::Type::getIntNTy(), llvm::DataLayout::getIntPtrType(), llvm::Constant::getNullValue(), llvm::User::getOperand(), llvm::Type::getPointerElementType(), llvm::Type::getPointerTo(), llvm::Type::getScalarType(), llvm::Type::getSequentialElementType(), llvm::APInt::getSExtValue(), llvm::DataLayout::getStructLayout(), llvm::Value::getType(), llvm::DataLayout::getTypeAllocSize(), llvm::DataLayout::getTypeSizeInBits(), llvm::Type::getVectorNumElements(), llvm::Type::isAggregateType(), IsConstantOffsetFromGlobal(), llvm::Type::isDoubleTy(), llvm::Type::isFloatTy(), llvm::Type::isHalfTy(), llvm::Type::isIntegerTy(), llvm::DataLayout::isLittleEndian(), llvm::DataLayout::isNonIntegralPointerType(), llvm::Type::isPointerTy(), llvm::Type::isPtrOrPtrVectorTy(), llvm::Type::isStructTy(), llvm::Type::isVectorTy(), and llvm::Type::isX86_MMXTy().
Referenced by llvm::Evaluator::castCallResultIfNeeded(), llvm::Evaluator::EvaluateBlock(), llvm::Evaluator::getCalleeWithFormalArgs(), llvm::Evaluator::getFormalParams(), and getInitializer().
| Constant * llvm::ConstantFoldLoadThroughGEPConstantExpr | ( | Constant * | C, |
| ConstantExpr * | CE | ||
| ) |
ConstantFoldLoadThroughGEPConstantExpr - Given a constant and a getelementptr constantexpr, return the constant value being addressed by the constant expression, or null if something is funny and we can't decide.
Definition at line 1370 of file ConstantFolding.cpp.
References C, llvm::numbers::e, llvm::Constant::getAggregateElement(), llvm::User::getNumOperands(), and llvm::User::getOperand().
Referenced by CleanupConstantGlobalUsers(), ConstantFoldLoadFromConstPtr(), getInitializer(), and isSimpleEnoughPointerToCommit().
ConstantFoldLoadThroughGEPIndices - Given a constant and getelementptr indices (with an implied zero pointer index that is not in the list), return the constant value being addressed by a virtual load, or null if something is funny and we can't decide.
Definition at line 1386 of file ConstantFolding.cpp.
References C, and llvm::Constant::getAggregateElement().
Referenced by EvaluateConstantChrecAtConstant().
Attempt to constant fold a select instruction with the specified operands.
The constant result is returned if successful; if not, null is returned.
Definition at line 733 of file ConstantFold.cpp.
Referenced by llvm::ConstantExpr::getSelect().
| Constant * llvm::ConstantFoldShuffleVectorInstruction | ( | Constant * | V1, |
| Constant * | V2, | ||
| Constant * | Mask | ||
| ) |
Attempt to constant fold a shufflevector instruction with the specified operands and indices.
The constant result is returned if successful; if not, null is returned.
Definition at line 863 of file ConstantFold.cpp.
References llvm::IntegerType::get(), llvm::ConstantInt::get(), llvm::VectorType::get(), llvm::ConstantVector::get(), llvm::UndefValue::get(), llvm::Value::getContext(), llvm::ConstantExpr::getExtractElement(), llvm::ShuffleVectorInst::getMaskValue(), llvm::Value::getType(), llvm::Type::getVectorElementType(), llvm::Type::getVectorNumElements(), llvm::VectorType::isScalable(), and llvm::SmallVectorTemplateBase< T >::push_back().
Referenced by llvm::ConstantExpr::getShuffleVector(), and SimplifyShuffleVectorInst().
| bool llvm::ConstantFoldTerminator | ( | BasicBlock * | BB, |
| bool | DeleteDeadConditions = false, |
||
| const TargetLibraryInfo * | TLI = nullptr, |
||
| DomTreeUpdater * | DTU = nullptr |
||
| ) |
If a terminator instruction is predicated on a constant value, convert it into an unconditional branch to the constant destination.
ConstantFoldTerminator - If a terminator instruction is predicated on a constant value, convert it into an unconditional branch to the constant destination.
This is a nontrivial operation because the successors of this basic block must have their PHI nodes updated. Also calls RecursivelyDeleteTriviallyDeadInstructions() on any branch/switch conditions and indirectbr addresses this might make dead if DeleteDeadConditions is true.
Definition at line 109 of file Local.cpp.
References llvm::BasicBlock::getTerminator().
Referenced by CloneAndPruneIntoFromInst(), createCodeGenPreparePass(), markAliveBlocks(), llvm::JumpThreadingPass::ProcessBlock(), removeUndefIntroducingPredecessor(), llvm::Attributor::run(), runIPSCCP(), and llvm::SimplifyCFGOptions::setAssumptionCache().
Definition at line 953 of file ConstantFold.cpp.
References assert(), C, llvm::numbers::e, llvm::IntegerType::get(), llvm::ConstantInt::get(), llvm::ConstantFP::get(), llvm::ConstantVector::get(), llvm::ConstantExpr::get(), llvm::Value::getContext(), llvm::ConstantExpr::getExtractElement(), llvm::Value::getType(), llvm::Instruction::isUnaryOp(), llvm::Type::isVectorTy(), llvm_unreachable, neg(), and llvm::SmallVectorTemplateBase< T >::push_back().
Referenced by llvm::ConstantExpr::get().
| Constant * llvm::ConstantFoldUnaryOpOperand | ( | unsigned | Opcode, |
| Constant * | Op, | ||
| const DataLayout & | DL | ||
| ) |
Attempt to constant fold a unary operation with the specified operand.
If it fails, it returns a constant expression of the specified operands.
Definition at line 1291 of file ConstantFolding.cpp.
References assert(), llvm::ConstantExpr::get(), and llvm::Instruction::isUnaryOp().
Referenced by ConstantFoldLoadFromConstPtr(), and foldConstant().
| unsigned llvm::ConstantMaterializationCost | ( | unsigned | Val, |
| const ARMSubtarget * | Subtarget, | ||
| bool | ForCodesize = false |
||
| ) |
Returns the number of instructions required to materialize the given constant in a register, or 3 if a literal pool load is needed.
If ForCodesize is specified, an approximate cost in bytes is returned.
Definition at line 5417 of file ARMBaseInstrInfo.cpp.
References llvm::ARM_AM::getSOImmVal(), llvm::ARM_AM::getT2SOImmVal(), llvm::ARMSubtarget::hasV6T2Ops(), llvm::ARM_AM::isSOImmTwoPartVal(), llvm::ARMSubtarget::isThumb(), llvm::ARM_AM::isThumbImmShiftedVal(), and llvm::ARMSubtarget::useMovt().
Referenced by getContiguousRangeOfSetBits(), and HasLowerConstantMaterializationCost().
| unsigned llvm::constrainOperandRegClass | ( | const MachineFunction & | MF, |
| const TargetRegisterInfo & | TRI, | ||
| MachineRegisterInfo & | MRI, | ||
| const TargetInstrInfo & | TII, | ||
| const RegisterBankInfo & | RBI, | ||
| MachineInstr & | InsertPt, | ||
| const TargetRegisterClass & | RegClass, | ||
| const MachineOperand & | RegMO, | ||
| unsigned | OpIdx | ||
| ) |
Constrain the Register operand OpIdx, so that it is now constrained to the TargetRegisterClass passed as an argument (RegClass).
If this fails, create a new virtual register in the correct class and insert a COPY before InsertPt if it is a use or after if it is a definition. The debug location of InsertPt is used for the new copy.
Definition at line 40 of file Utils.cpp.
References assert(), BuildMI(), constrainRegToClass(), llvm::MCInstrInfo::get(), llvm::MachineInstr::getDebugLoc(), llvm::MachineInstr::getParent(), llvm::MachineOperand::getReg(), llvm::MachineOperand::isDef(), llvm::MachineOperand::isUse(), llvm::Register::isVirtualRegister(), and Reg.
Referenced by computeBytesPoppedByCalleeForSRet(), constrainOperandRegClass(), llvm::InstructionSelector::constrainOperandRegToRegClass(), constrainSelectedInstRegOperands(), getCallOpcode(), getCompareCC(), getComparePred(), getX86SSEConditionCode(), isMulPowOf2(), llvm::X86CallLowering::lowerCall(), llvm::ARMCallLowering::lowerCall(), and llvm::AArch64CallLowering::lowerCall().
| unsigned llvm::constrainOperandRegClass | ( | const MachineFunction & | MF, |
| const TargetRegisterInfo & | TRI, | ||
| MachineRegisterInfo & | MRI, | ||
| const TargetInstrInfo & | TII, | ||
| const RegisterBankInfo & | RBI, | ||
| MachineInstr & | InsertPt, | ||
| const MCInstrDesc & | II, | ||
| const MachineOperand & | RegMO, | ||
| unsigned | OpIdx | ||
| ) |
Try to constrain Reg so that it is usable by argument OpIdx of the provided MCInstrDesc II.
If this fails, create a new virtual register in the correct class and insert a COPY before InsertPt if it is a use or after if it is a definition. This is equivalent to constrainOperandRegClass(..., RegClass, ...) with RegClass obtained from the MCInstrDesc. The debug location of InsertPt is used for the new copy.
Definition at line 70 of file Utils.cpp.
References assert(), constrainOperandRegClass(), llvm::TargetRegisterInfo::getConstrainedRegClassForOperand(), llvm::MCInstrDesc::getOpcode(), llvm::MachineOperand::getReg(), llvm::TargetInstrInfo::getRegClass(), llvm::TargetRegisterClass::isAllocatable(), isTargetSpecificOpcode(), llvm::MachineOperand::isUse(), llvm::Register::isVirtualRegister(), and Reg.
| unsigned llvm::constrainRegToClass | ( | MachineRegisterInfo & | MRI, |
| const TargetInstrInfo & | TII, | ||
| const RegisterBankInfo & | RBI, | ||
| unsigned | Reg, | ||
| const TargetRegisterClass & | RegClass | ||
| ) |
Try to constrain Reg to the specified register class.
If this fails, create a new virtual register in the correct class.
Definition at line 30 of file Utils.cpp.
References llvm::RegisterBankInfo::constrainGenericRegister(), llvm::MachineRegisterInfo::createVirtualRegister(), and Reg.
Referenced by constrainOperandRegClass().
| bool llvm::constrainSelectedInstRegOperands | ( | MachineInstr & | I, |
| const TargetInstrInfo & | TII, | ||
| const TargetRegisterInfo & | TRI, | ||
| const RegisterBankInfo & | RBI | ||
| ) |
Mutate the newly-selected instruction I to constrain its (possibly generic) virtual register operands to the instruction's register class.
This could involve inserting COPYs before (for uses) or after (for defs). This requires the number of operands to match the instruction description.
Definition at line 111 of file Utils.cpp.
References assert(), constrainOperandRegClass(), dbgs(), llvm::MachineInstr::getDesc(), llvm::MachineInstr::getNumExplicitOperands(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MCInstrDesc::getOperandConstraint(), llvm::MachineBasicBlock::getParent(), llvm::MachineInstr::getParent(), llvm::MachineOperand::getReg(), llvm::MachineFunction::getRegInfo(), llvm::Register::isPhysicalRegister(), isPreISelGenericOpcode(), llvm::MachineOperand::isReg(), llvm::MachineInstr::isRegTiedToUseOperand(), llvm::MachineOperand::isUse(), LLVM_DEBUG, MRI, Reg, llvm::MachineOperand::setReg(), llvm::MCOI::TIED_TO, and llvm::MachineInstr::tieOperands().
Referenced by canTurnIntoCOPY(), llvm::MachineInstrBuilder::constrainAllUses(), llvm::InstructionSelector::executeMatchTable(), findIntrinsicID(), getBufferStoreFormatOpcode(), getDSShaderTypeValue(), getInsertVecEltOpInfo(), getLaneCopyOpcode(), getLeaOP(), getLogicalBitOpcode(), getV_CMPOpcode(), getVectorSHLImm(), llvm::MipsLegalizerInfo::legalizeIntrinsic(), llvm::AMDGPURegisterBankInfo::selectStoreIntrinsic(), shouldUseAndMask(), and X86SelectAddress().
|
inline |
Consume a Error without doing anything.
This method should be used only where an error can be considered a reasonable and expected return value.
Uses of this method are potentially indicative of design problems: If it's legitimate to do nothing while processing an "error", the error-producer might be more clearly refactored to return an Optional<T>.
Definition at line 1001 of file Error.h.
Referenced by llvm::DWARFDie::addressRangeContainsAddress(), llvm::APFloat::APFloat(), llvm::object::BindRebaseSegInfo::BindRebaseSegInfo(), llvm::DWARFDie::collectChildrenAddressRanges(), collectPGOFuncNameStrings(), llvm::codeview::computeTypeName(), llvm::orc::rpc::detail::ResultTraits< RetT >::consumeAbandoned(), llvm::object::SectionRef::containsSymbol(), llvm::coverage::BinaryCoverageReader::create(), llvm::sys::fs::TempFile::create(), llvm::pdb::SymbolCache::createGlobalsEnumerator(), createOnDiskBuffer(), llvm::pdb::SymbolCache::createTypeEnumerator(), llvm::coverage::CounterMappingContext::dump(), llvm::DWARFDebugNames::dump(), llvm::DWARFLocationTable::dumpLocationList(), error(), llvm::coverage::CounterMappingContext::evaluate(), expectedToOptional(), llvm::codeview::FieldListDeserializer::FieldListDeserializer(), llvm::RuntimeDyldMachOCRTPBase< RuntimeDyldMachOX86_64 >::finalizeLoad(), llvm::RuntimeDyldELF::finalizeLoad(), llvm::RuntimeDyldMachOI386::finalizeSection(), llvm::RuntimeDyldMachOARM::finalizeSection(), llvm::MCJIT::findSymbol(), llvm::pdb::SymbolCache::findSymbolByTypeIndex(), llvm::symbolize::LLVMSymbolizer::flush(), getAccelTable(), llvm::pdb::NativeExeSymbol::getAge(), getDbiStreamPtr(), llvm::DWARFContext::getDWOContext(), getExpressionFrameOffset(), llvm::codeview::LazyRandomTypeCollection::getFirst(), llvm::pdb::NativeExeSymbol::getGuid(), llvm::pdb::NativeSession::getInjectedSources(), llvm::msf::MappedBlockStream::getLength(), llvm::codeview::LazyRandomTypeCollection::getNext(), llvm::object::Archive::Child::getNext(), llvm::sys::Process::getPageSizeEstimate(), llvm::object::getSecIndexForError(), llvm::object::ELFObjectFile< ELFT >::getSymbolFlags(), llvm::object::ELFObjectFile< ELFT >::getSymbolName(), getSymbols(), llvm::IndexedInstrProfReader::getSymtab(), llvm::codeview::LazyRandomTypeCollection::getTypeName(), getUdtOptions(), llvm::DWARFVerifier::handleDebugInfo(), llvm::pdb::NativeExeSymbol::hasCTypes(), llvm::pdb::PDBFile::hasPDBGlobalsStream(), llvm::pdb::PDBFile::hasPDBInjectedSourceStream(), llvm::pdb::PDBFile::hasPDBPublicsStream(), llvm::pdb::PDBFile::hasPDBStringTable(), llvm::pdb::NativeExeSymbol::hasPrivateSymbols(), llvm::object::Decompressor::isCompressed(), isIFunc(), llvm::object::ObjectFile::isSectionBitcode(), isVariableIndexable(), llvm::remarks::RemarkLinker::link(), LLVMCreateObjectFile(), LLVMRemarkParserGetNext(), llvm::xray::loadInstrumentationMap(), loadObj(), llvm::lto::localCache(), llvm::MSVCPExpected< T >::MSVCPExpected(), llvm::VarStreamArrayIterator< ValueType, Extractor >::operator+=(), llvm::pdb::DbiModuleSourceFilesIterator::operator-=(), llvm::FixedStreamArray< PSHashRecord >::operator[](), llvm::object::WindowsResourceParser::parse(), llvm::pdb::PDBFile::parseFileHeaders(), llvm::BinaryStreamReader::peek(), popFront(), PrintNoMatch(), llvm::RuntimeDyldELF::processRelocationRef(), readPGOFuncNameStrings(), llvm::pdb::TpiStream::reload(), llvm::codeview::StringsAndChecksumsRef::setChecksums(), llvm::orc::OrcMCJITReplacement::setProcessAllSections(), llvm::codeview::StringsAndChecksumsRef::StringsAndChecksumsRef(), llvm::object::SymbolicFile::SymbolicFile(), llvm::codeview::LazyRandomTypeCollection::tryGetType(), llvm::DWARFUnit::updateAddressDieMap(), llvm::VarStreamArrayIterator< ValueType, Extractor >::VarStreamArrayIterator(), llvm::codeview::SymbolSerializer::writeOneSymbol(), llvm::detail::ErrorAdapter::~ErrorAdapter(), llvm::codeview::FieldListDeserializer::~FieldListDeserializer(), and llvm::orc::LegacyCompileOnDemandLayer< BaseLayerT, CompileCallbackMgrT, IndirectStubsMgrT >::~LegacyCompileOnDemandLayer().
Definition at line 464 of file StringRef.cpp.
References consumeUnsignedInteger(), llvm::StringRef::drop_front(), llvm::StringRef::empty(), and llvm::StringRef::front().
Referenced by llvm::StringRef::consumeInteger(), and getAsSignedInteger().
Definition at line 416 of file StringRef.cpp.
References llvm::StringRef::empty(), GetAutoSenseRadix(), llvm::StringRef::size(), and llvm::StringRef::substr().
Referenced by llvm::StringRef::consumeInteger(), consumeSignedInteger(), and getAsUnsignedInteger().
| bool llvm::containsIrreducibleCFG | ( | RPOTraversalT & | RPOTraversal, |
| const LoopInfoT & | LI | ||
| ) |
Return true if the control flow in RPOTraversal is irreducible.
This is a generic implementation to detect CFG irreducibility based on loop info analysis. It can be used for any kind of CFG (Loop, MachineLoop, Function, MachineFunction, etc.) by providing an RPO traversal (RPOTraversal) and the loop info analysis (LI) of the CFG. This utility function is only recommended when loop info analysis is available. If loop info analysis isn't available, please, don't compute it explicitly for this purpose. There are more efficient ways to detect CFG irreducibility that don't require recomputing loop info analysis (e.g., T1/T2 or Tarjan's algorithm).
Requirements: 1) GraphTraits must be implemented for NodeT type. It is used to access NodeT successors. target CFG with begin()/end() iterator interfaces. 3) LI must be a valid LoopInfoBase that contains up-to-date loop analysis information of the CFG.
This algorithm uses the information about reducible loop back-edges already computed in LI. When a back-edge is found during the RPO traversal, the algorithm checks whether the back-edge is one of the reducible back-edges in loop info. If it isn't, the CFG is irreducible. For example, for the CFG below (canonical irreducible graph) loop info won't contain any loop, so the algorithm will return that the CFG is irreducible when checking the B <- -> C back-edge.
(A->B, A->C, B->C, C->B, C->D) A / \ B<- ->C | D
Check whether the edge (Src, Dst) is a reducible loop backedge according to LI. I.e., check if there exists a loop that contains Src and where Dst is the loop header.
Definition at line 145 of file CFG.h.
References llvm::SmallPtrSetImpl< PtrType >::count(), llvm::SmallPtrSetImpl< PtrType >::insert(), and make_range().
Referenced by llvm::LegacyDivergenceAnalysis::getAnalysisUsage(), and mayContainIrreducibleControl().
Map pseudo instructions that imply an 'S' bit onto real opcodes.
Whether the instruction is encoded with an 'S' bit is determined by the optional CPSR def operand.
Definition at line 2347 of file ARMBaseInstrInfo.cpp.
References array_lengthof(), llvm::numbers::e, and AddSubFlagsOpcodePair::MachineOpc.
Referenced by llvm::ARMAsmPrinter::EmitInstruction(), and isValidCoprocessorNumber().
Convert an Unicode code point to UTF8 sequence.
| Source | a Unicode code point. | |
| [in,out] | ResultPtr | pointer to the output buffer, needs to be at least UNI_MAX_UTF8_BYTES_PER_CODE_POINT bytes. On success ResultPtr is updated one past end of the converted sequence. |
Definition at line 65 of file ConvertUTFWrapper.cpp.
References conversionOK, ConvertUTF32toUTF8(), llvm::Sched::Source, and strictConversion.
|
inline |
Find in type conversion cost table, TypeTy must be comparable to CompareTy by ==.
Definition at line 54 of file CostTable.h.
References llvm::TypeConversionCostTblEntry::Dst, llvm::ArrayRef< T >::end(), find_if(), I, llvm::TypeConversionCostTblEntry::ISD, and llvm::TypeConversionCostTblEntry::Src.
Referenced by llvm::AArch64TTIImpl::getCastInstrCost(), llvm::X86TTIImpl::getCastInstrCost(), llvm::ARMTTIImpl::getCastInstrCost(), llvm::AArch64TTIImpl::getCmpSelInstrCost(), and llvm::ARMTTIImpl::getCmpSelInstrCost().
| void llvm::ConvertDebugDeclareToDebugValue | ( | DbgVariableIntrinsic * | DII, |
| StoreInst * | SI, | ||
| DIBuilder & | Builder | ||
| ) |
===---------------------------------------------------------------——===// Dbg Intrinsic utilities
Inserts a llvm.dbg.value intrinsic before a store to an alloca'd value that has an associated llvm.dbg.declare or llvm.dbg.addr intrinsic.
Definition at line 1287 of file Local.cpp.
References assert(), dbgs(), llvm::UndefValue::get(), getDebugValueLoc(), llvm::DbgVariableIntrinsic::getExpression(), llvm::Value::getType(), llvm::StoreInst::getValueOperand(), llvm::DbgVariableIntrinsic::getVariable(), llvm::DbgVariableIntrinsic::isAddressOfVariable(), LdStHasDebugValue(), LLVM_DEBUG, and valueCoversEntireFragment().
Referenced by getKnownAlignment(), LowerDbgDeclare(), promoteSingleBlockAlloca(), rewriteSingleStoreAlloca(), updateForIncomingValueLocation(), and llvm::InstCombiner::visitAllocSite().
| void llvm::ConvertDebugDeclareToDebugValue | ( | DbgVariableIntrinsic * | DII, |
| LoadInst * | LI, | ||
| DIBuilder & | Builder | ||
| ) |
Inserts a llvm.dbg.value intrinsic before a load of an alloca'd value that has an associated llvm.dbg.declare or llvm.dbg.addr intrinsic.
Definition at line 1317 of file Local.cpp.
References assert(), dbgs(), getDebugValueLoc(), llvm::DbgVariableIntrinsic::getExpression(), llvm::Value::getType(), llvm::DbgVariableIntrinsic::getVariable(), llvm::Instruction::insertAfter(), LdStHasDebugValue(), LLVM_DEBUG, and valueCoversEntireFragment().
| void llvm::ConvertDebugDeclareToDebugValue | ( | DbgVariableIntrinsic * | DII, |
| PHINode * | APN, | ||
| DIBuilder & | Builder | ||
| ) |
Inserts a llvm.dbg.value intrinsic after a phi that has an associated llvm.dbg.declare or llvm.dbg.addr intrinsic.
Definition at line 1348 of file Local.cpp.
References assert(), dbgs(), llvm::BasicBlock::end(), getDebugValueLoc(), llvm::DbgVariableIntrinsic::getExpression(), llvm::BasicBlock::getFirstInsertionPt(), llvm::Instruction::getParent(), llvm::Value::getType(), llvm::DbgVariableIntrinsic::getVariable(), LLVM_DEBUG, PhiHasDebugValue(), and valueCoversEntireFragment().
|
static |
Definition at line 369 of file LoopVectorizationLegality.cpp.
References llvm::Type::getContext(), llvm::Type::getInt32Ty(), llvm::DataLayout::getIntPtrType(), llvm::Type::getScalarSizeInBits(), and llvm::Type::isPointerTy().
Referenced by getWiderType(), and llvm::LoopVectorizationLegality::isUniform().
| bool llvm::convertToDeclaration | ( | GlobalValue & | GV | ) |
Converts value GV to declaration, or replaces with a declaration if it is an alias.
Returns true if converted, false if replaced.
Definition at line 949 of file FunctionImport.cpp.
References llvm::Function::Create(), dbgs(), llvm::GlobalValue::ExternalLinkage, F(), llvm::GlobalValue::getAddressSpace(), llvm::PointerType::getAddressSpace(), llvm::Value::getName(), llvm::GlobalValue::getParent(), llvm::GlobalValue::getThreadLocalMode(), llvm::GlobalValue::getType(), llvm::GlobalValue::getValueType(), llvm::Type::isFunctionTy(), LLVM_DEBUG, llvm::Value::replaceAllUsesWith(), and llvm::Value::takeName().
Referenced by dropDeadSymbols(), and thinLTOResolvePrevailingInModule().
| ConversionResult llvm::ConvertUTF16toUTF32 | ( | const UTF16 ** | sourceStart, |
| const UTF16 * | sourceEnd, | ||
| UTF32 ** | targetStart, | ||
| UTF32 * | targetEnd, | ||
| ConversionFlags | flags | ||
| ) |
Definition at line 193 of file ConvertUTF.cpp.
References conversionOK, sourceExhausted, sourceIllegal, strictConversion, targetExhausted, UNI_SUR_HIGH_END, UNI_SUR_HIGH_START, UNI_SUR_LOW_END, and UNI_SUR_LOW_START.
| ConversionResult llvm::ConvertUTF16toUTF8 | ( | const UTF16 ** | sourceStart, |
| const UTF16 * | sourceEnd, | ||
| UTF8 ** | targetStart, | ||
| UTF8 * | targetEnd, | ||
| ConversionFlags | flags | ||
| ) |
Definition at line 247 of file ConvertUTF.cpp.
References conversionOK, sourceExhausted, sourceIllegal, strictConversion, targetExhausted, UNI_REPLACEMENT_CHAR, UNI_SUR_HIGH_END, UNI_SUR_HIGH_START, UNI_SUR_LOW_END, and UNI_SUR_LOW_START.
Referenced by convertUTF16ToUTF8String().
Converts a stream of raw bytes assumed to be UTF16 into a UTF8 std::string.
| [in] | SrcBytes | A buffer of what is assumed to be UTF-16 encoded text. |
| [out] | Out | Converted UTF-8 is stored here on success. |
Definition at line 86 of file ConvertUTFWrapper.cpp.
References assert(), llvm::ArrayRef< T >::begin(), conversionOK, ConvertUTF16toUTF8(), E, llvm::ArrayRef< T >::empty(), llvm::ArrayRef< T >::end(), I, llvm::ArrayRef< T >::size(), strictConversion, llvm::sys::SwapByteOrder_16(), targetExhausted, UNI_MAX_UTF8_BYTES_PER_CODE_POINT, UNI_UTF16_BYTE_ORDER_MARK_NATIVE, and UNI_UTF16_BYTE_ORDER_MARK_SWAPPED.
Referenced by llvm::object::convertUTF16LEToUTF8String(), convertUTF16ToUTF8String(), convertUTF8Sequence(), ExpandResponseFile(), llvm::object::MinidumpFile::getString(), llvm::pdb::DIARawSymbol::getUndecoratedNameEx(), and invokeBstrMethod().
Converts a UTF16 string into a UTF8 std::string.
| [in] | Src | A buffer of UTF-16 encoded text. |
| [out] | Out | Converted UTF-8 is stored here on success. |
Definition at line 135 of file ConvertUTFWrapper.cpp.
References convertUTF16ToUTF8String(), llvm::ArrayRef< T >::data(), and llvm::ArrayRef< T >::size().
| ConversionResult llvm::ConvertUTF32toUTF16 | ( | const UTF32 ** | sourceStart, |
| const UTF32 * | sourceEnd, | ||
| UTF16 ** | targetStart, | ||
| UTF16 * | targetEnd, | ||
| ConversionFlags | flags | ||
| ) |
Definition at line 144 of file ConvertUTF.cpp.
References conversionOK, halfBase, sourceIllegal, strictConversion, targetExhausted, UNI_MAX_BMP, UNI_MAX_LEGAL_UTF32, UNI_REPLACEMENT_CHAR, UNI_SUR_HIGH_START, UNI_SUR_LOW_END, and UNI_SUR_LOW_START.
| ConversionResult llvm::ConvertUTF32toUTF8 | ( | const UTF32 ** | sourceStart, |
| const UTF32 * | sourceEnd, | ||
| UTF8 ** | targetStart, | ||
| UTF8 * | targetEnd, | ||
| ConversionFlags | flags | ||
| ) |
Definition at line 317 of file ConvertUTF.cpp.
References conversionOK, sourceIllegal, strictConversion, targetExhausted, UNI_MAX_LEGAL_UTF32, UNI_REPLACEMENT_CHAR, UNI_SUR_HIGH_START, and UNI_SUR_LOW_END.
Referenced by ConvertCodePointToUTF8(), llvm::json::fixUTF8(), and toUTF8().
|
inline |
Convert the first UTF8 sequence in the given source buffer to a UTF32 code point.
| [in,out] | source | A pointer to the source buffer. If the conversion succeeds, this pointer will be updated to point to the byte just past the end of the converted sequence. |
| sourceEnd | A pointer just past the end of the source buffer. | |
| [out] | target | The converted code |
| flags | Whether the conversion is strict or lenient. |
Definition at line 245 of file ConvertUTF.h.
References convertUTF16ToUTF8String(), convertUTF8ToUTF16String(), ConvertUTF8toUTF32(), getNumBytesForUTF8(), hasUTF16ByteOrderMark(), size(), and sourceExhausted.
| ConversionResult llvm::ConvertUTF8toUTF16 | ( | const UTF8 ** | sourceStart, |
| const UTF8 * | sourceEnd, | ||
| UTF16 ** | targetStart, | ||
| UTF16 * | targetEnd, | ||
| ConversionFlags | flags | ||
| ) |
Definition at line 541 of file ConvertUTF.cpp.
References conversionOK, halfBase, isLegalUTF8(), sourceExhausted, sourceIllegal, strictConversion, targetExhausted, UNI_MAX_BMP, UNI_MAX_UTF16, UNI_REPLACEMENT_CHAR, UNI_SUR_HIGH_START, UNI_SUR_LOW_END, and UNI_SUR_LOW_START.
Referenced by convertUTF8ToUTF16String(), and ConvertUTF8toWide().
| bool llvm::convertUTF8ToUTF16String | ( | StringRef | SrcUTF8, |
| SmallVectorImpl< UTF16 > & | DstUTF16 | ||
| ) |
Converts a UTF-8 string into a UTF-16 string with native endianness.
Definition at line 142 of file ConvertUTFWrapper.cpp.
References assert(), llvm::StringRef::begin(), llvm::SmallVectorImpl< T >::clear(), conversionOK, ConvertUTF8toUTF16(), llvm::SmallVectorBase::empty(), llvm::StringRef::empty(), llvm::StringRef::end(), llvm::SmallVectorTemplateBase< T >::pop_back(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::SmallVectorImpl< T >::resize(), llvm::SmallVectorBase::size(), llvm::StringRef::size(), strictConversion, and targetExhausted.
Referenced by convertUTF8Sequence(), llvm::pdb::DIASession::createFromExe(), llvm::pdb::DIASession::createFromPdb(), llvm::pdb::DIARawSymbol::findChildren(), llvm::pdb::DIARawSymbol::findChildrenByAddr(), llvm::pdb::DIARawSymbol::findChildrenByRVA(), and llvm::pdb::DIARawSymbol::findChildrenByVA().
| ConversionResult llvm::ConvertUTF8toUTF32 | ( | const UTF8 ** | sourceStart, |
| const UTF8 * | sourceEnd, | ||
| UTF32 ** | targetStart, | ||
| UTF32 * | targetEnd, | ||
| ConversionFlags | flags | ||
| ) |
Convert a partial UTF8 sequence to UTF32.
If the sequence ends in an incomplete code unit sequence, returns sourceIllegal.
Definition at line 710 of file ConvertUTF.cpp.
References ConvertUTF8toUTF32Impl(), and ConvertUTF_RESTORE_WARNINGS.
Referenced by chopOneUTF32(), convertUTF8Sequence(), ConvertUTF8toWide(), and llvm::json::fixUTF8().
|
static |
Definition at line 614 of file ConvertUTF.cpp.
References conversionOK, findMaximalSubpartOfIllFormedUTF8Sequence(), isLegalUTF8(), sourceExhausted, sourceIllegal, strictConversion, targetExhausted, UNI_MAX_LEGAL_UTF32, UNI_REPLACEMENT_CHAR, UNI_SUR_HIGH_START, and UNI_SUR_LOW_END.
Referenced by ConvertUTF8toUTF32(), and ConvertUTF8toUTF32Partial().
| ConversionResult llvm::ConvertUTF8toUTF32Partial | ( | const UTF8 ** | sourceStart, |
| const UTF8 * | sourceEnd, | ||
| UTF32 ** | targetStart, | ||
| UTF32 * | targetEnd, | ||
| ConversionFlags | flags | ||
| ) |
Convert a partial UTF8 sequence to UTF32.
If the sequence ends in an incomplete code unit sequence, returns sourceExhausted.
Definition at line 701 of file ConvertUTF.cpp.
References ConvertUTF8toUTF32Impl().
| bool llvm::ConvertUTF8toWide | ( | unsigned | WideCharWidth, |
| llvm::StringRef | Source, | ||
| char *& | ResultPtr, | ||
| const UTF8 *& | ErrorPtr | ||
| ) |
Convert an UTF8 StringRef to UTF8, UTF16, or UTF32 depending on WideCharWidth.
The converted data is written to ResultPtr, which needs to point to at least WideCharWidth * (Source.Size() + 1) bytes. On success, ResultPtr will point one after the end of the copied string. On failure, ResultPtr will not be changed, and ErrorPtr will be set to the location of the first character which could not be converted.
Definition at line 19 of file ConvertUTFWrapper.cpp.
References assert(), llvm::StringRef::begin(), conversionOK, ConvertUTF8toUTF16(), ConvertUTF8toUTF32(), llvm::StringRef::data(), llvm::StringRef::end(), isLegalUTF8String(), llvm::StringRef::size(), sourceIllegal, strictConversion, and targetExhausted.
Referenced by ConvertUTF8toWide(), and ConvertUTF8toWideInternal().
| bool llvm::ConvertUTF8toWide | ( | llvm::StringRef | Source, |
| std::wstring & | Result | ||
| ) |
Converts a UTF-8 StringRef to a std::wstring.
Definition at line 201 of file ConvertUTFWrapper.cpp.
References ConvertUTF8toWideInternal().
Converts a UTF-8 C-string to a std::wstring.
Definition at line 205 of file ConvertUTFWrapper.cpp.
References ConvertUTF8toWide().
|
inlinestatic |
Definition at line 185 of file ConvertUTFWrapper.cpp.
References ConvertUTF8toWide(), llvm::StringRef::size(), and llvm::Sched::Source.
Referenced by ConvertUTF8toWide().
Converts a std::wstring to a UTF-8 encoded std::string.
Definition at line 213 of file ConvertUTFWrapper.cpp.
| OutputIt llvm::copy | ( | R && | Range, |
| OutputIt | Out | ||
| ) |
Definition at line 1234 of file STLExtras.h.
References adl_begin(), and adl_end().
Referenced by llvm::sampleprof::ProfileSymbolList::add(), llvm::MachineFunction::allocateShuffleMask(), llvm::PBQP::RegAlloc::AllowedRegVector::AllowedRegVector(), alwaysAvailable(), llvm::SelectInst::areInvalidOperands(), llvm::AttributeListImpl::AttributeListImpl(), buildFixItLine(), CHRScopeSorter(), llvm::object::coffnamecpy(), llvm::ConstantAggregate::ConstantAggregate(), llvm::detail::IEEEFloat::convertFromSignExtendedInteger(), llvm::object::convertUTF16LEToUTF8String(), llvm::StringRef::copy(), llvm::SmallPtrSetImplBase::CopyFrom(), llvm::GlobalObject::copyMetadata(), llvm::MachineFunction::createExternalSymbolName(), llvm::CallInst::CreateFree(), createLibcall(), createMemLibcall(), llvm::DiagnosticInfoIROptimization::DiagnosticInfoIROptimization(), llvm::GVNExpression::Expression::dump(), llvm::AttributeSet::dump(), llvm::FenceInst::FenceInst(), llvm::LiveRange::findIndexesLiveAt(), llvm::IRTranslator::getAnalysisUsage(), llvm::ExecutionEngine::getGlobalValueAtAddress(), llvm::InvokeInst::getLandingPadInst(), llvm::MachineTraceMetrics::Ensemble::getLoopFor(), llvm::DwarfUnit::getMD5AsBytes(), llvm::object::MinidumpFile::getString(), llvm::SelectionDAG::getVectorShuffle(), llvm::SelectionDAG::getVTList(), llvm::User::growHungoffUses(), llvm::yaml::ScalarTraits< FixedSizeHex< N > >::input(), llvm::yaml::ScalarTraits< FixedSizeString< N > >::input(), llvm::SmallVectorImpl< std::pair< llvm::RelocationValueRef, llvm::RelocationEntry > >::insert(), llvm::SparseBitVector< ElementSize >::intersectWithComplement(), LLVMGetRelocationTypeName(), AbstractManglingParser< ManglingParser< Alloc >, Alloc >::makeNodeArray(), llvm::PBQP::Matrix::Matrix(), llvm::xray::mergeProfilesByStack(), llvm::xray::mergeProfilesByThread(), llvm::SmallPtrSetImplBase::MoveFrom(), llvm::IntervalMapImpl::NodeBase< std::pair< KeyT, KeyT >, ValT, N >::moveLeft(), llvm::PBQP::RegAlloc::NodeMetadata::NodeMetadata(), llvm::SmallVectorImpl< std::pair< llvm::RelocationValueRef, llvm::RelocationEntry > >::operator=(), PODSmallVector< Node *, 8 >::operator=(), llvm::OwningArrayRef< T >::OwningArrayRef(), PODSmallVector< Node *, 8 >::PODSmallVector(), llvm::CallBase::populateBundleOperandInfos(), promoteToConstantPool(), llvm::CatchSwitchInst::removeHandler(), llvm::PHINode::removeIncomingValue(), reorderSubVector(), repeat(), llvm::sys::path::replace_path_prefix(), llvm::orc::runAsMain(), llvm::BlockFrequencyInfoImpl< llvm::BitTracker >::setBlockFreq(), llvm::SelectionDAG::setNodeMemRefs(), llvm::SmallPtrSetImplBase::swap(), llvm::LiveIntervals::HMEditor::updateAllRanges(), llvm::PBQP::Vector::Vector(), and writeIdentificationBlock().
| OutputIt llvm::copy_if | ( | R && | Range, |
| OutputIt | Out, | ||
| UnaryPredicate | P | ||
| ) |
Provide wrappers to std::copy_if which take ranges instead of having to pass begin/end explicitly.
Definition at line 1229 of file STLExtras.h.
References adl_begin(), and adl_end().
Referenced by addNonNullAttrs(), isLoadConditional(), isSupportedGuardInstruction(), lowerV16I8Shuffle(), and lowerV8I16GeneralSingleInputShuffle().
Copy the metadata from the source instruction to the destination (the replacement for the source instruction).
Definition at line 2393 of file Local.cpp.
References copyNonnullMetadata(), copyRangeMetadata(), llvm::Instruction::getAllMetadata(), llvm::Value::getContext(), llvm::Module::getDataLayout(), llvm::Instruction::getModule(), llvm::Value::getType(), N, and llvm::Instruction::setMetadata().
Referenced by llvm::InstCombiner::combineLoadToNewType(), and getKnownAlignment().
Copy a nonnull metadata node to a new load instruction.
This handles mapping it to range metadata if the new load is an integer load instead of a pointer load.
Definition at line 2558 of file Local.cpp.
References llvm::ConstantInt::get(), llvm::ConstantPointerNull::get(), llvm::ConstantExpr::getAdd(), llvm::Value::getContext(), llvm::LoadInst::getPointerOperand(), llvm::ConstantExpr::getPtrToInt(), llvm::Value::getType(), and llvm::Instruction::setMetadata().
Referenced by copyMetadataForLoad(), getKnownAlignment(), and llvm::sroa::AllocaSliceRewriter::visit().
| void llvm::copyRangeMetadata | ( | const DataLayout & | DL, |
| const LoadInst & | OldLI, | ||
| MDNode * | N, | ||
| LoadInst & | NewLI | ||
| ) |
Copy a range metadata node to a new load instruction.
This handles mapping it to nonnull metadata if the new load is a pointer load instead of an integer load and the range doesn't cover null.
Definition at line 2583 of file Local.cpp.
References llvm::ConstantRange::contains(), llvm::MDNode::get(), getConstantRangeFromMetadata(), llvm::Value::getContext(), llvm::DataLayout::getPointerTypeSizeInBits(), llvm::Value::getType(), None, and llvm::Instruction::setMetadata().
Referenced by copyMetadataForLoad(), and getKnownAlignment().
|
inline |
Find in cost table, TypeTy must be comparable to CompareTy by ==.
Definition at line 31 of file CostTable.h.
References llvm::ArrayRef< T >::end(), find_if(), I, llvm::CostTblEntry::ISD, and llvm::CostTblEntry::Type.
Referenced by llvm::X86TTIImpl::getArithmeticInstrCost(), llvm::ARMTTIImpl::getArithmeticInstrCost(), llvm::X86TTIImpl::getArithmeticReductionCost(), llvm::AArch64TTIImpl::getArithmeticReductionCost(), llvm::ARMTTIImpl::getCastInstrCost(), llvm::X86TTIImpl::getCmpSelInstrCost(), llvm::X86TTIImpl::getInterleavedMemoryOpCostAVX2(), llvm::X86TTIImpl::getInterleavedMemoryOpCostAVX512(), llvm::X86TTIImpl::getIntrinsicInstrCost(), llvm::X86TTIImpl::getMinMaxReductionCost(), llvm::X86TTIImpl::getShuffleCost(), llvm::ARMTTIImpl::getShuffleCost(), llvm::AArch64TTIImpl::getShuffleCost(), and llvm::X86TTIImpl::getVectorInstrCost().
| auto llvm::count | ( | R && | Range, |
| const E & | Element | ||
| ) | -> typename std::iterator_traits<decltype(adl_begin(Range))>::difference_type |
Wrapper function around std::count to count the number of times an element Element occurs in the given range Range.
Definition at line 1248 of file STLExtras.h.
References adl_begin(), and adl_end().
Referenced by checkThreadCommand(), clobbersFlagRegisters(), collectPGOFuncNameStrings(), llvm::detail::IEEEFloat::convertToHexString(), llvm::detail::TrailingZerosCounter< T, SizeOfT >::count(), llvm::detail::LeadingZerosCounter< T, SizeOfT >::count(), llvm::StringMap< uint64_t >::count(), llvm::pdb::DIARawSymbol::dump(), DuplicateInstructionsInSplitBetween(), llvm::format_provider< std::chrono::duration< Rep, Period > >::format(), ForwardSwitchConditionToPHI(), FunctionNumber(), generateEquivalentSub(), llvm::BlockFrequency::getFrequency(), llvm::sys::getHostCPUName(), getPrefixes(), llvm::DataExtractor::getU16(), llvm::DataExtractor::getU32(), llvm::DataExtractor::getU64(), llvm::DataExtractor::getU8(), GetVBR(), greaterWithBias(), llvm::TextInstrProfReader::hasFormat(), hasUseAfterLoop(), llvm::ARM_AM::isNEONBytesplat(), lowerShuffleAsSplitOrBlend(), lowerV8I16GeneralSingleInputShuffle(), mayUsePostIncMode(), nameUnamedGlobals(), operator<<(), llvm::BlockFrequency::operator>>=(), p_count(), p_ere_exp(), p_simp_re(), ParseLine(), partAsHex(), pruneCache(), llvm::ThinLTOCodeGenerator::run(), llvm::ThinLTOCodeGenerator::setCodeGenOnly(), sizeOfSPAdjustment(), AllocaSlices::SliceBuilder::SliceBuilder(), swapAntiDependences(), llvm::sys::toTimeSpec(), llvm::sys::toTimeVal(), ulpsFromBoundary(), updateForIncomingValueLocation(), llvm::TimeTraceProfiler::Write(), and writeSignedDecimal().
| auto llvm::count_if | ( | R && | Range, |
| UnaryPredicate | P | ||
| ) | -> typename std::iterator_traits<decltype(adl_begin(Range))>::difference_type |
Wrapper function around std::count_if to count the number of times an element satisfying a given predicate occurs in a range.
Definition at line 1256 of file STLExtras.h.
References adl_begin(), adl_end(), and P.
Referenced by calculateUnswitchCostMultiplier(), llvm::ARMTargetLowering::CCAssignFnForReturn(), combineX86ShuffleChainWithExtract(), llvm::GEPOperator::countNonConstantIndices(), INITIALIZE_PASS(), isOperandUnresolved(), lower256BitShuffle(), lower512BitShuffle(), lowerShuffleAsPermuteAndUnpack(), lowerShuffleWithSHUFPS(), LowerToHorizontalOp(), lowerV16I8Shuffle(), lowerV4F32Shuffle(), lowerV4I32Shuffle(), lowerV8I16GeneralSingleInputShuffle(), lowerV8I16Shuffle(), scalarizeBinOpOfSplats(), llvm::VFABI::tryDemangleForVFABI(), and updateSuccessor().
| unsigned llvm::countLeadingOnes | ( | T | Value, |
| ZeroBehavior | ZB = ZB_Width |
||
| ) |
Count the number of ones from the most significant bit to the first zero bit.
Ex. countLeadingOnes(0xFF0FFF00) == 8. Only unsigned integral types are allowed.
| ZB | the behavior on an input of all ones. Only ZB_Width and ZB_Undefined are valid arguments. |
Definition at line 498 of file MathExtras.h.
Referenced by llvm::APInt::countLeadingOnes(), llvm::UnwindOpcodeAssembler::EmitVFPRegSave(), llvm::SmallBitVector::find_last_unset(), llvm::APInt::getMinSignedBits(), llvm::APInt::getNumSignBits(), llvm::APInt::getSplat(), isSeveralBitsExtractOpFromShr(), and llvm::AArch64_AM::processLogicalImmediate().
| unsigned llvm::countLeadingZeros | ( | T | Val, |
| ZeroBehavior | ZB = ZB_Width |
||
| ) |
Count number of 0's from the most significant bit to the least stopping at the first 1.
Only unsigned integral types are allowed.
| ZB | the behavior on an input of 0. Only ZB_Width and ZB_Undefined are valid arguments. |
Definition at line 225 of file MathExtras.h.
Referenced by CheckForMaskedLoad(), CombineANDShift(), combineBitcast(), computeKnownBitsFromRangeMetadata(), computeMinimumValueSizes(), llvm::APInt::countLeadingZeros(), llvm::ScaledNumberBase::countLeadingZeros32(), llvm::ScaledNumberBase::countLeadingZeros64(), createXCoreISelDag(), llvm::AArch64_AM::decodeLogicalImmediate(), llvm::ScaledNumbers::divide32(), llvm::ScaledNumbers::divide64(), emitT2RegPlusImmediate(), llvm::UnwindOpcodeAssembler::EmitVFPRegSave(), llvm::AArch64_IMM::expandMOVImmSimple(), llvm::SparseBitVectorElement< ElementSize >::find_last(), llvm::SmallBitVector::find_last(), llvm::SmallBitVector::find_prev(), findLastSet(), FitWeights(), foldMaskAndShiftToScale(), llvm::APInt::getActiveBits(), llvm::ScaledNumbers::getAdjusted(), llvm::GCNSubtarget::getKnownHighZeroBitsForFrameIndex(), llvm::ScaledNumbers::getLgImpl(), llvm::APInt::getNumSignBits(), llvm::mca::getResourceStateIndex(), llvm::APInt::getSplat(), llvm::ARM_AM::getT2SOImmValRotateVal(), getTestUnderMaskCond(), getVPTESTMOpc(), HasConditionalBranch(), isFloatingPointZero(), isMemOPCandidate(), isRunOfOnes(), isRunOfOnes64(), llvm::AArch64_AM::isValidDecodeLogicalImmediate(), Log2_32(), Log2_32_Ceil(), Log2_64(), Log2_64_Ceil(), llvm::ScaledNumbers::matchScales(), llvm::ScaledNumbers::multiply64(), llvm::BlockFrequencyInfoImplBase::Distribution::normalize(), PerformBFICombine(), PerformShiftCombine(), PowerOf2Floor(), llvm::ARMInstPrinter::printBitfieldInvMaskImmOperand(), SDValueToConstBool(), llvm::AArch64TargetLowering::shouldConvertConstantLoadToIntImm(), and write_hex().
Count the number of set bits in a value.
Ex. countPopulation(0xF000F000) = 8 Returns 0 if the word is zero.
Definition at line 556 of file MathExtras.h.
Referenced by llvm::X86InstrInfo::commuteInstructionImpl(), llvm::AMDGPUDisassembler::convertMIMGInst(), llvm::FeatureBitset::count(), llvm::SparseBitVectorElement< ElementSize >::count(), llvm::BitVector::count(), llvm::SmallBitVector::count(), llvm::APInt::countPopulation(), createSIAddIMGInitPass(), llvm::mca::ResourceManager::cycleEvent(), despeculateCountZeros(), llvm::SystemZSelectionDAGInfo::EmitTargetCodeForMemset(), ExpandPowI(), findMemSDNode(), getBufferFormatWithCompCount(), llvm::LaneBitmask::getNumLanes(), llvm::mca::ResourceState::getNumUnits(), getPermuteMask(), llvm::MCSchedModel::getReciprocalThroughput(), getRegNum(), llvm::APInt::getSplat(), getUnderlyingObjects(), llvm::mca::initializeUsedResources(), llvm::mca::ResourceState::isReady(), isShiftedMask(), llvm::mca::ResourceManager::issueInstruction(), llvm::HexagonResource::lessUnits(), LowerCONCAT_VECTORSvXi1(), llvm::mca::ExecuteStage::notifyReservedOrReleasedBuffers(), parseTexFail(), llvm::AMDGPUInstPrinter::printSwizzle(), readGSIHashBuckets(), llvm::HexagonResource::setWeight(), ShrinkDemandedConstant(), llvm::SIInstrInfo::verifyInstruction(), and llvm::SelectionDAGBuilder::visitBitTestCase().
| unsigned llvm::countTrailingOnes | ( | T | Value, |
| ZeroBehavior | ZB = ZB_Width |
||
| ) |
Count the number of ones from the least significant bit to the first zero bit.
Ex. countTrailingOnes(0x00FF00FF) == 8. Only unsigned integral types are allowed.
| ZB | the behavior on an input of all ones. Only ZB_Width and ZB_Undefined are valid arguments. |
Definition at line 514 of file MathExtras.h.
Referenced by CheckForMaskedLoad(), llvm::BitVector::clearBitsNotInMask(), computeKnownBitsMul(), llvm::APInt::countTrailingOnes(), llvm::UnwindOpcodeAssembler::EmitRegSave(), llvm::SmallBitVector::find_first_unset(), llvm::SmallBitVector::find_next_unset(), foldMaskAndShiftToScale(), llvm::APInt::getSplat(), llvm::SelectionDAG::getSplatSourceVector(), isBitfieldPositioningOp(), isLowerSaturatingConditional(), isMemOPCandidate(), matchRotateSub(), mayUseP9Setb(), llvm::AArch64_AM::processLogicalImmediate(), SDValueToConstBool(), shrinkScalarLogicOp(), tryBitfieldInsertOpFromOr(), tryBitfieldInsertOpFromOrAndImm(), and llvm::SelectionDAGBuilder::visitBitTestCase().
| unsigned llvm::countTrailingZeros | ( | T | Val, |
| ZeroBehavior | ZB = ZB_Width |
||
| ) |
Count number of 0's from the least significant bit to the most stopping at the first 1.
Only unsigned integral types are allowed.
| ZB | the behavior on an input of 0. Only ZB_Width and ZB_Undefined are valid arguments. |
Definition at line 156 of file MathExtras.h.
Referenced by llvm::lowertypetests::BitSetBuilder::build(), llvm::PPCTargetLowering::BuildSDIVPow2(), CheckForMaskedLoad(), CombineANDShift(), combineKnownAdjacentMMOs(), combineMulSpecial(), combineX86ShufflesRecursively(), computeKnownBits(), computeKnownBitsFromOperator(), llvm::APInt::countTrailingZeros(), llvm::object::ObjectFile::createELFObjectFile(), createOrdering(), decodeCRBitMOperand(), llvm::ScaledNumbers::divide64(), dumpApplePropertyAttribute(), emitAligningInstructions(), llvm::Thumb1FrameLowering::emitPrologue(), llvm::RISCVFrameLowering::emitPrologue(), llvm::WebAssemblyFrameLowering::emitPrologue(), llvm::HexagonEvaluator::evaluate(), llvm::AArch64_IMM::expandMOVImmSimple(), llvm::SparseBitVectorElement< ElementSize >::find_first(), llvm::SmallBitVector::find_first(), llvm::SparseBitVectorElement< ElementSize >::find_next(), llvm::SmallBitVector::find_next(), findFirstSet(), llvm::wholeprogramdevirt::findLowestOffset(), firstCommonClass(), foldMaskAndShiftToScale(), foldMaskedShiftToBEXTR(), llvm::DomainValue::getFirstDomain(), llvm::ARM_AM::getSOImmValRotate(), llvm::APInt::getSplat(), getSubRegForIndex(), llvm::ARM_AM::getT2SOImmValRotate(), llvm::HexagonTargetLowering::getTargetNodeName(), getTestUnderMaskCond(), llvm::ARM_AM::getThumbImm16ValShift(), llvm::ARM_AM::getThumbImmValShift(), getVPTESTMOpc(), HasConditionalBranch(), llvm::MipsAnalyzeImmediate::Inst::Inst(), llvm::BasicBlockInfo::internalKnownBits(), isBitfieldPositioningOp(), isMemOPCandidate(), isShiftedMask(), llvm::APInt::isShiftedMask(), llvm::AArch64TargetLowering::isZExtFree(), LowerBUILD_VECTORAsVariablePermute(), llvm::AMDGPUCallLowering::lowerFormalArguments(), llvm::SITargetLowering::LowerFormalArguments(), llvm::LTOModule::makeBuffer(), mayUsePostIncMode(), PerformBFICombine(), PerformORCombineToBFI(), llvm::ARMInstPrinter::printBitfieldInvMaskImmOperand(), llvm::ARMInstPrinter::printThumbITMask(), llvm::ARMInstPrinter::printVPTMask(), llvm::AArch64_AM::processLogicalImmediate(), ReduceSwitchRange(), SDValueToConstBool(), llvm::jitlink::Block::setAlignment(), llvm::HexagonResource::setWeight(), shrinkScalarLogicOp(), tryBitfieldInsertOpFromOr(), TypeSizeToSizeIndex(), and llvm::SelectionDAGBuilder::visitBitTestCase().
Definition at line 101 of file CRC.cpp.
Referenced by crc32(), llvm::symbolize::LLVMSymbolizer::flush(), and llvm::JamCRC::update().
Definition at line 87 of file CRC.cpp.
References crc32(), llvm::ArrayRef< T >::data(), llvm::ArrayRef< T >::drop_front(), llvm::ArrayRef< T >::size(), and llvm::ArrayRef< T >::take_front().
| FunctionPass * llvm::createA15SDOptimizerPass | ( | ) |
Definition at line 687 of file A15SDOptimizer.cpp.
Referenced by llvm::ARMBaseTargetMachine::createPassConfig().
| aa Exhaustive Alias Analysis Precision true FunctionPass * llvm::createAAEvalPass | ( | ) |
Create a wrapper of the above for the legacy pass manager.
Definition at line 435 of file AliasAnalysisEvaluator.cpp.
References llvm::AAEvaluator::AAEvalLegacyPass.
| FunctionPass * llvm::createAArch64A53Fix835769 | ( | ) |
Definition at line 242 of file AArch64A53Fix835769.cpp.
Referenced by llvm::AArch64TargetMachine::createPassConfig().
| FunctionPass * llvm::createAArch64A57FPLoadBalancing | ( | ) |
Definition at line 721 of file AArch64A57FPLoadBalancing.cpp.
Referenced by llvm::AArch64TargetMachine::createPassConfig().
| FunctionPass * llvm::createAArch64AdvSIMDScalar | ( | ) |
Definition at line 410 of file AArch64AdvSIMDScalarPass.cpp.
Referenced by llvm::AArch64TargetMachine::createPassConfig().
| MCTargetStreamer * llvm::createAArch64AsmTargetStreamer | ( | MCStreamer & | S, |
| formatted_raw_ostream & | OS, | ||
| MCInstPrinter * | InstPrint, | ||
| bool | isVerboseAsm | ||
| ) |
Definition at line 197 of file AArch64ELFStreamer.cpp.
Referenced by LLVMInitializeAArch64TargetMC().
| MCAsmBackend * llvm::createAArch64beAsmBackend | ( | const Target & | T, |
| const MCSubtargetInfo & | STI, | ||
| const MCRegisterInfo & | MRI, | ||
| const MCTargetOptions & | Options | ||
| ) |
Definition at line 767 of file AArch64AsmBackend.cpp.
References assert(), llvm::MCTargetOptions::getABIName(), llvm::Triple::getOS(), llvm::MCELFObjectTargetWriter::getOSABI(), llvm::MCSubtargetInfo::getTargetTriple(), and llvm::Triple::isOSBinFormatELF().
Referenced by LLVMInitializeAArch64TargetMC().
| FunctionPass* llvm::createAArch64BranchTargetsPass | ( | ) |
Referenced by llvm::AArch64TargetMachine::createPassConfig(), and INITIALIZE_PASS().
| FunctionPass* llvm::createAArch64CleanupLocalDynamicTLSPass | ( | ) |
Referenced by llvm::AArch64TargetMachine::createPassConfig().
| FunctionPass * llvm::createAArch64CollectLOHPass | ( | ) |
Definition at line 560 of file AArch64CollectLOH.cpp.
Referenced by llvm::AArch64TargetMachine::createPassConfig().
| FunctionPass * llvm::createAArch64CompressJumpTablesPass | ( | ) |
Definition at line 167 of file AArch64CompressJumpTables.cpp.
Referenced by llvm::AArch64TargetMachine::createPassConfig().
| FunctionPass * llvm::createAArch64CondBrTuning | ( | ) |
Definition at line 336 of file AArch64CondBrTuning.cpp.
Referenced by llvm::AArch64TargetMachine::createPassConfig().
| aarch64 AArch64 CCMP false FunctionPass * llvm::createAArch64ConditionalCompares | ( | ) |
Definition at line 805 of file AArch64ConditionalCompares.cpp.
References llvm::AnalysisUsage::addPreserved(), llvm::AnalysisUsage::addRequired(), and llvm::MachineFunctionPass::getAnalysisUsage().
Referenced by llvm::AArch64TargetMachine::createPassConfig().
| aarch64 AArch64 CondOpt false FunctionPass * llvm::createAArch64ConditionOptimizerPass | ( | ) |
Definition at line 133 of file AArch64ConditionOptimizer.cpp.
References llvm::AnalysisUsage::addPreserved(), llvm::AnalysisUsage::addRequired(), assert(), B, llvm::MachineBasicBlock::begin(), dbgs(), llvm::MachineBasicBlock::end(), llvm::MachineFunctionPass::getAnalysisUsage(), llvm::MachineBasicBlock::getFirstTerminator(), llvm::AArch64_AM::getShiftValue(), I, LLVM_DEBUG, MRI, printMBBReference(), and llvm::MachineBasicBlock::successors().
Referenced by llvm::AArch64TargetMachine::createPassConfig().
| FunctionPass * llvm::createAArch64DeadRegisterDefinitions | ( | ) |
Definition at line 201 of file AArch64DeadRegisterDefinitionsPass.cpp.
Referenced by llvm::AArch64TargetMachine::createPassConfig().
| std::unique_ptr< MCObjectTargetWriter > llvm::createAArch64ELFObjectWriter | ( | uint8_t | OSABI, |
| bool | IsILP32 | ||
| ) |
Definition at line 450 of file AArch64ELFObjectWriter.cpp.
| MCELFStreamer * llvm::createAArch64ELFStreamer | ( | MCContext & | Context, |
| std::unique_ptr< MCAsmBackend > | TAB, | ||
| std::unique_ptr< MCObjectWriter > | OW, | ||
| std::unique_ptr< MCCodeEmitter > | Emitter, | ||
| bool | RelaxAll | ||
| ) |
Definition at line 204 of file AArch64ELFStreamer.cpp.
Referenced by createELFStreamer().
| FunctionPass * llvm::createAArch64ExpandPseudoPass | ( | ) |
Returns an instance of the pseudo instruction expansion pass.
Definition at line 741 of file AArch64ExpandPseudoInsts.cpp.
Referenced by llvm::AArch64TargetMachine::createPassConfig().
| InstructionSelector * llvm::createAArch64InstructionSelector | ( | const AArch64TargetMachine & | TM, |
| AArch64Subtarget & | Subtarget, | ||
| AArch64RegisterBankInfo & | RBI | ||
| ) |
Definition at line 4913 of file AArch64InstructionSelector.cpp.
Referenced by llvm::AArch64Subtarget::AArch64Subtarget().
| FunctionPass * llvm::createAArch64ISelDag | ( | AArch64TargetMachine & | TM, |
| CodeGenOpt::Level | OptLevel | ||
| ) |
createAArch64ISelDag - This pass converts a legalized DAG into a AArch64-specific DAG, ready for instruction scheduling.
Definition at line 4359 of file AArch64ISelDAGToDAG.cpp.
Referenced by llvm::AArch64TargetMachine::createPassConfig().
| MCAsmBackend * llvm::createAArch64leAsmBackend | ( | const Target & | T, |
| const MCSubtargetInfo & | STI, | ||
| const MCRegisterInfo & | MRI, | ||
| const MCTargetOptions & | Options | ||
| ) |
Definition at line 746 of file AArch64AsmBackend.cpp.
References assert(), llvm::MCTargetOptions::getABIName(), llvm::Triple::getOS(), llvm::MCELFObjectTargetWriter::getOSABI(), llvm::MCSubtargetInfo::getTargetTriple(), llvm::Triple::isArch32Bit(), llvm::Triple::isOSBinFormatCOFF(), llvm::Triple::isOSBinFormatELF(), and llvm::Triple::isOSBinFormatMachO().
Referenced by LLVMInitializeAArch64TargetMC().
| FunctionPass * llvm::createAArch64LoadStoreOptimizationPass | ( | ) |
createAArch64LoadStoreOptimizationPass - returns an instance of the load / store optimization pass.
Definition at line 2128 of file AArch64LoadStoreOptimizer.cpp.
Referenced by llvm::AArch64TargetMachine::createPassConfig().
| std::unique_ptr< MCObjectTargetWriter > llvm::createAArch64MachObjectWriter | ( | uint32_t | CPUType, |
| uint32_t | CPUSubtype, | ||
| bool | IsILP32 | ||
| ) |
Definition at line 407 of file AArch64MachObjectWriter.cpp.
| std::unique_ptr< ScheduleDAGMutation > llvm::createAArch64MacroFusionDAGMutation | ( | ) |
Note that you have to add: DAG.addMutation(createAArch64MacroFusionDAGMutation()); to AArch64PassConfig::createMachineScheduler() to have an effect.
Definition at line 408 of file AArch64MacroFusion.cpp.
References createMacroFusionDAGMutation(), and shouldScheduleAdjacent().
Referenced by llvm::AArch64beTargetMachine::AArch64beTargetMachine().
| MCCodeEmitter * llvm::createAArch64MCCodeEmitter | ( | const MCInstrInfo & | MCII, |
| const MCRegisterInfo & | MRI, | ||
| MCContext & | Ctx | ||
| ) |
Definition at line 649 of file AArch64MCCodeEmitter.cpp.
Referenced by LLVMInitializeAArch64TargetMC().
| MCTargetStreamer * llvm::createAArch64ObjectTargetStreamer | ( | MCStreamer & | S, |
| const MCSubtargetInfo & | STI | ||
| ) |
Definition at line 60 of file AArch64TargetStreamer.cpp.
References llvm::MCSubtargetInfo::getTargetTriple(), llvm::Triple::isOSBinFormatCOFF(), llvm::Triple::isOSBinFormatELF(), and TT.
Referenced by llvm::AArch64TargetWinCOFFStreamer::AArch64TargetWinCOFFStreamer(), and LLVMInitializeAArch64TargetMC().
| FunctionPass * llvm::createAArch64PreLegalizeCombiner | ( | bool | IsOptNone | ) |
Definition at line 165 of file AArch64PreLegalizerCombiner.cpp.
Referenced by llvm::AArch64TargetMachine::createPassConfig().
| aarch64 promote AArch64 Promote Constant false ModulePass * llvm::createAArch64PromoteConstantPass | ( | ) |
Definition at line 235 of file AArch64PromoteConstant.cpp.
Referenced by llvm::AArch64TargetMachine::createPassConfig().
| FunctionPass * llvm::createAArch64RedundantCopyEliminationPass | ( | ) |
Definition at line 490 of file AArch64RedundantCopyElimination.cpp.
Referenced by llvm::AArch64TargetMachine::createPassConfig().
| FunctionPass * llvm::createAArch64SIMDInstrOptPass | ( | ) |
Returns an instance of the high cost ASIMD instruction replacement optimization pass.
Definition at line 738 of file AArch64SIMDInstrOpt.cpp.
Referenced by llvm::AArch64TargetMachine::createPassConfig().
| FunctionPass * llvm::createAArch64SpeculationHardeningPass | ( | ) |
Returns an instance of the pseudo instruction expansion pass.
Definition at line 700 of file AArch64SpeculationHardening.cpp.
Referenced by llvm::AArch64TargetMachine::createPassConfig().
| AArch64 Stack false FunctionPass * llvm::createAArch64StackTaggingPass | ( | bool | MergeInit | ) |
Definition at line 329 of file AArch64StackTagging.cpp.
References alignTo(), assert(), ClScanLimit, llvm::IRBuilder< T, Inserter >::CreateCall(), llvm::IRBuilder< T, Inserter >::CreatePointerCast(), dbgs(), llvm::DominatorTreeBase< NodeT, IsPostDom >::findNearestCommonDominator(), llvm::BasicBlock::front(), llvm::ConstantInt::get(), llvm::StructType::get(), llvm::ArrayType::get(), llvm::AllocaInst::getAllocatedType(), llvm::AllocaInst::getAllocationSizeInBits(), llvm::Function::getContext(), llvm::Intrinsic::getDeclaration(), llvm::MemIntrinsicBase< Derived >::getDest(), llvm::IRBuilderBase::getInt64Ty(), llvm::IRBuilderBase::getInt8PtrTy(), llvm::Type::getInt8Ty(), llvm::MemIntrinsicBase< Derived >::getLength(), llvm::AAResults::getModRefInfo(), llvm::Instruction::getModule(), llvm::Constant::getNullValue(), llvm::Instruction::getParent(), llvm::GlobalValue::getParent(), llvm::Module::getTargetTriple(), llvm::Optional< T >::getValue(), llvm::MemSetBase< BaseCL >::getValue(), llvm::Function::hasOptNone(), I, Info, isNoModRef(), isPointerOffset(), llvm::Type::isSized(), llvm::AllocaInst::isStaticAlloca(), llvm::AllocaInst::isSwiftError(), llvm::AllocaInst::isUsedWithInAlloca(), llvm::MemIntrinsic::isVolatile(), LLVM_DEBUG, max(), llvm::Value::setName(), Size, and llvm::Value::takeName().
Referenced by llvm::AArch64TargetMachine::createPassConfig().
| aarch64 stack tagging pre AArch64 Stack Tagging PreRA false FunctionPass * llvm::createAArch64StackTaggingPreRAPass | ( | ) |
Definition at line 94 of file AArch64StackTaggingPreRA.cpp.
Referenced by llvm::AArch64TargetMachine::createPassConfig().
| FunctionPass* llvm::createAArch64StorePairSuppressPass | ( | ) |
Referenced by llvm::AArch64TargetMachine::createPassConfig().
| std::unique_ptr< MCObjectTargetWriter > llvm::createAArch64WinCOFFObjectWriter | ( | ) |
Definition at line 122 of file AArch64WinCOFFObjectWriter.cpp.
| MCWinCOFFStreamer * llvm::createAArch64WinCOFFStreamer | ( | MCContext & | Context, |
| std::unique_ptr< MCAsmBackend > | MAB, | ||
| std::unique_ptr< MCObjectWriter > | OW, | ||
| std::unique_ptr< MCCodeEmitter > | Emitter, | ||
| bool | RelaxAll, | ||
| bool | IncrementalLinkerCompatible | ||
| ) |
Definition at line 191 of file AArch64WinCOFFStreamer.cpp.
Referenced by createWinCOFFStreamer().
| Function Alias Analysis true FunctionPass * llvm::createAAResultsWrapperPass | ( | ) |
Definition at line 777 of file AliasAnalysis.cpp.
References llvm::AAResultsWrapperPass::AAResultsWrapperPass().
Referenced by llvm::ExternalAAWrapperPass::getAnalysisUsage().
| add Add DWARF path false FunctionPass * llvm::createAddDiscriminatorsPass | ( | ) |
Definition at line 109 of file AddDiscriminators.cpp.
Referenced by LLVMAddAddDiscriminatorsPass().
| FunctionPass* llvm::createAddressSanitizerFunctionPass | ( | bool | CompileKernel = false, |
| bool | Recover = false, |
||
| bool | UseAfterScope = false |
||
| ) |
| Aggressive Dead Code false FunctionPass * llvm::createAggressiveDCEPass | ( | ) |
Definition at line 739 of file ADCE.cpp.
Referenced by LLVMAddAggressiveDCEPass(), and llvm::PassManagerBuilder::populateFunctionPassManager().
| FunctionPass * llvm::createAggressiveInstCombinerPass | ( | ) |
Definition at line 412 of file AggressiveInstCombine.cpp.
Referenced by LLVMAddAggressiveInstCombinerPass(), llvm::PassManagerBuilder::populateFunctionPassManager(), and llvm::PassManagerBuilder::populateModulePassManager().
| false FunctionPass * llvm::createAlignmentFromAssumptionsPass | ( | ) |
Definition at line 83 of file AlignmentFromAssumptions.cpp.
Referenced by LLVMAddAlignmentFromAssumptionsPass(), and llvm::PassManagerBuilder::populateModulePassManager().
| FunctionPass* llvm::createAllocaHoisting | ( | ) |
Referenced by llvm::NVPTXTargetMachine::getTargetTransformInfo().
| always Inliner for always_inline false Pass * llvm::createAlwaysInlinerLegacyPass | ( | bool | InsertLifetime = true | ) |
Create a legacy pass manager instance of a pass to inline and remove functions marked as "always_inline".
Definition at line 138 of file AlwaysInliner.cpp.
References Callee, llvm::InlineCost::getAlways(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::getCalledFunction(), getInlineCost(), llvm::InlineCost::getNever(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::hasFnAttr(), llvm::GlobalValue::isDeclaration(), and isInlineViable().
Referenced by llvm::AlwaysInlinerPass::AlwaysInlinerPass(), llvm::GCNTargetMachine::getTargetTransformInfo(), and LLVMAddAlwaysInlinerPass().
| amdgpu aa AMDGPU Address space based Alias Analysis true ImmutablePass * llvm::createAMDGPUAAWrapperPass | ( | ) |
Definition at line 44 of file AMDGPUAliasAnalysis.cpp.
Referenced by llvm::AMDGPUTargetMachine::adjustPassManager(), and llvm::GCNTargetMachine::getTargetTransformInfo().
| ModulePass * llvm::createAMDGPUAlwaysInlinePass | ( | bool | GlobalOpt = true | ) |
Definition at line 153 of file AMDGPUAlwaysInlinePass.cpp.
Referenced by llvm::AMDGPUTargetMachine::adjustPassManager(), and llvm::GCNTargetMachine::getTargetTransformInfo().
| Pass * llvm::createAMDGPUAnnotateKernelFeaturesPass | ( | ) |
Definition at line 374 of file AMDGPUAnnotateKernelFeatures.cpp.
Referenced by llvm::GCNTargetMachine::getTargetTransformInfo().
| FunctionPass * llvm::createAMDGPUAnnotateUniformValues | ( | ) |
Definition at line 181 of file AMDGPUAnnotateUniformValues.cpp.
Referenced by llvm::R600TargetMachine::createPassConfig().
| MCAsmBackend * llvm::createAMDGPUAsmBackend | ( | const Target & | T, |
| const MCSubtargetInfo & | STI, | ||
| const MCRegisterInfo & | MRI, | ||
| const MCTargetOptions & | Options | ||
| ) |
Definition at line 234 of file AMDGPUAsmBackend.cpp.
References llvm::MCSubtargetInfo::getTargetTriple(), and llvm::AMDGPU::IsaInfo::hasCodeObjectV3().
Referenced by LLVMInitializeAMDGPUTargetMC().
| AMDGPU atomic false FunctionPass * llvm::createAMDGPUAtomicOptimizerPass | ( | ) |
Definition at line 668 of file AMDGPUAtomicOptimizer.cpp.
Referenced by llvm::R600TargetMachine::createPassConfig().
| AMDGPU CFG false FunctionPass * llvm::createAMDGPUCFGStructurizerPass | ( | ) |
Definition at line 1679 of file AMDILCFGStructurizer.cpp.
Referenced by llvm::GCNTargetMachine::getTargetTransformInfo().
| FunctionPass * llvm::createAMDGPUCodeGenPreparePass | ( | ) |
Definition at line 1061 of file AMDGPUCodeGenPrepare.cpp.
Referenced by llvm::GCNTargetMachine::getTargetTransformInfo().
| std::unique_ptr< MCObjectTargetWriter > llvm::createAMDGPUELFObjectWriter | ( | bool | Is64Bit, |
| uint8_t | OSABI, | ||
| bool | HasRelocationAddend, | ||
| uint8_t | ABIVersion | ||
| ) |
Definition at line 87 of file AMDGPUELFObjectWriter.cpp.
Referenced by adjustFixupValue().
| MCELFStreamer * llvm::createAMDGPUELFStreamer | ( | const Triple & | T, |
| MCContext & | Context, | ||
| std::unique_ptr< MCAsmBackend > | MAB, | ||
| std::unique_ptr< MCObjectWriter > | OW, | ||
| std::unique_ptr< MCCodeEmitter > | Emitter, | ||
| bool | RelaxAll | ||
| ) |
Definition at line 32 of file AMDGPUELFStreamer.cpp.
Referenced by createMCStreamer().
| ImmutablePass * llvm::createAMDGPUExternalAAWrapperPass | ( | ) |
Definition at line 48 of file AMDGPUAliasAnalysis.cpp.
Referenced by llvm::AMDGPUTargetMachine::adjustPassManager().
| ModulePass* llvm::createAMDGPUFixFunctionBitcastsPass | ( | ) |
Referenced by llvm::GCNTargetMachine::getTargetTransformInfo().
Definition at line 97 of file AMDGPUInline.cpp.
References llvm::AnalysisUsage::addRequired(), ArgAllocaCost, ArgAllocaCutoff, llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::args(), Callee, dyn_cast(), AMDGPUAS::FLAT_ADDRESS, llvm::PointerType::getAddressSpace(), llvm::LegacyInlinerBase::getAnalysisUsage(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::getCalledFunction(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::getCaller(), llvm::Module::getDataLayout(), llvm::GlobalValue::getParent(), llvm::DataLayout::getTypeAllocSize(), GetUnderlyingObject(), llvm::Function::hasFnAttribute(), llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::GlobalValue::isDeclaration(), AMDGPUAS::PRIVATE_ADDRESS, and llvm::LegacyInlinerBase::runOnSCC().
Referenced by llvm::AMDGPUTargetMachine::adjustPassManager().
| amdgpu AMDGPU DAG DAG Pattern Instruction false FunctionPass * llvm::createAMDGPUISelDag | ( | TargetMachine * | TM = nullptr, |
| CodeGenOpt::Level | OptLevel = CodeGenOpt::Default |
||
| ) |
This pass converts a legalized DAG into a AMDGPU-specific.
Definition at line 391 of file AMDGPUISelDAGToDAG.cpp.
Referenced by llvm::GCNTargetMachine::getTargetTransformInfo().
| ModulePass * llvm::createAMDGPULowerIntrinsicsPass | ( | ) |
Definition at line 166 of file AMDGPULowerIntrinsics.cpp.
Referenced by llvm::GCNTargetMachine::getTargetTransformInfo().
| FunctionPass * llvm::createAMDGPULowerKernelArgumentsPass | ( | ) |
Definition at line 236 of file AMDGPULowerKernelArguments.cpp.
Referenced by llvm::GCNTargetMachine::getTargetTransformInfo().
| ModulePass * llvm::createAMDGPULowerKernelAttributesPass | ( | ) |
Definition at line 267 of file AMDGPULowerKernelAttributes.cpp.
Referenced by llvm::AMDGPUTargetMachine::adjustPassManager().
| amdgpu machine cfg AMDGPU Machine CFG false FunctionPass * llvm::createAMDGPUMachineCFGStructurizerPass | ( | ) |
Definition at line 2908 of file AMDGPUMachineCFGStructurizer.cpp.
Referenced by llvm::R600TargetMachine::createPassConfig().
| std::unique_ptr< ScheduleDAGMutation > llvm::createAMDGPUMacroFusionDAGMutation | ( | ) |
Note that you have to add: DAG.addMutation(createAMDGPUMacroFusionDAGMutation()); to AMDGPUPassConfig::createMachineScheduler() to have an effect.
Definition at line 63 of file AMDGPUMacroFusion.cpp.
References createMacroFusionDAGMutation(), and shouldScheduleAdjacent().
Referenced by createGCNMaxOccupancyMachineScheduler(), and createIterativeILPMachineScheduler().
| ModulePass* llvm::createAMDGPUOpenCLEnqueuedBlockLoweringPass | ( | ) |
Referenced by llvm::GCNTargetMachine::getTargetTransformInfo().
| ModulePass * llvm::createAMDGPUPrintfRuntimeBinding | ( | ) |
Definition at line 93 of file AMDGPUPrintfRuntimeBinding.cpp.
References llvm::NamedMDNode::addOperand(), Arg, assert(), AMDGPUAS::CONSTANT_ADDRESS, llvm::APFloat::convert(), llvm::GetElementPtrInst::Create(), llvm::CallInst::Create(), llvm::IRBuilder< T, Inserter >::CreateICmpNE(), llvm::IRBuilder< T, Inserter >::CreateNot(), llvm::IRBuilder< T, Inserter >::CreateSExt(), llvm::IRBuilder< T, Inserter >::CreateZExt(), llvm::StringRef::data(), dbgs(), DWORD_ALIGN, dyn_cast(), E, llvm::LLVMContext::emitError(), F(), llvm::StringRef::find_first_of(), llvm::StringRef::find_last_of(), llvm::AttributeList::FunctionIndex, llvm::ConstantInt::get(), llvm::FunctionType::get(), llvm::ConstantFP::get(), llvm::AttributeList::get(), llvm::VectorType::get(), llvm::ConstantVector::get(), llvm::ConstantPointerNull::get(), llvm::PointerType::get(), llvm::MDString::get(), llvm::MDNode::get(), llvm::PointerType::getAddressSpace(), llvm::ConstantDataSequential::getAsCString(), llvm::IntegerType::getBitWidth(), llvm::Type::getContainedType(), llvm::Type::getContext(), llvm::Module::getContext(), llvm::Module::getDataLayout(), llvm::Module::getFunction(), llvm::GlobalVariable::getInitializer(), llvm::Type::getInt16Ty(), llvm::Type::getInt32Ty(), llvm::Type::getInt64Ty(), llvm::Type::getInt8Ty(), llvm::ilist_node_with_parent< NodeTy, ParentTy, Options >::getNextNode(), llvm::SequentialType::getNumElements(), llvm::User::getOperand(), llvm::Module::getOrInsertFunction(), llvm::Module::getOrInsertNamedMetadata(), llvm::PassRegistry::getPassRegistry(), llvm::Type::getScalarSizeInBits(), llvm::Module::getTargetTriple(), llvm::Value::getType(), llvm::Type::getTypeID(), llvm::ConstantFP::getValueAPF(), AMDGPUAS::GLOBAL_ADDRESS, llvm::GlobalVariable::hasInitializer(), I, llvm::APFloatBase::IEEEsingle(), initializeAMDGPUPrintfRuntimeBindingPass(), llvm::Instruction::insertBefore(), Int32Ty, llvm::Type::IntegerTyID, llvm::Type::isDoubleTy(), llvm::Type::isFloatTy(), llvm::Type::isFPOrFPVectorTy(), llvm::ConstantDataSequential::isString(), llvm::Constant::isZeroValue(), itostr(), LLVM_DEBUG, llvm::BitmaskEnumDetail::Mask(), llvm::StringRef::npos, llvm::Type::PointerTyID, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::Triple::r600, llvm::Value::replaceAllUsesWith(), llvm::APFloatBase::rmNearestTiesToEven, llvm::IRBuilderBase::SetCurrentDebugLocation(), llvm::IRBuilderBase::SetInsertPoint(), SI, simplify, Size, llvm::SmallVectorBase::size(), SplitBlock(), SplitBlockAndInsertIfThen(), llvm::raw_string_ostream::str(), llvm::StringRef::substr(), TT, llvm::Value::users(), and llvm::Type::VectorTyID.
Referenced by llvm::AMDGPUTargetMachine::adjustPassManager(), and llvm::GCNTargetMachine::getTargetTransformInfo().
| FunctionPass * llvm::createAMDGPUPromoteAlloca | ( | ) |
Definition at line 941 of file AMDGPUPromoteAlloca.cpp.
Referenced by llvm::GCNTargetMachine::getTargetTransformInfo().
| FunctionPass * llvm::createAMDGPUPropagateAttributesEarlyPass | ( | const TargetMachine * | TM | ) |
Definition at line 329 of file AMDGPUPropagateAttributes.cpp.
Referenced by llvm::AMDGPUTargetMachine::adjustPassManager(), and llvm::GCNTargetMachine::getTargetTransformInfo().
| ModulePass * llvm::createAMDGPUPropagateAttributesLatePass | ( | const TargetMachine * | TM | ) |
Definition at line 334 of file AMDGPUPropagateAttributes.cpp.
Referenced by llvm::AMDGPUTargetMachine::adjustPassManager().
| FunctionPass * llvm::createAMDGPURewriteOutArgumentsPass | ( | ) |
Definition at line 482 of file AMDGPURewriteOutArguments.cpp.
| FunctionPass * llvm::createAMDGPUSimplifyLibCallsPass | ( | const TargetOptions & | Opt, |
| const TargetMachine * | TM | ||
| ) |
Definition at line 1714 of file AMDGPULibCalls.cpp.
Referenced by llvm::AMDGPUTargetMachine::adjustPassManager().
| Pass* llvm::createAMDGPUStructurizeCFGPass | ( | ) |
| ModulePass* llvm::createAMDGPUUnifyMetadataPass | ( | ) |
Referenced by llvm::AMDGPUTargetMachine::adjustPassManager().
| FunctionPass * llvm::createAMDGPUUseNativeCallsPass | ( | ) |
Definition at line 1719 of file AMDGPULibCalls.cpp.
Referenced by llvm::AMDGPUTargetMachine::adjustPassManager().
| FunctionPass * llvm::createARCBranchFinalizePass | ( | ) |
Definition at line 181 of file ARCBranchFinalize.cpp.
Referenced by llvm::ARCTargetMachine::createPassConfig().
| FunctionPass * llvm::createARCExpandPseudosPass | ( | ) |
Definition at line 100 of file ARCExpandPseudos.cpp.
Referenced by llvm::ARCTargetMachine::createPassConfig().
| FunctionPass * llvm::createARCISelDag | ( | ARCTargetMachine & | TM, |
| CodeGenOpt::Level | OptLevel | ||
| ) |
This pass converts a legalized DAG into a ARC-specific DAG, ready for instruction scheduling.
Definition at line 70 of file ARCISelDAGToDAG.cpp.
References llvm::ISD::ADD, llvm::ISD::Constant, dyn_cast(), llvm::ISD::FrameIndex, llvm::ARCISD::GAWRAPPER, llvm::FrameIndexSDNode::getIndex(), llvm::SDValue::getOpcode(), llvm::SDNode::getOpcode(), llvm::SDValue::getOperand(), llvm::ConstantSDNode::getSExtValue(), llvm::MVT::i32, N, llvm::MCID::Select, and llvm::ISD::SUB.
Referenced by llvm::ARCTargetMachine::createPassConfig().
| FunctionPass * llvm::createARCOptAddrMode | ( | ) |
Definition at line 506 of file ARCOptAddrMode.cpp.
Referenced by llvm::ARCTargetMachine::createPassConfig().
| Promote by reference arguments to false Pass * llvm::createArgumentPromotionPass | ( | unsigned | maxElements = 3 | ) |
createArgumentPromotionPass - This pass promotes "by reference" arguments to be passed by value if the number of elements passed is smaller or equal to maxElements (maxElements == 0 means always promote).
Definition at line 1113 of file ArgumentPromotion.cpp.
References llvm::CallGraphSCCPass::doInitialization(), llvm::GlobalValue::ExternalLinkage, llvm::Function::getFunction(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::getInstruction(), llvm::CallGraph::getOrInsertFunction(), llvm::Instruction::getParent(), llvm::BasicBlock::getParent(), promoteArguments(), llvm::CallGraph::removeFunctionFromModule(), llvm::CallGraphNode::replaceCallEdge(), llvm::GlobalValue::setLinkage(), and llvm::CallGraphNode::stealCalledFunctionsFrom().
Referenced by LLVMAddArgumentPromotionPass(), and llvm::PassManagerBuilder::populateModulePassManager().
| MCAsmBackend * llvm::createARMBEAsmBackend | ( | const Target & | T, |
| const MCSubtargetInfo & | STI, | ||
| const MCRegisterInfo & | MRI, | ||
| const MCTargetOptions & | Options | ||
| ) |
Definition at line 1337 of file ARMAsmBackend.cpp.
References llvm::support::big, and createARMAsmBackend().
Referenced by LLVMInitializeARMTargetMC().
| MCCodeEmitter * llvm::createARMBEMCCodeEmitter | ( | const MCInstrInfo & | MCII, |
| const MCRegisterInfo & | MRI, | ||
| MCContext & | Ctx | ||
| ) |
Definition at line 2015 of file ARMMCCodeEmitter.cpp.
Referenced by LLVMInitializeARMTargetMC().
| FunctionPass * llvm::createARMConstantIslandPass | ( | ) |
createARMConstantIslandPass - returns an instance of the constpool island pass.
Definition at line 2458 of file ARMConstantIslandPass.cpp.
References ARM_CP_ISLANDS_OPT_NAME, and INITIALIZE_PASS.
Referenced by llvm::ARMBaseTargetMachine::createPassConfig().
| std::unique_ptr< MCObjectTargetWriter > llvm::createARMELFObjectWriter | ( | uint8_t | OSABI | ) |
Construct an ELF Mach-O object writer.
Definition at line 268 of file ARMELFObjectWriter.cpp.
| MCELFStreamer * llvm::createARMELFStreamer | ( | MCContext & | Context, |
| std::unique_ptr< MCAsmBackend > | TAB, | ||
| std::unique_ptr< MCObjectWriter > | OW, | ||
| std::unique_ptr< MCCodeEmitter > | Emitter, | ||
| bool | RelaxAll, | ||
| bool | IsThumb, | ||
| bool | IsAndroid | ||
| ) |
Definition at line 1510 of file ARMELFStreamer.cpp.
References llvm::ELF::EF_ARM_EABI_VER5.
Referenced by createELFStreamer(), and llvm::MCELFStreamer::reset().
| FunctionPass * llvm::createARMExpandPseudoPass | ( | ) |
createARMExpandPseudoPass - returns an instance of the pseudo instruction expansion pass.
Definition at line 1992 of file ARMExpandPseudoInsts.cpp.
Referenced by llvm::ARMBaseTargetMachine::createPassConfig().
| InstructionSelector * llvm::createARMInstructionSelector | ( | const ARMBaseTargetMachine & | TM, |
| const ARMSubtarget & | STI, | ||
| const ARMRegisterBankInfo & | RBI | ||
| ) |
Definition at line 160 of file ARMInstructionSelector.cpp.
Referenced by llvm::ARMSubtarget::ARMSubtarget().
| FunctionPass * llvm::createARMISelDag | ( | ARMBaseTargetMachine & | TM, |
| CodeGenOpt::Level | OptLevel | ||
| ) |
createARMISelDag - This pass converts a legalized DAG into a ARM-specific DAG, ready for instruction scheduling.
Definition at line 5072 of file ARMISelDAGToDAG.cpp.
Referenced by llvm::ARMBaseTargetMachine::createPassConfig().
| MCAsmBackend * llvm::createARMLEAsmBackend | ( | const Target & | T, |
| const MCSubtargetInfo & | STI, | ||
| const MCRegisterInfo & | MRI, | ||
| const MCTargetOptions & | Options | ||
| ) |
Definition at line 1330 of file ARMAsmBackend.cpp.
References createARMAsmBackend(), and llvm::support::little.
Referenced by LLVMInitializeARMTargetMC().
| MCCodeEmitter * llvm::createARMLEMCCodeEmitter | ( | const MCInstrInfo & | MCII, |
| const MCRegisterInfo & | MRI, | ||
| MCContext & | Ctx | ||
| ) |
Definition at line 2009 of file ARMMCCodeEmitter.cpp.
Referenced by LLVMInitializeARMTargetMC().
| FunctionPass * llvm::createARMLoadStoreOptimizationPass | ( | bool | PreAlloc = false | ) |
Returns an instance of the load / store optimization pass.
Definition at line 2486 of file ARMLoadStoreOptimizer.cpp.
Referenced by llvm::ARMBaseTargetMachine::createPassConfig().
| FunctionPass * llvm::createARMLowOverheadLoopsPass | ( | ) |
Definition at line 1056 of file ARMLowOverheadLoops.cpp.
Referenced by llvm::ARMBaseTargetMachine::createPassConfig().
| std::unique_ptr< MCObjectTargetWriter > llvm::createARMMachObjectWriter | ( | bool | Is64Bit, |
| uint32_t | CPUType, | ||
| uint32_t | CPUSubtype | ||
| ) |
Construct an ARM Mach-O object writer.
Definition at line 507 of file ARMMachObjectWriter.cpp.
Referenced by llvm::ARMAsmBackendDarwin::createObjectTargetWriter().
| MCRelocationInfo * llvm::createARMMachORelocationInfo | ( | MCContext & | Ctx | ) |
Construct ARM Mach-O relocation info.
createARMMachORelocationInfo - Construct an ARM Mach-O RelocationInfo.
Definition at line 40 of file ARMMachORelocationInfo.cpp.
Referenced by createARMMCRelocationInfo().
| std::unique_ptr< ScheduleDAGMutation > llvm::createARMMacroFusionDAGMutation | ( | ) |
Note that you have to add: DAG.addMutation(createARMMacroFusionDAGMutation()); to ARMPassConfig::createMachineScheduler() to have an effect.
Definition at line 65 of file ARMMacroFusion.cpp.
References createMacroFusionDAGMutation(), and shouldScheduleAdjacent().
Referenced by llvm::ARMBETargetMachine::ARMBETargetMachine().
| MCTargetStreamer * llvm::createARMNullTargetStreamer | ( | MCStreamer & | S | ) |
Definition at line 1498 of file ARMELFStreamer.cpp.
Referenced by LLVMInitializeARMTargetMC().
| MCTargetStreamer * llvm::createARMObjectTargetStreamer | ( | MCStreamer & | S, |
| const MCSubtargetInfo & | STI | ||
| ) |
Definition at line 1502 of file ARMELFStreamer.cpp.
References llvm::MCSubtargetInfo::getTargetTriple(), llvm::Triple::isOSBinFormatELF(), and TT.
Referenced by LLVMInitializeARMTargetMC().
| FunctionPass * llvm::createARMOptimizeBarriersPass | ( | ) |
createARMOptimizeBarriersPass - Returns an instance of the remove double barriers pass.
Definition at line 104 of file ARMOptimizeBarriersPass.cpp.
Referenced by llvm::ARMBaseTargetMachine::createPassConfig().
| Pass * llvm::createARMParallelDSPPass | ( | ) |
Definition at line 810 of file ARMParallelDSP.cpp.
References INITIALIZE_PASS_BEGIN().
Referenced by llvm::ARMBaseTargetMachine::createPassConfig().
| MCTargetStreamer * llvm::createARMTargetAsmStreamer | ( | MCStreamer & | S, |
| formatted_raw_ostream & | OS, | ||
| MCInstPrinter * | InstPrint, | ||
| bool | isVerboseAsm | ||
| ) |
Definition at line 1491 of file ARMELFStreamer.cpp.
Referenced by LLVMInitializeARMTargetMC().
| std::unique_ptr< MCObjectTargetWriter > llvm::createARMWinCOFFObjectWriter | ( | bool | Is64Bit | ) |
Construct an ARM PE/COFF object writer.
Definition at line 94 of file ARMWinCOFFObjectWriter.cpp.
| MCStreamer * llvm::createARMWinCOFFStreamer | ( | MCContext & | Context, |
| std::unique_ptr< MCAsmBackend > && | MAB, | ||
| std::unique_ptr< MCObjectWriter > && | OW, | ||
| std::unique_ptr< MCCodeEmitter > && | Emitter, | ||
| bool | RelaxAll, | ||
| bool | IncrementalLinkerCompatible | ||
| ) |
Definition at line 40 of file ARMWinCOFFStreamer.cpp.
Referenced by LLVMInitializeARMTargetMC().
| MCStreamer * llvm::createAsmStreamer | ( | MCContext & | Ctx, |
| std::unique_ptr< formatted_raw_ostream > | OS, | ||
| bool | isVerboseAsm, | ||
| bool | useDwarfDirectory, | ||
| MCInstPrinter * | InstPrint, | ||
| std::unique_ptr< MCCodeEmitter > && | CE, | ||
| std::unique_ptr< MCAsmBackend > && | TAB, | ||
| bool | ShowInst | ||
| ) |
Create a machine code streamer which will print out assembly for the native target, suitable for compiling with a native assembler.
| InstPrint | - If given, the instruction printer to use. If not given the MCInst representation will be printed. This method takes ownership of InstPrint. |
| CE | - If given, a code emitter to use to show the instruction encoding inline with the assembly. This method takes ownership of CE. |
| TAB | - If given, a target asm backend to use to show the fixup information in conjunction with encoding information. This method takes ownership of TAB. |
| ShowInst | - Whether to show the MCInst representation inline with the assembly. |
Definition at line 2030 of file MCAsmStreamer.cpp.
| MCStreamer* llvm::createAsmStreamer | ( | MCContext & | Ctx, |
| std::unique_ptr< formatted_raw_ostream > | OS, | ||
| bool | isVerboseAsm, | ||
| bool | useDwarfDirectory, | ||
| MCInstPrinter * | InstPrint, | ||
| MCCodeEmitter * | CE, | ||
| MCAsmBackend * | TAB, | ||
| bool | ShowInst | ||
| ) |
Create a machine code streamer which will print out assembly for the native target, suitable for compiling with a native assembler.
| InstPrint | - If given, the instruction printer to use. If not given the MCInst representation will be printed. This method takes ownership of InstPrint. |
| CE | - If given, a code emitter to use to show the instruction encoding inline with the assembly. This method takes ownership of CE. |
| TAB | - If given, a target asm backend to use to show the fixup information in conjunction with encoding information. This method takes ownership of TAB. |
| ShowInst | - Whether to show the MCInst representation inline with the assembly. |
Referenced by llvm::Target::createAsmStreamer(), and llvm::MCStreamer::mayHaveInstructions().
| FunctionPass* llvm::createAtomicExpandPass | ( | ) |
Referenced by llvm::SparcTargetMachine::createPassConfig(), llvm::RISCVTargetMachine::createPassConfig(), llvm::HexagonTargetMachine::createPassConfig(), llvm::WebAssemblyTargetMachine::createPassConfig(), llvm::XCoreTargetMachine::createPassConfig(), llvm::AArch64TargetMachine::createPassConfig(), llvm::PPCTargetMachine::createPassConfig(), llvm::X86TargetMachine::createPassConfig(), llvm::ARMBaseTargetMachine::createPassConfig(), llvm::MipsTargetMachine::createPassConfig(), and llvm::GCNTargetMachine::getTargetTransformInfo().
| Pass * llvm::createAttributorLegacyPass | ( | ) |
Definition at line 6818 of file Attributor.cpp.
References llvm::AAReturnedValues::ID, llvm::AANoUnwind::ID, llvm::AANoSync::ID, llvm::AANonNull::ID, llvm::AANoRecurse::ID, llvm::AAWillReturn::ID, llvm::AAUndefinedBehavior::ID, llvm::AAReachability::ID, llvm::AANoAlias::ID, llvm::AANoFree::ID, llvm::AANoReturn::ID, llvm::AAIsDead::ID, llvm::AADereferenceable::ID, llvm::AAAlign::ID, llvm::AANoCapture::ID, llvm::AAValueSimplify::ID, llvm::AAHeapToStack::ID, llvm::AAMemoryBehavior::ID, and llvm::AAValueConstantRange::ID.
Referenced by llvm::PassManagerBuilder::populateModulePassManager().
| MCAsmBackend * llvm::createAVRAsmBackend | ( | const Target & | T, |
| const MCSubtargetInfo & | STI, | ||
| const MCRegisterInfo & | MRI, | ||
| const llvm::MCTargetOptions & | TO | ||
| ) |
Creates an assembly backend for AVR.
Definition at line 479 of file AVRAsmBackend.cpp.
References llvm::Triple::getOS(), and llvm::MCSubtargetInfo::getTargetTriple().
Referenced by LLVMInitializeAVRTargetMC().
| FunctionPass* llvm::createAVRBranchSelectionPass | ( | ) |
| FunctionPass * llvm::createAVRDynAllocaSRPass | ( | ) |
createAVRDynAllocaSRPass - returns an instance of the dynalloca stack pointer save/restore pass.
Definition at line 543 of file AVRFrameLowering.cpp.
Referenced by llvm::AVRTargetMachine::getSubtargetImpl().
| std::unique_ptr< MCObjectTargetWriter > llvm::createAVRELFObjectWriter | ( | uint8_t | OSABI | ) |
Creates an ELF object writer for AVR.
Definition at line 154 of file AVRELFObjectWriter.cpp.
Referenced by llvm::AVRAsmBackend::createObjectTargetWriter().
| MCStreamer * llvm::createAVRELFStreamer | ( | Triple const & | TT, |
| MCContext & | Context, | ||
| std::unique_ptr< MCAsmBackend > | MAB, | ||
| std::unique_ptr< MCObjectWriter > | OW, | ||
| std::unique_ptr< MCCodeEmitter > | CE | ||
| ) |
Definition at line 44 of file AVRMCELFStreamer.cpp.
References llvm::AVRMCELFStreamer::AVRMCELFStreamer().
Referenced by llvm::AVRMCELFStreamer::AVRMCELFStreamer().
| FunctionPass* llvm::createAVRExpandPseudoPass | ( | ) |
Referenced by llvm::AVRTargetMachine::getSubtargetImpl(), and INITIALIZE_PASS().
| FunctionPass * llvm::createAVRFrameAnalyzerPass | ( | ) |
Creates instance of the frame analyzer pass.
Definition at line 491 of file AVRFrameLowering.cpp.
Referenced by llvm::AVRTargetMachine::getSubtargetImpl().
| FunctionPass * llvm::createAVRISelDag | ( | AVRTargetMachine & | TM, |
| CodeGenOpt::Level | OptLevel | ||
| ) |
Definition at line 551 of file AVRISelDAGToDAG.cpp.
References llvm::AVRDAGToDAGISel::AVRDAGToDAGISel().
Referenced by llvm::AVRTargetMachine::getSubtargetImpl().
| MCCodeEmitter* llvm::createAVRMCCodeEmitter | ( | const MCInstrInfo & | MCII, |
| const MCRegisterInfo & | MRI, | ||
| MCContext & | Ctx | ||
| ) |
Creates a machine code emitter for AVR.
Referenced by LLVMInitializeAVRTargetMC().
| MCInstrInfo * llvm::createAVRMCInstrInfo | ( | ) |
Definition at line 40 of file AVRMCTargetDesc.cpp.
References X.
Referenced by LLVMInitializeAVRTargetMC().
| FunctionPass* llvm::createAVRRelaxMemPass | ( | ) |
Referenced by llvm::AVRTargetMachine::getSubtargetImpl(), and INITIALIZE_PASS().
| ModulePass * llvm::createBarrierNoopPass | ( | ) |
createBarrierNoopPass - This pass is purely a module pass barrier in a pass manager.
Definition at line 43 of file BarrierNoopPass.cpp.
References INITIALIZE_PASS.
Referenced by addCoroutineOpt0Passes(), llvm::GCNTargetMachine::getTargetTransformInfo(), and llvm::PassManagerBuilder::populateModulePassManager().
| Basic Alias true FunctionPass * llvm::createBasicAAWrapperPass | ( | ) |
Definition at line 2069 of file BasicAliasAnalysis.cpp.
References llvm::BasicAAWrapperPass::BasicAAWrapperPass().
Referenced by llvm::TargetPassConfig::addIRPasses(), llvm::BasicAAWrapperPass::getResult(), and LLVMAddBasicAliasAnalysisPass().
| FunctionPass * llvm::createBasicRegisterAllocator | ( | ) |
BasicRegisterAllocation Pass - This pass implements a degenerate global register allocator using the basic regalloc framework.
Definition at line 330 of file RegAllocBasic.cpp.
| write Write true ModulePass * llvm::createBitcodeWriterPass | ( | raw_ostream & | Str, |
| bool | ShouldPreserveUseListOrder = false, |
||
| bool | EmitSummaryIndex = false, |
||
| bool | EmitModuleHash = false |
||
| ) |
Create and return a pass that writes the module to the specified ostream.
Note that this pass is designed for use with the legacy pass manager.
If ShouldPreserveUseListOrder, encode use-list order so it can be reproduced when deserialized.
If EmitSummaryIndex, emit the summary index (currently for use in ThinLTO optimization).
If EmitModuleHash, compute and emit the module hash in the bitcode (currently for use in ThinLTO incremental build).
Definition at line 77 of file BitcodeWriterPass.cpp.
| Constant * llvm::createBitMaskForGaps | ( | IRBuilder<> & | Builder, |
| unsigned | VF, | ||
| const InterleaveGroup< Instruction > & | Group | ||
| ) |
Create a mask that filters the members of an interleave group where there are gaps.
For example, the mask for Group with interleave-factor 3 and VF 4, that has only its first member present is:
<1,0,0,1,0,0,1,0,0,1,0,0>
Note: The result is a mask of 0's and 1's, as opposed to the other create[*]Mask() utilities which create a shuffle mask (mask that consists of indices).
Definition at line 639 of file VectorUtils.cpp.
References assert(), llvm::ConstantVector::get(), llvm::InterleaveGroup< InstTy >::getFactor(), llvm::IRBuilderBase::getInt1(), llvm::InterleaveGroup< InstTy >::getMember(), llvm::InterleaveGroup< InstTy >::getNumMembers(), llvm::InterleaveGroup< InstTy >::isReverse(), and llvm::BitmaskEnumDetail::Mask().
Referenced by llvm::InnerLoopVectorizer::vectorizeInterleaveGroup().
| Bit Tracking Dead Code false FunctionPass * llvm::createBitTrackingDCEPass | ( | ) |
Definition at line 184 of file BDCE.cpp.
Referenced by LLVMAddBitTrackingDCEPass(), llvm::PassManagerBuilder::populateFunctionPassManager(), and llvm::PassManagerBuilder::populateModulePassManager().
| ModulePass* llvm::createBlockExtractorPass | ( | ) |
createBlockExtractorPass - This pass extracts all the specified blocks from the functions in the module.
| ModulePass * llvm::createBlockExtractorPass | ( | const SmallVectorImpl< BasicBlock *> & | BlocksToExtract, |
| bool | EraseFunctions | ||
| ) |
Definition at line 96 of file BlockExtractor.cpp.
| ModulePass * llvm::createBlockExtractorPass | ( | const SmallVectorImpl< SmallVector< BasicBlock *, 16 >> & | GroupsOfBlocksToExtract, |
| bool | EraseFunctions | ||
| ) |
Definition at line 100 of file BlockExtractor.cpp.
References llvm::SmallVectorTemplateCommon< T >::begin(), BlockExtractorEraseFuncs, BlockExtractorFile, dbgs(), llvm::Function::deleteBody(), llvm::SmallVectorBase::empty(), llvm::SmallVectorTemplateCommon< T >::end(), llvm::Function::end(), llvm::StringRef::equals(), llvm::GlobalValue::ExternalLinkage, llvm::CodeExtractor::extractCodeRegion(), F(), find_if(), llvm::MemoryBuffer::getFile(), llvm::Function::getFunction(), getName(), llvm::Value::getName(), llvm::Instruction::getParent(), getParent(), llvm::InvokeInst::getUnwindDest(), I, LLVM_DEBUG, loadFile(), predecessors(), llvm::SmallVectorTemplateBase< T >::push_back(), report_fatal_error(), llvm::SmallVectorImpl< T >::resize(), llvm::GlobalValue::setLinkage(), llvm::SmallVectorBase::size(), and SplitLandingPadPredecessors().
| bounds Run time bounds false FunctionPass * llvm::createBoundsCheckingLegacyPass | ( | ) |
Legacy pass creation function for the above pass.
Definition at line 247 of file BoundsChecking.cpp.
| ModulePass* llvm::createBPFAbstractMemberAccess | ( | BPFTargetMachine * | TM | ) |
Referenced by llvm::BPFTargetMachine::createPassConfig().
| MCAsmBackend * llvm::createBPFAsmBackend | ( | const Target & | T, |
| const MCSubtargetInfo & | STI, | ||
| const MCRegisterInfo & | MRI, | ||
| const MCTargetOptions & | Options | ||
| ) |
Definition at line 107 of file BPFAsmBackend.cpp.
References llvm::support::little.
Referenced by LLVMInitializeBPFTargetMC().
| MCAsmBackend * llvm::createBPFbeAsmBackend | ( | const Target & | T, |
| const MCSubtargetInfo & | STI, | ||
| const MCRegisterInfo & | MRI, | ||
| const MCTargetOptions & | Options | ||
| ) |
Definition at line 114 of file BPFAsmBackend.cpp.
References llvm::support::big.
Referenced by LLVMInitializeBPFTargetMC().
| MCCodeEmitter * llvm::createBPFbeMCCodeEmitter | ( | const MCInstrInfo & | MCII, |
| const MCRegisterInfo & | MRI, | ||
| MCContext & | Ctx | ||
| ) |
Definition at line 80 of file BPFMCCodeEmitter.cpp.
References assert(), llvm::MCFixup::create(), FK_PCRel_2, FK_PCRel_4, FK_SecRel_8, llvm::MCOperand::getExpr(), llvm::MCOperand::getImm(), llvm::MCInst::getOpcode(), llvm::MCOperand::getReg(), llvm::MCOperand::isExpr(), llvm::MCOperand::isImm(), llvm::MCOperand::isReg(), MI, MRI, llvm::SmallVectorTemplateBase< T >::push_back(), and llvm::MCExpr::SymbolRef.
Referenced by LLVMInitializeBPFTargetMC().
| std::unique_ptr< MCObjectTargetWriter > llvm::createBPFELFObjectWriter | ( | uint8_t | OSABI | ) |
Definition at line 87 of file BPFELFObjectWriter.cpp.
| FunctionPass * llvm::createBPFISelDag | ( | BPFTargetMachine & | TM | ) |
Definition at line 501 of file BPFISelDAGToDAG.cpp.
Referenced by llvm::BPFTargetMachine::createPassConfig().
| MCCodeEmitter * llvm::createBPFMCCodeEmitter | ( | const MCInstrInfo & | MCII, |
| const MCRegisterInfo & | MRI, | ||
| MCContext & | Ctx | ||
| ) |
Definition at line 74 of file BPFMCCodeEmitter.cpp.
Referenced by LLVMInitializeBPFTargetMC().
| FunctionPass* llvm::createBPFMIPeepholePass | ( | ) |
Referenced by llvm::BPFTargetMachine::createPassConfig().
| FunctionPass* llvm::createBPFMIPeepholeTruncElimPass | ( | ) |
Referenced by llvm::BPFTargetMachine::createPassConfig().
| FunctionPass* llvm::createBPFMIPreEmitCheckingPass | ( | ) |
Referenced by llvm::BPFTargetMachine::createPassConfig().
| FunctionPass* llvm::createBPFMIPreEmitPeepholePass | ( | ) |
Referenced by llvm::BPFTargetMachine::createPassConfig().
| FunctionPass* llvm::createBPFMISimplifyPatchablePass | ( | ) |
Referenced by llvm::BPFTargetMachine::createPassConfig().
| std::unique_ptr< ScheduleDAGMutation > llvm::createBranchMacroFusionDAGMutation | ( | ShouldSchedulePredTy | shouldScheduleAdjacent | ) |
Create a DAG scheduling mutation to pair branch instructions with one of their predecessors back to back for instructions that benefit according to the target-specific shouldScheduleAdjacent predicate function.
Definition at line 209 of file MacroFusion.cpp.
References EnableMacroFusion, and shouldScheduleAdjacent().
Referenced by createX86MacroFusionDAGMutation().
| FunctionPass* llvm::createBreakCriticalEdgesPass | ( | ) |
| FunctionPass * llvm::createBreakFalseDeps | ( | ) |
Creates Break False Dependencies pass.
Definition at line 105 of file BreakFalseDeps.cpp.
References assert(), llvm::BreakFalseDeps::BreakFalseDeps(), llvm::TargetInstrInfo::breakPartialRegDependency(), llvm::TargetRegisterClass::contains(), llvm::LiveRegSet::contains(), dbgs(), llvm::numbers::e, llvm::ReachingDefAnalysis::getClearance(), llvm::MachineInstr::getDesc(), llvm::MachineFunction::getFunction(), llvm::MCInstrDesc::getNumDefs(), llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOperand(), llvm::RegisterClassInfo::getOrder(), llvm::TargetInstrInfo::getPartialRegUpdateClearance(), llvm::MachineOperand::getReg(), llvm::TargetInstrInfo::getRegClass(), llvm::TargetInstrInfo::getUndefRegClearance(), llvm::Function::hasMinSize(), I, llvm::LiveRegSet::init(), llvm::MachineInstr::isDebugInstr(), llvm::MachineOperand::isReg(), llvm::MachineOperand::isUndef(), llvm::MachineOperand::isUse(), llvm::MCRegisterInfo::DiffListIterator::isValid(), llvm::MCRegUnitRootIterator::isValid(), llvm::MachineInstr::isVariadic(), LLVM_DEBUG, make_range(), MI, llvm::MachineInstr::operands(), llvm::MachineBasicBlock::rbegin(), Reg, llvm::MachineBasicBlock::rend(), and llvm::MachineOperand::setReg().
Referenced by llvm::X86TargetMachine::createPassConfig(), and llvm::ARMBaseTargetMachine::createPassConfig().
| ScheduleDAGSDNodes * llvm::createBURRListDAGScheduler | ( | SelectionDAGISel * | IS, |
| CodeGenOpt::Level | OptLevel | ||
| ) |
createBURRListDAGScheduler - This creates a bottom up register usage reduction list scheduler.
Definition at line 3132 of file ScheduleDAGRRList.cpp.
References llvm::TargetSubtargetInfo::getInstrInfo(), llvm::TargetSubtargetInfo::getRegisterInfo(), llvm::MachineFunction::getSubtarget(), llvm::SelectionDAGISel::MF, TII, and TRI.
Referenced by createDefaultScheduler(), and llvm::RegisterScheduler::setListener().
| ModulePass* llvm::createCalledValuePropagationPass | ( | ) |
createCalledValuePropagationPass - Attach metadata to indirct call sites indicating the set of functions they may target at run-time.
Referenced by LLVMAddCalledValuePropagationPass(), and llvm::PassManagerBuilder::populateModulePassManager().
| ModulePass * llvm::createCallGraphDOTPrinterPass | ( | ) |
Definition at line 90 of file CallPrinter.cpp.
| ModulePass* llvm::createCallGraphViewerPass | ( | ) |
| CallInst * llvm::createCallMatchingInvoke | ( | InvokeInst * | II | ) |
Create a call that matches the invoke II in terms of arguments, attributes, debug information, etc.
The call is not placed in a block and it will not have a name. The invoke instruction is not removed, nor are the uses replaced by the new call.
Definition at line 1958 of file Local.cpp.
References llvm::CallBase::arg_begin(), llvm::CallBase::arg_end(), llvm::AMDGPU::HSAMD::Kernel::Key::Args, llvm::Instruction::copyMetadata(), llvm::CallInst::Create(), llvm::CallBase::getAttributes(), llvm::CallBase::getCalledValue(), llvm::CallBase::getCallingConv(), llvm::Instruction::getDebugLoc(), llvm::CallBase::getFunctionType(), llvm::CallBase::getOperandBundlesAsDefs(), llvm::CallBase::setAttributes(), llvm::CallBase::setCallingConv(), and llvm::Instruction::setDebugLoc().
Referenced by changeToCall(), and getKnownAlignment().
| callsite Call site false FunctionPass * llvm::createCallSiteSplittingPass | ( | ) |
Definition at line 583 of file CallSiteSplitting.cpp.
Referenced by llvm::PassManagerBuilder::populateModulePassManager().
| ModulePass * llvm::createCanonicalizeAliasesPass | ( | ) |
Definition at line 102 of file CanonicalizeAliases.cpp.
Referenced by llvm::PassManagerBuilder::populateModulePassManager().
| FunctionPass * llvm::createCFGOnlyPrinterLegacyPassPass | ( | ) |
Definition at line 199 of file CFGPrinter.cpp.
Referenced by llvm::DOTGraphTraits< const Function * >::getEdgeAttributes().
| FunctionPass * llvm::createCFGPrinterLegacyPassPass | ( | ) |
Definition at line 195 of file CFGPrinter.cpp.
Referenced by llvm::DOTGraphTraits< const Function * >::getEdgeAttributes().
| Simplify the false FunctionPass * llvm::createCFGSimplificationPass | ( | unsigned | Threshold = 1, |
| bool | ForwardSwitchCond = false, |
||
| bool | ConvertSwitch = false, |
||
| bool | KeepLoops = true, |
||
| bool | SinkCommon = false, |
||
| std::function< bool(const Function &)> | Ftor = nullptr |
||
| ) |
Definition at line 290 of file SimplifyCFGPass.cpp.
Referenced by llvm::HexagonTargetMachine::createPassConfig(), llvm::AArch64TargetMachine::createPassConfig(), llvm::ARMBaseTargetMachine::createPassConfig(), LLVMAddCFGSimplificationPass(), llvm::PassManagerBuilder::populateFunctionPassManager(), llvm::PassManagerBuilder::populateModulePassManager(), postSplitCleanup(), and simplifyCFG().
| FunctionPass * llvm::createCFGuardCheckPass | ( | ) |
Insert Control FLow Guard checks on indirect function calls.
Definition at line 299 of file CFGuard.cpp.
Referenced by llvm::AArch64TargetMachine::createPassConfig(), llvm::X86TargetMachine::createPassConfig(), and llvm::ARMBaseTargetMachine::createPassConfig().
| FunctionPass * llvm::createCFGuardDispatchPass | ( | ) |
Insert Control FLow Guard dispatches on indirect function calls.
Definition at line 303 of file CFGuard.cpp.
Referenced by llvm::X86TargetMachine::createPassConfig().
| FunctionPass* llvm::createCFGuardLongjmpPass | ( | ) |
Creates CFGuard longjmp target identification pass.
Referenced by llvm::AArch64TargetMachine::createPassConfig(), llvm::X86TargetMachine::createPassConfig(), and llvm::ARMBaseTargetMachine::createPassConfig().
| FunctionPass* llvm::createCFIInstrInserter | ( | ) |
Creates CFI Instruction Inserter pass.
Referenced by llvm::X86TargetMachine::createPassConfig().
| ImmutablePass* llvm::createCFLAndersAAWrapperPass | ( | ) |
| ImmutablePass* llvm::createCFLSteensAAWrapperPass | ( | ) |
| CGSCCToFunctionPassAdaptor<FunctionPassT> llvm::createCGSCCToFunctionPassAdaptor | ( | FunctionPassT | Pass | ) |
A function to deduce a function pass type and wrap it in the templated adaptor.
Definition at line 534 of file CGSCCPassManager.h.
Referenced by llvm::PassBuilder::buildFunctionSimplificationPipeline(), and llvm::PassBuilder::buildModuleSimplificationPipeline().
| FunctionPass * llvm::createCleanupLocalDynamicTLSPass | ( | ) |
This pass combines multiple accesses to local-dynamic TLS variables so that the TLS base address for the module is only fetched once per execution path through the function.
Definition at line 8025 of file X86InstrInfo.cpp.
Referenced by llvm::X86TargetMachine::createPassConfig().
| Optimize for code false FunctionPass * llvm::createCodeGenPreparePass | ( | ) |
createCodeGenPreparePass - Transform the code to expose more pattern matching during instruction selection.
Definition at line 418 of file CodeGenPrepare.cpp.
References llvm::PHINode::addIncoming(), all_of(), assert(), llvm::SmallVectorTemplateCommon< T >::begin(), llvm::LoopBase< BlockT, LoopT >::begin(), llvm::BasicBlock::begin(), llvm::Function::begin(), llvm::AMDGPUISD::BFI, bypassSlowDivision(), ConstantFoldTerminator(), llvm::SmallPtrSetImpl< PtrType >::count(), dbgs(), DeleteDeadBlock(), DisableBranchOpts, DisableGCOpts, DisablePreheaderProtect, dyn_cast(), llvm::numbers::e, E, llvm::SetVector< T, SmallVector< T, N >, SmallDenseSet< T, N > >::empty(), EnableTypePromotionMerge, llvm::SmallVectorTemplateCommon< T >::end(), llvm::LoopBase< BlockT, LoopT >::end(), llvm::Function::end(), llvm::BasicBlock::eraseFromParent(), F(), FreqRatioToSkipMerge, llvm::Module::getDataLayout(), llvm::BasicBlock::getFirstNonPHIOrDbg(), llvm::BlockFrequency::getFrequency(), llvm::PHINode::getIncomingBlock(), llvm::PHINode::getIncomingValue(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::LoopBase< BlockT, LoopT >::getLoopPreheader(), llvm::ilist_node_with_parent< NodeTy, ParentTy, Options >::getNextNode(), llvm::PHINode::getNumIncomingValues(), llvm::Instruction::getParent(), llvm::GlobalValue::getParent(), llvm::BasicBlock::getSinglePredecessor(), llvm::BasicBlock::getSingleSuccessor(), llvm::BranchInst::getSuccessor(), llvm::BasicBlock::getTerminator(), llvm::BasicBlock::getUniquePredecessor(), llvm::BasicBlock::hasAddressTaken(), llvm::Function::hasOptSize(), I, llvm::ARM_PROC::IE, llvm::SetVector< T, SmallVector< T, N >, SmallDenseSet< T, N > >::insert(), llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::BranchInst::isConditional(), isStatepoint(), llvm::BranchInst::isUnconditional(), LLVM_DEBUG, make_range(), MergeBlockIntoPredecessor(), llvm::BasicBlock::phis(), llvm::SetVector< T, SmallVector< T, N >, SmallDenseSet< T, N > >::pop_back_val(), pred_begin(), pred_end(), ProfileGuidedSectionPrefix, llvm::SmallVectorTemplateBase< T >::push_back(), llvm::Value::replaceAllUsesWith(), runOnFunction(), llvm::Function::setSectionPrefix(), shouldOptimizeForSize(), SplitIndirectBrCriticalEdges(), succ_begin(), succ_end(), llvm::SystemZISD::TM, TRI, llvm::Value::users(), and llvm::NVPTX::PTXLdStInstCode::V2.
Referenced by llvm::TargetPassConfig::addCodeGenPrepare().
| MCAsmParserExtension * llvm::createCOFFAsmParser | ( | ) |
Definition at line 708 of file COFFAsmParser.cpp.
| Constant false FunctionPass * llvm::createConstantHoistingPass | ( | ) |
Definition at line 138 of file ConstantHoisting.cpp.
References assert(), ConstHoistWithBlockFrequency, dbgs(), llvm::Function::getEntryBlock(), llvm::Value::getName(), llvm::User::getOperand(), llvm::Instruction::getParent(), llvm::Instruction::isCast(), llvm::Instruction::isEHPad(), LLVM_DEBUG, and runOnFunction().
Referenced by llvm::TargetPassConfig::addIRPasses().
| ModulePass* llvm::createConstantMergePass | ( | ) |
createConstantMergePass - This function returns a new pass that merges duplicate global constants together into a single constant that is shared.
This is useful because some passes (ie TraceValues) insert a lot of string constants into the program, regardless of whether or not they duplicate an existing string.
Referenced by LLVMAddConstantMergePass(), and llvm::PassManagerBuilder::populateModulePassManager().
| Simple constant false FunctionPass * llvm::createConstantPropagationPass | ( | ) |
Definition at line 64 of file ConstantProp.cpp.
References C, ConstantFoldInstruction(), llvm::SmallPtrSetImplBase::empty(), llvm::SmallPtrSetImpl< PtrType >::erase(), F(), llvm::Module::getDataLayout(), llvm::GlobalValue::getParent(), I, llvm::SmallPtrSetImpl< PtrType >::insert(), instructions(), isInstructionTriviallyDead(), llvm::SmallVectorTemplateBase< T >::push_back(), runOnFunction(), and llvm::DebugCounter::shouldExecute().
Referenced by llvm::HexagonTargetMachine::createPassConfig(), and LLVMAddConstantPropagationPass().
| Reduce control height in the hot false FunctionPass * llvm::createControlHeightReductionLegacyPass | ( | ) |
Definition at line 140 of file ControlHeightReduction.cpp.
References llvm::sys::path::append(), assert(), llvm::SmallVectorTemplateCommon< T >::begin(), llvm::AMDGPUISD::BFI, contains(), llvm::RegionBase< Tr >::contains(), llvm::detail::DenseSetImpl< ValueT, DenseMap< ValueT, detail::DenseSetEmpty, ValueInfoT, detail::DenseSetPair< ValueT > >, ValueInfoT >::count(), F(), find_if(), llvm::Instruction::getParent(), llvm::RegionBase< Tr >::getParent(), I, llvm::detail::DenseSetImpl< ValueT, DenseMap< ValueT, detail::DenseSetEmpty, ValueInfoT, detail::DenseSetPair< ValueT > >, ValueInfoT >::insert(), llvm::SmallVectorImpl< T >::insert(), predecessors(), print(), llvm::SmallVectorTemplateBase< T >::push_back(), SI, and split.
Referenced by llvm::PassManagerBuilder::populateFunctionPassManager().
| std::unique_ptr< ScheduleDAGMutation > llvm::createCopyConstrainDAGMutation | ( | const TargetInstrInfo * | TII, |
| const TargetRegisterInfo * | TRI | ||
| ) |
Definition at line 1658 of file MachineScheduler.cpp.
References llvm::ScheduleDAGInstrs::addEdge(), llvm::SDep::Anti, llvm::cl::apply(), assert(), llvm::SmallVectorTemplateCommon< T >::begin(), llvm::LiveRange::begin(), llvm::ScheduleDAGInstrs::begin(), llvm::LiveRange::beginIndex(), llvm::ScheduleDAGInstrs::canAddEdge(), llvm::SDep::Data, dbgs(), llvm::VNInfo::def, E, llvm::sys::path::end(), llvm::SmallVectorTemplateCommon< T >::end(), llvm::LiveRange::end(), llvm::ScheduleDAGInstrs::end(), llvm::LiveRange::endIndex(), llvm::LiveRange::find(), llvm::SUnit::getInstr(), llvm::LiveIntervals::getInstructionFromIndex(), llvm::LiveIntervals::getInstructionIndex(), llvm::LiveIntervals::getInterval(), llvm::SDep::getKind(), llvm::ScheduleDAGMI::getLIS(), llvm::MachineInstr::getOperand(), llvm::SDep::getReg(), llvm::MachineOperand::getReg(), llvm::SDep::getSUnit(), llvm::ScheduleDAGInstrs::getSUnit(), llvm::LiveRange::getVNInfoBefore(), llvm::ScheduleDAGMI::hasVRegLiveness(), I, llvm::MachineInstr::isCopy(), llvm::MachineOperand::isDead(), llvm::LiveRange::isLocal(), llvm::SlotIndex::isSameInstr(), llvm::Register::isVirtualRegister(), LLVM_DEBUG, nextIfDebug(), llvm::SUnit::NodeNum, llvm::SUnit::Preds, priorNonDebug(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::MachineOperand::readsReg(), llvm::SUnit::Succs, llvm::ScheduleDAG::SUnits, TII, TRI, and llvm::SDep::Weak.
Referenced by createGenericSchedLive(), createPPCMachineScheduler(), createVLIWMachineSched(), and llvm::PostGenericScheduler::releaseBottomNode().
| Pass* llvm::createCoroCleanupLegacyPass | ( | ) |
Lower all remaining coroutine intrinsics.
Referenced by addCoroutineOpt0Passes(), addCoroutineOptimizerLastPasses(), and LLVMAddCoroCleanupPass().
| Pass* llvm::createCoroEarlyLegacyPass | ( | ) |
Lower coroutine intrinsics that are not needed by later passes.
Referenced by addCoroutineEarlyPasses(), and LLVMAddCoroEarlyPass().
| coro Coroutine frame allocation elision and indirect calls false Pass * llvm::createCoroElideLegacyPass | ( | ) |
Analyze coroutines use sites, devirtualize resume/destroy calls and elide heap allocation for coroutine frame where possible.
Definition at line 344 of file CoroElide.cpp.
Referenced by addCoroutineOpt0Passes(), addCoroutineScalarOptimizerPasses(), and LLVMAddCoroElidePass().
| coro Split coroutine into a set of functions driving its state false Pass * llvm::createCoroSplitLegacyPass | ( | ) |
Split up coroutines into multiple functions driving their state machines.
Definition at line 1616 of file CoroSplit.cpp.
Referenced by addCoroutineOpt0Passes(), addCoroutineSCCPasses(), and LLVMAddCoroSplitPass().
Definition at line 122 of file CorrelatedValuePropagation.cpp.
Referenced by LLVMAddCorrelatedValuePropagationPass(), llvm::PassManagerBuilder::populateFunctionPassManager(), and llvm::PassManagerBuilder::populateModulePassManager().
| FunctionPass * llvm::createCostModelAnalysisPass | ( | ) |
Definition at line 79 of file CostModel.cpp.
References B, CostKind, F(), print(), runOnFunction(), and llvm::AnalysisUsage::setPreservesAll().
| ModulePass* llvm::createCrossDSOCFIPass | ( | ) |
This pass export CFI checks for use by external modules.
Referenced by llvm::PassManagerBuilder::populateLTOPassManager().
| llvm::ScheduleDAGSDNodes * llvm::createDAGLinearizer | ( | SelectionDAGISel * | IS, |
| CodeGenOpt::Level | OptLevel | ||
| ) |
createDAGLinearizer - This creates a "no-scheduling" scheduler which linearize the DAG using topological order.
Definition at line 802 of file ScheduleDAGFast.cpp.
References llvm::SelectionDAGISel::MF.
Referenced by llvm::RegisterScheduler::setListener().
| MCAsmParserExtension * llvm::createDarwinAsmParser | ( | ) |
Definition at line 1204 of file DarwinAsmParser.cpp.
| ModulePass* llvm::createDataFlowSanitizerPass | ( | const std::vector< std::string > & | ABIListFiles = std::vector< std::string >(), |
| void *(*)() | getArgTLS = nullptr, |
||
| void *(*)() | getRetValTLS = nullptr |
||
| ) |
| ModulePass* llvm::createDeadArgEliminationPass | ( | ) |
createDeadArgEliminationPass - This pass removes arguments from functions which are not used by the body of the function.
Referenced by LLVMAddDeadArgEliminationPass(), and llvm::PassManagerBuilder::populateModulePassManager().
| ModulePass * llvm::createDeadArgHackingPass | ( | ) |
DeadArgHacking pass - Same as DAE, but delete arguments of external functions as well.
This is definitely not safe, and should only be used by bugpoint.
Definition at line 119 of file DeadArgumentElimination.cpp.
References llvm::GlobalObject::addMetadata(), Arg, llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::arg_begin(), llvm::Function::arg_begin(), llvm::AMDGPU::HSAMD::Kernel::Key::Args, llvm::Function::args(), assert(), llvm::Function::begin(), llvm::Function::copyAttributesFrom(), llvm::Function::Create(), llvm::CallInst::Create(), llvm::InvokeInst::Create(), dyn_cast(), E, llvm::SmallVectorBase::empty(), llvm::Instruction::eraseFromParent(), llvm::Instruction::extractProfTotalWeight(), llvm::FunctionType::get(), llvm::AttributeList::get(), llvm::UndefValue::get(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::getAttributes(), llvm::Function::getBasicBlockList(), llvm::ConstantExpr::getBitCast(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::getCallingConv(), llvm::Instruction::getDebugLoc(), llvm::AttributeList::getFnAttributes(), llvm::Function::getFunctionType(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::getInstruction(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::getOperandBundlesAsDefs(), llvm::AttributeList::getParamAttributes(), llvm::AttributeList::getRetAttributes(), llvm::FunctionType::getReturnType(), llvm::Value::getType(), llvm::GlobalValue::getType(), llvm::Function::hasAddressTaken(), llvm::GlobalValue::hasExactDefinition(), llvm::Function::hasFnAttribute(), llvm::GlobalValue::hasLocalLinkage(), I, llvm::GlobalValue::isDeclaration(), llvm::AttributeList::isEmpty(), llvm::CallInst::isMustTailCall(), llvm::FunctionType::isVarArg(), llvm::FunctionType::param_begin(), llvm::FunctionType::param_end(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::Constant::removeDeadConstantUsers(), llvm::Value::replaceAllUsesWith(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::setAttributes(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::setCallingConv(), llvm::GlobalObject::setComdat(), llvm::SmallVectorBase::size(), llvm::iplist_impl< IntrusiveListT, TraitsT >::splice(), llvm::Value::takeName(), llvm::Value::use_empty(), llvm::Value::uses(), and llvm::RISCVFenceField::W.
| FunctionPass * llvm::createDeadCodeEliminationPass | ( | ) |
Definition at line 213 of file DCE.cpp.
Referenced by llvm::HexagonTargetMachine::createPassConfig(), and LLVMAddDCEPass().
| Pass* llvm::createDeadInstEliminationPass | ( | ) |
| Dead Store false FunctionPass * llvm::createDeadStoreEliminationPass | ( | ) |
Definition at line 1422 of file DeadStoreElimination.cpp.
Referenced by LLVMAddDeadStoreEliminationPass(), llvm::PassManagerBuilder::populateFunctionPassManager(), and llvm::PassManagerBuilder::populateModulePassManager().
| FunctionPass * llvm::createDefaultPBQPRegisterAllocator | ( | ) |
PBQPRegisterAllocation Pass - This pass implements the Partitioned Boolean Quadratic Prograaming (PBQP) based register allocator.
Definition at line 940 of file RegAllocPBQP.cpp.
References createPBQPRegisterAllocator().
| ScheduleDAGSDNodes * llvm::createDefaultScheduler | ( | SelectionDAGISel * | IS, |
| CodeGenOpt::Level | OptLevel | ||
| ) |
createDefaultScheduler - This creates an instruction scheduler appropriate for the target.
Definition at line 252 of file SelectionDAGISel.cpp.
References assert(), createBURRListDAGScheduler(), createHybridListDAGScheduler(), createILPListDAGScheduler(), createSourceListDAGScheduler(), createVLIWDAGScheduler(), llvm::TargetSubtargetInfo::enableMachineSchedDefaultSched(), llvm::TargetSubtargetInfo::enableMachineScheduler(), llvm::TargetSubtargetInfo::getDAGScheduler(), llvm::TargetLoweringBase::getSchedulingPreference(), llvm::MachineFunction::getSubtarget(), llvm::Sched::Hybrid, llvm::Sched::ILP, llvm::SelectionDAGISel::MF, llvm::CodeGenOpt::None, llvm::Sched::RegPressure, llvm::Sched::Source, llvm::ARM_MB::ST, llvm::SelectionDAGISel::TLI, and llvm::Sched::VLIW.
Referenced by llvm::RegisterScheduler::setListener().
| FunctionPass* llvm::createDelinearizationPass | ( | ) |
| FunctionPass * llvm::createDemandedBitsWrapperPass | ( | ) |
Create a demanded bits analysis pass.
Definition at line 472 of file DemandedBits.cpp.
Referenced by llvm::DemandedBitsPrinterPass::DemandedBitsPrinterPass().
| FunctionPass * llvm::createDemoteRegisterToMemoryPass | ( | ) |
Definition at line 127 of file Reg2Mem.cpp.
Referenced by LLVMAddDemoteMemoryToRegisterPass().
| FunctionPass * llvm::createDependenceAnalysisWrapperPass | ( | ) |
createDependenceAnalysisPass - This creates an instance of the DependenceAnalysis wrapper pass.
Definition at line 150 of file DependenceAnalysis.cpp.
| DevirtSCCRepeatedPass<PassT> llvm::createDevirtSCCRepeatedPass | ( | PassT | Pass, |
| int | MaxIterations | ||
| ) |
A function to deduce a function pass type and wrap it in the templated adaptor.
Definition at line 726 of file CGSCCPassManager.h.
References MaxIterations.
Referenced by llvm::PassBuilder::buildModuleSimplificationPipeline().
| div rem Hoist decompose integer division and false FunctionPass * llvm::createDivRemPairsPass | ( | ) |
Definition at line 357 of file DivRemPairs.cpp.
Referenced by llvm::PassManagerBuilder::populateModulePassManager().
| FunctionPass * llvm::createDomOnlyPrinterPass | ( | ) |
Definition at line 272 of file DomPrinter.cpp.
| FunctionPass * llvm::createDomOnlyViewerPass | ( | ) |
Definition at line 280 of file DomPrinter.cpp.
| FunctionPass* llvm::createDomPrinterPass | ( | ) |
| FunctionPass * llvm::createDomViewerPass | ( | ) |
Definition at line 276 of file DomPrinter.cpp.
| Prepare DWARF false FunctionPass * llvm::createDwarfEHPass | ( | ) |
createDwarfEHPass - This pass mulches exception handling code into a form adapted to code generation.
Required if using dwarf exception handling.
Definition at line 92 of file DwarfEHPrepare.cpp.
References llvm::PHINode::addIncoming(), llvm::AnalysisUsage::addRequired(), classifyEHPersonality(), llvm::BasicBlock::Create(), llvm::CallInst::Create(), llvm::ExtractValueInst::Create(), llvm::PHINode::Create(), llvm::BranchInst::Create(), dyn_cast(), E, llvm::SmallVectorBase::empty(), llvm::Instruction::eraseFromParent(), llvm::SmallVectorTemplateCommon< T >::front(), llvm::FunctionType::get(), llvm::Function::getContext(), llvm::Type::getInt8PtrTy(), llvm::InsertValueInst::getNumIndices(), llvm::User::getOperand(), llvm::Instruction::getParent(), llvm::TargetMachine::getSubtargetImpl(), llvm::TargetSubtargetInfo::getTargetLowering(), llvm::Type::getVoidTy(), I, llvm::InsertValueInst::idx_begin(), isPotentiallyReachable(), isScopedEHPersonality(), llvm::SmallVectorTemplateBase< T >::push_back(), runOnFunction(), llvm::BitVector::set(), llvm::CallBase::setCallingConv(), simplifyCFG(), llvm::SmallVectorBase::size(), llvm::BitVector::size(), llvm::SystemZISD::TM, and llvm::Value::use_empty().
Referenced by llvm::TargetPassConfig::addPassesToHandleExceptions().
| FunctionPass * llvm::createEarlyCSEPass | ( | bool | UseMemorySSA = false | ) |
Definition at line 1449 of file EarlyCSE.cpp.
References INITIALIZE_PASS_BEGIN(), and INITIALIZE_PASS_DEPENDENCY.
Referenced by llvm::AArch64TargetMachine::createPassConfig(), llvm::PPCTargetMachine::createPassConfig(), llvm::NVPTXTargetMachine::getTargetTransformInfo(), llvm::GCNTargetMachine::getTargetTransformInfo(), LLVMAddEarlyCSEMemSSAPass(), LLVMAddEarlyCSEPass(), llvm::PassManagerBuilder::populateFunctionPassManager(), llvm::PassManagerBuilder::populateModulePassManager(), and postSplitCleanup().
| MCAsmParserExtension * llvm::createELFAsmParser | ( | ) |
Definition at line 895 of file ELFAsmParser.cpp.
| std::unique_ptr< MCObjectWriter > llvm::createELFDwoObjectWriter | ( | std::unique_ptr< MCELFObjectTargetWriter > | MOTW, |
| raw_pwrite_stream & | OS, | ||
| raw_pwrite_stream & | DwoOS, | ||
| bool | IsLittleEndian | ||
| ) |
Definition at line 1533 of file ELFObjectWriter.cpp.
Referenced by llvm::MCAsmBackend::createDwoObjectWriter(), and llvm::MCELFObjectTargetWriter::setRSsym().
| std::unique_ptr< MCObjectWriter > llvm::createELFObjectWriter | ( | std::unique_ptr< MCELFObjectTargetWriter > | MOTW, |
| raw_pwrite_stream & | OS, | ||
| bool | IsLittleEndian | ||
| ) |
Construct a new ELF writer instance.
| MOTW | - The target specific ELF writer subclass. |
| OS | - The stream to write to. |
Definition at line 1526 of file ELFObjectWriter.cpp.
Referenced by llvm::MCAsmBackend::createObjectWriter(), and llvm::MCELFObjectTargetWriter::setRSsym().
| MCStreamer * llvm::createELFStreamer | ( | MCContext & | Ctx, |
| std::unique_ptr< MCAsmBackend > && | TAB, | ||
| std::unique_ptr< MCObjectWriter > && | OW, | ||
| std::unique_ptr< MCCodeEmitter > && | CE, | ||
| bool | RelaxAll | ||
| ) |
Definition at line 698 of file MCELFStreamer.cpp.
References llvm::MCObjectStreamer::getAssembler(), llvm::MCELFStreamer::MCELFStreamer(), and llvm::MCAssembler::setRelaxAll().
Referenced by createBPFMCStreamer(), llvm::Target::createMCObjectStreamer(), createMCStreamer(), LLVMInitializeAArch64TargetMC(), and LLVMInitializeARMTargetMC().
| ModulePass* llvm::createEliminateAvailableExternallyPass | ( | ) |
This transform is designed to eliminate available external globals (functions or global variables)
Referenced by llvm::PassManagerBuilder::populateModulePassManager().
| post inline ee Instrument function entry exit with calls to e g false FunctionPass * llvm::createEntryExitInstrumenterPass | ( | ) |
Definition at line 158 of file EntryExitInstrumenter.cpp.
Referenced by llvm::PassManagerBuilder::populateFunctionPassManager().
Definition at line 211 of file APFloat.cpp.
Referenced by llvm::zlib::compress(), llvm::detail::IEEEFloat::convertFromString(), llvm::detail::IEEEFloat::convertFromZeroExtendedInteger(), llvm::object::Decompressor::create(), getSymbolInfo(), interpretDecimal(), readExponent(), skipLeadingZeroesAndAnyDot(), totalExponent(), trailingHexadecimalFraction(), and llvm::zlib::uncompress().
| Expand false FunctionPass * llvm::createExpandMemCmpPass | ( | ) |
Definition at line 887 of file ExpandMemCmp.cpp.
Referenced by llvm::TargetPassConfig::addIRPasses().
| expand Expand reduction false FunctionPass * llvm::createExpandReductionsPass | ( | ) |
This pass expands the experimental reduction intrinsics into sequences of shuffles.
Definition at line 189 of file ExpandReductions.cpp.
Referenced by llvm::TargetPassConfig::addIRPasses().
| ImmutablePass* llvm::createExternalAAWrapperPass | ( | std::function< void(Pass &, Function &, AAResults &)> | Callback | ) |
A wrapper pass around a callback which can be used to populate the AAResults in the AAResultsWrapperPass from an external AA.
The callback provided here will be used each time we prepare an AAResults object, and will receive a reference to the function wrapper pass, the function, and the AAResults object to populate. This should be used when setting up a custom pass pipeline to inject a hook into the AA results.
Referenced by llvm::ExternalAAWrapperPass::getAnalysisUsage(), and llvm::GCNTargetMachine::getTargetTransformInfo().
| FunctionPass * llvm::createFalkorHWPFFixPass | ( | ) |
Definition at line 842 of file AArch64FalkorHWPFFix.cpp.
Referenced by llvm::AArch64TargetMachine::createPassConfig().
| Falkor HW Prefetch false FunctionPass * llvm::createFalkorMarkStridedAccessesPass | ( | ) |
Definition at line 116 of file AArch64FalkorHWPFFix.cpp.
References llvm::AnalysisUsage::addRequired(), llvm::LoopBase< BlockT, LoopT >::blocks(), dbgs(), df_begin(), df_end(), dyn_cast(), llvm::LoopBase< BlockT, LoopT >::empty(), F(), llvm::AArch64Subtarget::Falkor, FALKOR_STRIDED_ACCESS_MD, llvm::MDNode::get(), llvm::MachineFunctionPass::getAnalysisUsage(), llvm::Value::getContext(), llvm::PassRegistry::getPassRegistry(), llvm::LoadInst::getPointerOperand(), llvm::TargetPassConfig::getTM(), I, INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_DEPENDENCY, initializeFalkorHWPFFixPass(), llvm::SCEVAddRecExpr::isAffine(), llvm::Loop::isLoopInvariant(), llvm::AArch64ISD::LDP, llvm::AArch64CC::LE, LLVM_DEBUG, Modified, llvm::MachineFunctionProperties::NoVRegs, runOnFunction(), llvm::MachineFunctionProperties::set(), llvm::Instruction::setMetadata(), llvm::AnalysisUsage::setPreservesCFG(), llvm::ARM_MB::ST, TII, and TRI.
Referenced by llvm::AArch64TargetMachine::createPassConfig().
| llvm::ScheduleDAGSDNodes * llvm::createFastDAGScheduler | ( | SelectionDAGISel * | IS, |
| CodeGenOpt::Level | OptLevel | ||
| ) |
createFastDAGScheduler - This creates a "fast" scheduler.
Definition at line 797 of file ScheduleDAGFast.cpp.
References llvm::SelectionDAGISel::MF.
Referenced by llvm::RegisterScheduler::setListener().
| FunctionPass * llvm::createFastRegisterAllocator | ( | ) |
FastRegisterAllocation Pass - This pass register allocates as fast as possible.
It is best suited for debug code where live ranges are short.
Definition at line 1327 of file RegAllocFast.cpp.
Referenced by llvm::TargetPassConfig::addRegAssignmentFast(), and llvm::TargetPassConfig::createTargetRegisterAllocator().
Concatenate a source file path and/or name with an Error.
The resulting Error is unchecked.
Definition at line 1273 of file Error.h.
Referenced by createFileError(), llvm::remarks::createYAMLParserFromMeta(), llvm::object::Archive::Child::getMemoryBufferRef(), and processRemarkVersion().
Concatenate a source file path and/or name with a std::error_code to form an Error object.
Definition at line 1285 of file Error.h.
References createFileError(), and errorCodeToError().
Concatenate a source file path and/or name with line number and std::error_code to form an Error object.
Definition at line 1291 of file Error.h.
References createFileError(), errorCodeToError(), and F().
|
delete |
| Flatten the false FunctionPass * llvm::createFlattenCFGPass | ( | ) |
Definition at line 51 of file FlattenCFGPass.cpp.
Referenced by llvm::GCNTargetMachine::getTargetTransformInfo().
| FunctionPass * llvm::createFloat2IntPass | ( | ) |
Definition at line 540 of file Float2Int.cpp.
Referenced by llvm::PassManagerBuilder::populateModulePassManager().
| Pass* llvm::createForceFunctionAttrsLegacyPass | ( | ) |
Create a legacy pass manager instance of a pass to force function attrs.
Referenced by llvm::PassManagerBuilder::populateModulePassManager().
| ModulePass* llvm::createForwardControlFlowIntegrityPass | ( | ) |
createForwardControlFlowIntegrityPass - This pass adds control-flow integrity.
| FunctionPass * llvm::createFreeMachineFunctionPass | ( | ) |
This pass frees the memory occupied by the MachineFunction.
Definition at line 343 of file MachineModuleInfo.cpp.
Referenced by llvm::LLVMTargetMachine::addPassesToEmitFile(), and llvm::LLVMTargetMachine::addPassesToEmitMC().
| Pass* llvm::createFunctionImportPass | ( | ) |
This pass performs iterative function importing from other modules.
Referenced by INITIALIZE_PASS().
createFunctionInliningPass - Return a new pass object that uses a heuristic to inline direct function calls to small functions.
The Threshold can be passed directly, or asked to be computed from the given optimization and size optimization arguments.
The -inline-threshold command line option takes precedence over the threshold given here.
Definition at line 98 of file InlineSimple.cpp.
Referenced by LLVMAddFunctionInliningPass(), LLVMPassManagerBuilderPopulateLTOPassManager(), LLVMPassManagerBuilderUseInlinerWithThreshold(), llvm::LTOCodeGenerator::optimize(), and llvm::PassManagerBuilder::populateFunctionPassManager().
| Pass * llvm::createFunctionInliningPass | ( | int | Threshold | ) |
Definition at line 100 of file InlineSimple.cpp.
References getInlineParams().
| Pass * llvm::createFunctionInliningPass | ( | unsigned | OptLevel, |
| unsigned | SizeOptLevel, | ||
| bool | DisableInlineHotCallSite | ||
| ) |
Definition at line 104 of file InlineSimple.cpp.
References getInlineParams().
| Pass * llvm::createFunctionInliningPass | ( | InlineParams & | Params | ) |
Definition at line 113 of file InlineSimple.cpp.
References llvm::AnalysisUsage::addRequired(), llvm::LegacyInlinerBase::getAnalysisUsage(), and llvm::LegacyInlinerBase::runOnSCC().
| FunctionToLoopPassAdaptor<LoopPassT> llvm::createFunctionToLoopPassAdaptor | ( | LoopPassT | Pass, |
| bool | UseMemorySSA = false, |
||
| bool | DebugLogging = false |
||
| ) |
A function to deduce a loop pass type and wrap it in the templated adaptor.
Definition at line 412 of file LoopPassManager.h.
Referenced by llvm::PassBuilder::buildFunctionSimplificationPipeline(), and llvm::PassBuilder::buildModuleOptimizationPipeline().
| FunctionPass * llvm::createGCInfoPrinter | ( | raw_ostream & | OS | ) |
Creates a pass to print GC metadata.
Definition at line 92 of file GCMetadata.cpp.
References llvm::AnalysisUsage::addRequired(), assert(), llvm::GCFunctionInfo::begin(), llvm::GCModuleInfo::clear(), llvm::GCFunctionInfo::end(), F(), llvm::Pass::getAnalysisUsage(), llvm::GCFunctionInfo::getFunction(), llvm::GCModuleInfo::getFunctionInfo(), llvm::Value::getName(), llvm::Function::hasGC(), llvm::GCFunctionInfo::live_begin(), llvm::GCFunctionInfo::live_end(), Printer, llvm::GCFunctionInfo::roots_begin(), llvm::GCFunctionInfo::roots_end(), runOnFunction(), and llvm::AnalysisUsage::setPreservesAll().
Referenced by llvm::TargetPassConfig::addMachinePasses().
| FunctionPass* llvm::createGCLoweringPass | ( | ) |
GCLowering Pass - Used by gc.root to perform its default lowering operations.
Referenced by llvm::TargetPassConfig::addIRPasses().
| FunctionPass * llvm::createGCNDPPCombinePass | ( | ) |
Definition at line 120 of file GCNDPPCombine.cpp.
References llvm::SISrcMods::ABS, assert(), BuildMI(), dbgs(), llvm::tgtok::Def, Fail, llvm::MachineInstr::getDebugLoc(), llvm::AMDGPU::getDPPOp32(), llvm::SIInstrInfo::getNamedOperand(), llvm::AMDGPU::getNamedOperandIdx(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getParent(), getRegSubRegPair(), llvm::AMDGPU::getVOPe32(), getVRegSubRegDef(), isOfRegClass(), llvm::SIInstrInfo::isOperandLegal(), LLVM_DEBUG, llvm::SISrcMods::NEG, llvm::SIInstrInfo::pseudoToMCOpcode(), llvm::TargetInstrInfo::RegSubRegPair::Reg, llvm::TargetInstrInfo::RegSubRegPair::SubReg, and llvm::RegState::Undef.
| insert gcov Insert instrumentation for GCOV false ModulePass * llvm::createGCOVProfilerPass | ( | const GCOVOptions & | Options = GCOVOptions::getDefault() | ) |
Definition at line 176 of file GCOVProfiling.cpp.
| ScheduleDAGMILive * llvm::createGenericSchedLive | ( | MachineSchedContext * | C | ) |
Create the standard converging machine scheduler.
This will be used as the default scheduler if the target does not set a default. Adds default DAG mutations.
This will be used as the default scheduler if the target does not set a default.
Definition at line 3302 of file MachineScheduler.cpp.
References llvm::ScheduleDAGMI::addMutation(), createCopyConstrainDAGMutation(), llvm::ScheduleDAG::TII, and llvm::ScheduleDAG::TRI.
Referenced by llvm::AArch64beTargetMachine::AArch64beTargetMachine(), llvm::ARMBETargetMachine::ARMBETargetMachine(), createConveringSched(), llvm::X86TargetMachine::getTargetTransformInfo(), llvm::GCNTargetMachine::getTargetTransformInfo(), and llvm::PostGenericScheduler::releaseBottomNode().
| ScheduleDAGMI * llvm::createGenericSchedPostRA | ( | MachineSchedContext * | C | ) |
Create a generic scheduler with no vreg liveness or DAG mutation passes.
Definition at line 3455 of file MachineScheduler.cpp.
References assert(), B, llvm::ScheduleDAGMILive::computeDFSResult(), dbgs(), llvm::ScheduleDAGMILive::getDFSResult(), llvm::SchedDFSResult::getILP(), llvm::SchedDFSResult::getSubtreeID(), llvm::SchedDFSResult::getSubtreeLevel(), llvm::ScheduleDAGMI::hasVRegLiveness(), llvm::MachineSchedStrategy::initialize(), LLVM_DEBUG, llvm::MachineSchedStrategy::pickNode(), llvm::MachineSchedStrategy::registerRoots(), llvm::MachineSchedStrategy::releaseBottomNode(), llvm::MachineSchedStrategy::releaseTopNode(), llvm::MachineSchedStrategy::schedNode(), llvm::MachineSchedStrategy::scheduleTree(), and llvm::BitVector::test().
Referenced by llvm::AArch64beTargetMachine::AArch64beTargetMachine(), llvm::ARMBETargetMachine::ARMBETargetMachine(), llvm::X86TargetMachine::getTargetTransformInfo(), and llvm::PostGenericScheduler::releaseBottomNode().
| ModulePass * llvm::createGenericToNVVMPass | ( | ) |
Definition at line 64 of file NVPTXGenericToNVVM.cpp.
Referenced by llvm::NVPTXTargetMachine::getTargetTransformInfo().
| ModulePass* llvm::createGlobalDCEPass | ( | ) |
createGlobalDCEPass - This transform is designed to eliminate unreachable internal globals (functions or global variables)
Referenced by llvm::AMDGPUTargetMachine::adjustPassManager(), LLVMAddGlobalDCEPass(), and llvm::PassManagerBuilder::populateModulePassManager().
| Pass * llvm::createGlobalMergePass | ( | const TargetMachine * | TM, |
| unsigned | MaximalOffset, | ||
| bool | OnlyOptimizeForSize = false, |
||
| bool | MergeExternalByDefault = false |
||
| ) |
GlobalMerge - This pass merges internal (by default) globals into structs to enable reuse of a base pointer by indexed addressing modes.
It can also be configured to focus on size optimizations only.
Definition at line 678 of file GlobalMerge.cpp.
References llvm::cl::BOU_TRUE, llvm::cl::BOU_UNSET, and EnableGlobalMergeOnExternal.
Referenced by llvm::AArch64TargetMachine::createPassConfig(), and llvm::ARMBaseTargetMachine::createPassConfig().
| Global Variable false ModulePass * llvm::createGlobalOptimizerPass | ( | ) |
createGlobalOptimizerPass - This function returns a new pass that optimizes non-address taken internal globals.
Definition at line 3061 of file GlobalOpt.cpp.
Referenced by LLVMAddGlobalOptimizerPass(), and llvm::PassManagerBuilder::populateModulePassManager().
| globals Globals Alias true ModulePass * llvm::createGlobalsAAWrapperPass | ( | ) |
Definition at line 1008 of file GlobalsModRef.cpp.
Referenced by llvm::GlobalsAAWrapperPass::getResult(), and llvm::PassManagerBuilder::populateModulePassManager().
| ModulePass * llvm::createGlobalSplitPass | ( | ) |
This pass splits globals into pieces for the benefit of whole-program devirtualization and control-flow integrity.
Definition at line 185 of file GlobalSplit.cpp.
Referenced by llvm::PassManagerBuilder::populateModulePassManager().
Definition at line 79 of file GraphWriter.cpp.
References llvm::sys::fs::createTemporaryFile(), errs(), and llvm::SmallString< InternalLen >::str().
Referenced by WriteGraph().
| FunctionPass * llvm::createGreedyRegisterAllocator | ( | ) |
Greedy register allocation pass - This pass implements a global register allocator for optimized builds.
Definition at line 597 of file RegAllocGreedy.cpp.
References llvm::AnalysisUsage::addPreserved(), llvm::AnalysisUsage::addRequired(), llvm::TargetRegisterClass::AllocationPriority, assert(), llvm::LiveRange::beginIndex(), llvm::IndexedMap< T, ToIndexT >::clear(), llvm::LiveRange::clear(), llvm::SmallVectorImpl< T >::clear(), llvm::LiveIntervalUnion::Query::collectInterferingVRegs(), dbgs(), llvm::LiveRange::empty(), llvm::LiveRange::endIndex(), llvm::MachineFunctionPass::getAnalysisUsage(), llvm::TargetRegisterInfo::getCostPerUse(), llvm::SlotIndex::getInstrDistance(), llvm::SlotIndexes::getLastIndex(), llvm::TargetRegisterClass::getNumRegs(), llvm::LiveInterval::getSize(), llvm::SlotIndexes::getZeroIndex(), llvm::IndexedMap< T, ToIndexT >::grow(), llvm::LiveRegMatrix::IK_VirtReg, llvm::IndexedMap< T, ToIndexT >::inBounds(), llvm::SetVector< T, SmallVector< T, N >, SmallDenseSet< T, N > >::insert(), llvm::SlotIndex::InstrDist, llvm::LiveIntervalUnion::Query::interferingVRegs(), llvm::AllocationOrder::isHint(), llvm::LiveInterval::isSpillable(), llvm::MCRegisterInfo::DiffListIterator::isValid(), llvm::Register::isVirtualRegister(), LLVM_DEBUG, Matrix, max(), MRI, llvm::AllocationOrder::next(), printReg(), llvm::LiveInterval::reg, Reg, llvm::TargetRegisterInfo::reverseLocalAssignment(), llvm::AllocationOrder::rewind(), llvm::AnalysisUsage::setPreservesCFG(), Size, and llvm::LiveInterval::weight.
Referenced by llvm::TargetPassConfig::createTargetRegisterAllocator().
| guard Widen false loop guard Widen false FunctionPass * llvm::createGuardWideningPass | ( | ) |
Definition at line 879 of file GuardWidening.cpp.
| ModulePass * llvm::createGVExtractionPass | ( | std::vector< GlobalValue *> & | GVs, |
| bool | deleteFn = false |
||
| ) |
createGVExtractionPass - If deleteFn is true, this pass deletes the specified global values.
Otherwise, it deletes as much of the module as possible, except for the global values specified.
Definition at line 158 of file ExtractGV.cpp.
| gvn Early GVN Hoisting of false FunctionPass * llvm::createGVNHoistPass | ( | ) |
Definition at line 1211 of file GVNHoist.cpp.
Referenced by LLVMAddGVNHoistLegacyPass(), and llvm::PassManagerBuilder::populateFunctionPassManager().
| FunctionPass * llvm::createGVNPass | ( | bool | NoMemDepAnalysis = false | ) |
Create a legacy GVN pass.
This also allows parameterizing whether or not MemDep is enabled.
Definition at line 2743 of file GVN.cpp.
Referenced by llvm::NVPTXTargetMachine::getTargetTransformInfo(), llvm::GCNTargetMachine::getTargetTransformInfo(), LLVMAddGVNPass(), llvm::PassManagerBuilder::populateFunctionPassManager(), and llvm::PassManagerBuilder::populateModulePassManager().
| gvn Early GVN sinking of false FunctionPass * llvm::createGVNSinkPass | ( | ) |
Definition at line 930 of file GVNSink.cpp.
Referenced by llvm::PassManagerBuilder::populateFunctionPassManager().
| FunctionPass * llvm::createHardwareLoopsPass | ( | ) |
Create Hardware Loop pass.
Definition at line 524 of file HardwareLoops.cpp.
Referenced by llvm::PPCTargetMachine::createPassConfig(), and llvm::ARMBaseTargetMachine::createPassConfig().
| MCAsmBackend * llvm::createHexagonAsmBackend | ( | const Target & | T, |
| const MCSubtargetInfo & | STI, | ||
| const MCRegisterInfo & | MRI, | ||
| const MCTargetOptions & | Options | ||
| ) |
Definition at line 765 of file HexagonAsmBackend.cpp.
References llvm::MCSubtargetInfo::getCPU(), llvm::Triple::getOS(), llvm::MCELFObjectTargetWriter::getOSABI(), llvm::MCSubtargetInfo::getTargetTriple(), llvm::Hexagon_MC::selectHexagonCPU(), and TT.
Referenced by LLVMInitializeHexagonTargetMC().
| FunctionPass * llvm::createHexagonBitSimplify | ( | ) |
Definition at line 3369 of file HexagonBitSimplify.cpp.
Referenced by llvm::HexagonTargetMachine::createPassConfig(), and createVLIWMachineSched().
| FunctionPass * llvm::createHexagonBranchRelaxation | ( | ) |
Referenced by llvm::HexagonTargetMachine::createPassConfig(), and createVLIWMachineSched().
| FunctionPass * llvm::createHexagonCallFrameInformation | ( | ) |
Referenced by llvm::HexagonTargetMachine::createPassConfig(), and createVLIWMachineSched().
| FunctionPass * llvm::createHexagonCFGOptimizer | ( | ) |
Referenced by llvm::HexagonTargetMachine::createPassConfig(), and createVLIWMachineSched().
| FunctionPass * llvm::createHexagonCommonGEP | ( | ) |
Definition at line 1312 of file HexagonCommonGEP.cpp.
Referenced by llvm::HexagonTargetMachine::createPassConfig(), and createVLIWMachineSched().
| FunctionPass * llvm::createHexagonConstExtenders | ( | ) |
Definition at line 2003 of file HexagonConstExtenders.cpp.
Referenced by llvm::HexagonTargetMachine::createPassConfig(), and createVLIWMachineSched().
| FunctionPass * llvm::createHexagonConstPropagationPass | ( | ) |
Definition at line 3184 of file HexagonConstPropagation.cpp.
Referenced by llvm::HexagonTargetMachine::createPassConfig(), and createVLIWMachineSched().
| FunctionPass * llvm::createHexagonCopyToCombine | ( | ) |
Definition at line 882 of file HexagonCopyToCombine.cpp.
Referenced by llvm::HexagonTargetMachine::createPassConfig(), and createVLIWMachineSched().
| FunctionPass * llvm::createHexagonEarlyIfConversion | ( | ) |
Definition at line 1075 of file HexagonEarlyIfConv.cpp.
Referenced by llvm::HexagonTargetMachine::createPassConfig(), and createVLIWMachineSched().
| std::unique_ptr< MCObjectTargetWriter > llvm::createHexagonELFObjectWriter | ( | uint8_t | OSABI, |
| StringRef | CPU | ||
| ) |
Definition at line 301 of file HexagonELFObjectWriter.cpp.
| MCStreamer * llvm::createHexagonELFStreamer | ( | Triple const & | TT, |
| MCContext & | Context, | ||
| std::unique_ptr< MCAsmBackend > | MAB, | ||
| std::unique_ptr< MCObjectWriter > | OW, | ||
| std::unique_ptr< MCCodeEmitter > | CE | ||
| ) |
Definition at line 152 of file HexagonMCELFStreamer.cpp.
References llvm::HexagonMCELFStreamer::HexagonMCELFStreamer().
Referenced by createMCStreamer().
| FunctionPass * llvm::createHexagonExpandCondsets | ( | ) |
Definition at line 1333 of file HexagonExpandCondsets.cpp.
| FunctionPass * llvm::createHexagonFixupHwLoops | ( | ) |
Referenced by llvm::HexagonTargetMachine::createPassConfig(), and createVLIWMachineSched().
| FunctionPass * llvm::createHexagonGenExtract | ( | ) |
Definition at line 267 of file HexagonGenExtract.cpp.
Referenced by llvm::HexagonTargetMachine::createPassConfig(), and createVLIWMachineSched().
| FunctionPass * llvm::createHexagonGenInsert | ( | ) |
Definition at line 1624 of file HexagonGenInsert.cpp.
References INITIALIZE_PASS_BEGIN(), and INITIALIZE_PASS_DEPENDENCY.
Referenced by llvm::HexagonTargetMachine::createPassConfig(), createVLIWMachineSched(), and isDebug().
| FunctionPass * llvm::createHexagonGenMux | ( | ) |
Definition at line 394 of file HexagonGenMux.cpp.
Referenced by llvm::HexagonTargetMachine::createPassConfig(), and createVLIWMachineSched().
| FunctionPass * llvm::createHexagonGenPredicate | ( | ) |
Definition at line 540 of file HexagonGenPredicate.cpp.
Referenced by llvm::HexagonTargetMachine::createPassConfig(), and createVLIWMachineSched().
| FunctionPass * llvm::createHexagonHardwareLoops | ( | ) |
Definition at line 374 of file HexagonHardwareLoops.cpp.
References dbgs(), E, llvm::MachineLoop::findLoopControlBlock(), llvm::MachineLoopInfo::findLoopPreheader(), llvm::MachineInstr::getDesc(), llvm::MachineFunction::getFunction(), llvm::LoopBase< BlockT, LoopT >::getHeader(), llvm::LoopBase< BlockT, LoopT >::getLoopLatch(), llvm::MachineOperand::getMBB(), llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::MachineFunction::getRegInfo(), llvm::MachineFunction::getSubtarget(), llvm::MachineRegisterInfo::getVRegDef(), I, llvm::MachineBasicBlock::instr_begin(), llvm::MachineBasicBlock::instr_end(), llvm::MCInstrDesc::isAdd(), LLVM_DEBUG, Reg, and SpecPreheader.
Referenced by llvm::HexagonTargetMachine::createPassConfig(), and createVLIWMachineSched().
| FunctionPass * llvm::createHexagonISelDag | ( | HexagonTargetMachine & | TM, |
| CodeGenOpt::Level | OptLevel | ||
| ) |
Definition at line 61 of file HexagonISelDAGToDAG.cpp.
Referenced by llvm::HexagonTargetMachine::createPassConfig(), and createVLIWMachineSched().
| Pass * llvm::createHexagonLoopIdiomPass | ( | ) |
Definition at line 2441 of file HexagonLoopIdiomRecognition.cpp.
Referenced by llvm::HexagonTargetMachine::adjustPassManager(), and createVLIWMachineSched().
| FunctionPass * llvm::createHexagonLoopRescheduling | ( | ) |
Definition at line 3365 of file HexagonBitSimplify.cpp.
Referenced by llvm::HexagonTargetMachine::createPassConfig(), and createVLIWMachineSched().
| MCCodeEmitter * llvm::createHexagonMCCodeEmitter | ( | const MCInstrInfo & | MCII, |
| const MCRegisterInfo & | MRI, | ||
| MCContext & | MCT | ||
| ) |
Definition at line 794 of file HexagonMCCodeEmitter.cpp.
Referenced by LLVMInitializeHexagonTargetMC().
| llvm::MCInstrInfo * llvm::createHexagonMCInstrInfo | ( | ) |
Definition at line 210 of file HexagonMCTargetDesc.cpp.
References X.
Referenced by LLVMInitializeHexagonTargetMC().
| MCRegisterInfo* llvm::createHexagonMCRegisterInfo | ( | StringRef | TT | ) |
Referenced by LLVMInitializeHexagonTargetMC().
| FunctionPass * llvm::createHexagonNewValueJump | ( | ) |
Definition at line 725 of file HexagonNewValueJump.cpp.
Referenced by llvm::HexagonTargetMachine::createPassConfig(), and createVLIWMachineSched().
| FunctionPass * llvm::createHexagonOptAddrMode | ( | ) |
Definition at line 826 of file HexagonOptAddrMode.cpp.
Referenced by llvm::HexagonTargetMachine::createPassConfig(), and createVLIWMachineSched().
| FunctionPass * llvm::createHexagonOptimizeSZextends | ( | ) |
Definition at line 146 of file HexagonOptimizeSZextends.cpp.
Referenced by llvm::HexagonTargetMachine::createPassConfig(), and createVLIWMachineSched().
| FunctionPass * llvm::createHexagonPacketizer | ( | bool | Minimal | ) |
Definition at line 1884 of file HexagonVLIWPacketizer.cpp.
Referenced by llvm::HexagonTargetMachine::createPassConfig(), and createVLIWMachineSched().
| FunctionPass * llvm::createHexagonPeephole | ( | ) |
Definition at line 298 of file HexagonPeephole.cpp.
Referenced by llvm::HexagonTargetMachine::createPassConfig(), and createVLIWMachineSched().
| FunctionPass * llvm::createHexagonRDFOpt | ( | ) |
Definition at line 339 of file HexagonRDFOpt.cpp.
Referenced by llvm::HexagonTargetMachine::createPassConfig(), and createVLIWMachineSched().
| FunctionPass * llvm::createHexagonSplitConst32AndConst64 | ( | ) |
Definition at line 111 of file HexagonSplitConst32AndConst64.cpp.
Referenced by llvm::HexagonTargetMachine::createPassConfig(), and createVLIWMachineSched().
| FunctionPass * llvm::createHexagonSplitDoubleRegs | ( | ) |
Definition at line 1236 of file HexagonSplitDouble.cpp.
Referenced by llvm::HexagonTargetMachine::createPassConfig(), and createVLIWMachineSched().
| FunctionPass * llvm::createHexagonStoreWidening | ( | ) |
Definition at line 606 of file HexagonStoreWidening.cpp.
Referenced by llvm::HexagonTargetMachine::createPassConfig(), and createVLIWMachineSched().
| ImmutablePass* llvm::createHexagonTargetTransformInfoPass | ( | const HexagonTargetMachine * | TM | ) |
Creates a Hexagon-specific Target Transformation Info pass.
| Pass * llvm::createHexagonVectorLoopCarriedReusePass | ( | ) |
Definition at line 748 of file HexagonVectorLoopCarriedReuse.cpp.
Referenced by llvm::HexagonTargetMachine::adjustPassManager(), and createVLIWMachineSched().
| FunctionPass * llvm::createHexagonVectorPrint | ( | ) |
Referenced by llvm::HexagonTargetMachine::createPassConfig(), and createVLIWMachineSched().
| FunctionPass * llvm::createHexagonVExtract | ( | ) |
Definition at line 193 of file HexagonVExtract.cpp.
Referenced by llvm::HexagonTargetMachine::createPassConfig(), and createVLIWMachineSched().
| Hot Cold false ModulePass * llvm::createHotColdSplittingPass | ( | ) |
createHotColdSplittingPass - This pass outlines cold blocks into a separate function(s).
Definition at line 742 of file HotColdSplitting.cpp.
Referenced by llvm::PassManagerBuilder::populateModulePassManager().
| HWAddressSanitizer false FunctionPass * llvm::createHWAddressSanitizerLegacyPassPass | ( | bool | CompileKernel = false, |
| bool | Recover = false |
||
| ) |
Definition at line 340 of file HWAddressSanitizer.cpp.
References assert().
| ScheduleDAGSDNodes * llvm::createHybridListDAGScheduler | ( | SelectionDAGISel * | IS, |
| CodeGenOpt::Level | OptLevel | ||
| ) |
createHybridListDAGScheduler - This creates a bottom up register pressure aware list scheduler that make use of latency information to avoid stalls for long latency instructions in low register pressure mode.
In high register pressure mode it schedules to reduce register pressure.
Definition at line 3160 of file ScheduleDAGRRList.cpp.
References llvm::TargetSubtargetInfo::getInstrInfo(), llvm::TargetSubtargetInfo::getRegisterInfo(), llvm::MachineFunction::getSubtarget(), llvm::SelectionDAGISel::MF, TII, llvm::SelectionDAGISel::TLI, and TRI.
Referenced by createDefaultScheduler(), and llvm::RegisterScheduler::setListener().
| FunctionPass * llvm::createIfConverter | ( | std::function< bool(const MachineFunction &)> | Ftor | ) |
Definition at line 2365 of file IfConversion.cpp.
Referenced by llvm::ARMBaseTargetMachine::createPassConfig().
| ScheduleDAGSDNodes * llvm::createILPListDAGScheduler | ( | SelectionDAGISel * | IS, |
| CodeGenOpt::Level | OptLevel | ||
| ) |
createILPListDAGScheduler - This creates a bottom up register pressure aware list scheduler that tries to increase instruction level parallelism in low register pressure mode.
In high register pressure mode it schedules to reduce register pressure.
Definition at line 3176 of file ScheduleDAGRRList.cpp.
References llvm::TargetSubtargetInfo::getInstrInfo(), llvm::TargetSubtargetInfo::getRegisterInfo(), llvm::MachineFunction::getSubtarget(), llvm::SelectionDAGISel::MF, TII, llvm::SelectionDAGISel::TLI, and TRI.
Referenced by createDefaultScheduler(), and llvm::RegisterScheduler::setListener().
| FunctionPass* llvm::createIndirectBrExpandPass | ( | ) |
| Pass * llvm::createInductiveRangeCheckEliminationPass | ( | ) |
Definition at line 1895 of file InductiveRangeCheckElimination.cpp.
Definition at line 3215 of file IndVarSimplify.cpp.
Referenced by LLVMAddIndVarSimplifyPass(), llvm::PassManagerBuilder::populateFunctionPassManager(), and llvm::PassManagerBuilder::populateModulePassManager().
| FunctionPass * llvm::createInferAddressSpacesPass | ( | unsigned | AddressSpace = ~0u | ) |
Definition at line 1027 of file InferAddressSpaces.cpp.
Referenced by llvm::AMDGPUTargetMachine::adjustPassManager(), llvm::NVPTXTargetMachine::getTargetTransformInfo(), and llvm::GCNTargetMachine::getTargetTransformInfo().
Create a legacy pass manager instance of a pass to infer function attributes.
Definition at line 83 of file InferFunctionAttrs.cpp.
Referenced by llvm::PassManagerBuilder::populateModulePassManager().
| std::unique_ptr< raw_fd_ostream > llvm::CreateInfoOutputFile | ( | ) |
Return a file stream to print our output on.
Definition at line 58 of file Timer.cpp.
References errs(), getLibSupportInfoOutputFilename(), llvm::sys::fs::OF_Append, llvm::sys::fs::OF_Text, and OutputFilename.
Referenced by llvm::TimePassesHandler::print(), PrintStatistics(), and llvm::TimerGroup::~TimerGroup().
| Inject TLI false FunctionPass * llvm::createInjectTLIMappingsLegacyPass | ( | ) |
Definition at line 184 of file InjectTLIMappings.cpp.
| Spiller * llvm::createInlineSpiller | ( | MachineFunctionPass & | pass, |
| MachineFunction & | mf, | ||
| VirtRegMap & | vrm | ||
| ) |
Create and return a spiller that will insert spill code directly instead of deferring though VirtRegMap.
Definition at line 241 of file InlineSpiller.cpp.
Referenced by normalizePBQPSpillWeight(), and llvm::Spiller::postOptimization().
| FunctionPass* llvm::createInstCountPass | ( | ) |
| ModulePass * llvm::createInstrOrderFilePass | ( | ) |
Definition at line 211 of file InstrOrderFile.cpp.
Referenced by llvm::PassManagerBuilder::populateModulePassManager().
| Frontend instrumentation based coverage false ModulePass * llvm::createInstrProfilingLegacyPass | ( | const InstrProfOptions & | Options = InstrProfOptions(), |
| bool | IsCS = false |
||
| ) |
Insert frontend instrumentation based profiling. Parameter IsCS indicates if.
Definition at line 398 of file InstrProfiling.cpp.
Referenced by llvm::PassManagerBuilder::populateFunctionPassManager().
| FunctionPass * llvm::createInstructionCombiningPass | ( | bool | ExpensiveCombines = true | ) |
Definition at line 3743 of file InstructionCombining.cpp.
References llvm::InstructionCombiningPass::InstructionCombiningPass().
Referenced by llvm::PassManagerBuilder::addExtension(), LLVMAddInstructionCombiningPass(), and llvm::PassManagerBuilder::populateFunctionPassManager().
| FunctionPass * llvm::createInstructionCombiningPass | ( | bool | ExpensiveCombines, |
| unsigned | MaxIterations | ||
| ) |
Definition at line 3747 of file InstructionCombining.cpp.
References llvm::InstructionCombiningPass::InstructionCombiningPass().
| FunctionPass* llvm::createInstructionNamerPass | ( | ) |
| Remove redundant false FunctionPass * llvm::createInstSimplifyLegacyPass | ( | ) |
Create a legacy pass that does instruction simplification on each instruction in a function.
Definition at line 127 of file InstSimplifyPass.cpp.
Referenced by llvm::PassManagerBuilder::populateModulePassManager().
| Lower interleaved memory accesses to target specific false FunctionPass * llvm::createInterleavedAccessPass | ( | ) |
InterleavedAccess Pass - This pass identifies and matches interleaved memory accesses to target specific intrinsics.
Definition at line 135 of file InterleavedAccessPass.cpp.
Referenced by llvm::AArch64TargetMachine::createPassConfig(), llvm::X86TargetMachine::createPassConfig(), and llvm::ARMBaseTargetMachine::createPassConfig().
| Combine interleaved loads into wide loads and shufflevector false FunctionPass * llvm::createInterleavedLoadCombinePass | ( | ) |
InterleavedLoadCombines Pass - This pass identifies interleaved loads and combines them into wide loads detectable by InterleavedAccessPass.
Definition at line 1357 of file InterleavedLoadCombinePass.cpp.
References P.
Referenced by llvm::AArch64TargetMachine::createPassConfig().
Create an interleave shuffle mask.
This function creates a shuffle mask for interleaving NumVecs vectors of vectorization factor VF into a single wide vector. The mask is of the form:
<0, VF, VF * 2, ..., VF * (NumVecs - 1), 1, VF + 1, VF * 2 + 1, ...>
For example, the mask for VF = 4 and NumVecs = 2 is:
<0, 4, 1, 5, 2, 6, 3, 7>.
Definition at line 668 of file VectorUtils.cpp.
References llvm::ConstantVector::get(), llvm::IRBuilderBase::getInt32(), llvm::BitmaskEnumDetail::Mask(), and llvm::SmallVectorTemplateBase< T >::push_back().
Referenced by llvm::InnerLoopVectorizer::vectorizeInterleaveGroup().
| ModulePass * llvm::createInternalizePass | ( | std::function< bool(const GlobalValue &)> | MustPreserveGV | ) |
createInternalizePass - This pass loops over all of the functions in the input module, internalizing all globals (functions and variables) it can.
Before internalizing a symbol, the callback MustPreserveGV is invoked and gives to the client the ability to prevent internalizing specific symbols.
The symbol in DSOList are internalized if it is safe to drop them from the symbol table.
Note that commandline options that are used with the above function are not used now!
Definition at line 288 of file Internalize.cpp.
Referenced by llvm::AMDGPUTargetMachine::adjustPassManager(), LLVMAddInternalizePass(), and LLVMAddInternalizePassWithMustPreservePredicate().
| ModulePass* llvm::createInternalizePass | ( | ) |
createInternalizePass - Same as above, but with an empty exportList.
| ModulePass* llvm::createIPConstantPropagationPass | ( | ) |
createIPConstantPropagationPass - This pass propagates constants from call sites into the bodies of functions.
Referenced by LLVMAddIPConstantPropagationPass().
| Interprocedural Sparse Conditional Constant false ModulePass * llvm::createIPSCCPPass | ( | ) |
createIPSCCPPass - This pass propagates constants from call sites into the bodies of functions, and keeps track of whether basic blocks are executable in the process.
Definition at line 93 of file SCCP.cpp.
Referenced by LLVMAddIPSCCPPass(), and llvm::PassManagerBuilder::populateModulePassManager().
Definition at line 1133 of file InstrProf.cpp.
References llvm::GlobalValue::DefaultVisibility, llvm::GlobalValue::ExternalLinkage, llvm::Module::getContext(), llvm::Type::getInt64Ty(), llvm::Constant::getIntegerValue(), llvm::Module::getOrInsertComdat(), llvm::Module::getTargetTriple(), TT, llvm::tgtok::VarName, and llvm::GlobalValue::WeakAnyLinkage.
Referenced by InstrumentAllFunctions(), and llvm::PGOInstrumentationGenCreateVar::run().
Definition at line 55 of file IVUsers.cpp.
Referenced by llvm::IVUsers::isIVUserOrOperand().
| ModulePass* llvm::createJumpInstrTablesPass | ( | ) |
createJumpInstrTables - This pass creates jump-instruction tables.
| jump Jump false FunctionPass * llvm::createJumpThreadingPass | ( | int | Threshold = -1 | ) |
Definition at line 168 of file JumpThreading.cpp.
Referenced by LLVMAddJumpThreadingPass(), llvm::PassManagerBuilder::populateFunctionPassManager(), and llvm::PassManagerBuilder::populateModulePassManager().
| Pass* llvm::createLAAPass | ( | ) |
Definition at line 2465 of file LoopAccessAnalysis.cpp.
References llvm::LoopAccessLegacyAnalysis::LoopAccessLegacyAnalysis().
| MCAsmBackend * llvm::createLanaiAsmBackend | ( | const Target & | T, |
| const MCSubtargetInfo & | STI, | ||
| const MCRegisterInfo & | MRI, | ||
| const MCTargetOptions & | Options | ||
| ) |
Definition at line 168 of file LanaiAsmBackend.cpp.
References llvm::Triple::getOS(), llvm::MCSubtargetInfo::getTargetTriple(), llvm::Triple::isOSBinFormatELF(), llvm_unreachable, and TT.
Referenced by LLVMInitializeLanaiTargetMC().
| FunctionPass * llvm::createLanaiDelaySlotFillerPass | ( | const LanaiTargetMachine & | TM | ) |
Definition at line 85 of file LanaiDelaySlotFiller.cpp.
References assert(), BuildMI(), llvm::SmallSet< T, N, C >::count(), E, llvm::MCInstrDesc::getNumOperands(), llvm::MachineOperand::getReg(), llvm::ilist_iterator< OptionsT, IsReverse, IsConst >::getReverse(), I, llvm::SmallSet< T, N, C >::insert(), llvm::MachineBasicBlock::instr_begin(), llvm::MachineBasicBlock::instr_end(), llvm::MachineBasicBlock::instr_rend(), llvm::MachineOperand::isDef(), llvm::MachineOperand::isReg(), llvm::MachineOperand::isUse(), llvm::MCRegAliasIterator::isValid(), MI, NopDelaySlotFiller, Reg, llvm::ARCISD::RET, and llvm::MachineBasicBlock::splice().
Referenced by llvm::LanaiTargetMachine::createPassConfig().
| std::unique_ptr< MCObjectTargetWriter > llvm::createLanaiELFObjectWriter | ( | uint8_t | OSABI | ) |
Definition at line 90 of file LanaiELFObjectWriter.cpp.
Referenced by adjustFixupValue().
| FunctionPass * llvm::createLanaiISelDag | ( | LanaiTargetMachine & | TM | ) |
Definition at line 331 of file LanaiISelDAGToDAG.cpp.
Referenced by llvm::LanaiTargetMachine::createPassConfig().
| llvm::MCCodeEmitter * llvm::createLanaiMCCodeEmitter | ( | const MCInstrInfo & | MCII, |
| const MCRegisterInfo & | MRI, | ||
| MCContext & | Ctx | ||
| ) |
Definition at line 306 of file LanaiMCCodeEmitter.cpp.
Referenced by LLVMInitializeLanaiTargetMC().
| FunctionPass * llvm::createLanaiMemAluCombinerPass | ( | ) |
Definition at line 422 of file LanaiMemAluCombiner.cpp.
Referenced by llvm::LanaiTargetMachine::createPassConfig().
| FunctionPass* llvm::createLanaiSetflagAluCombinerPass | ( | ) |
| FunctionPass * llvm::createLazyValueInfoPass | ( | ) |
createLazyValueInfoPass - This creates an instance of the LazyValueInfo pass.
Definition at line 62 of file LazyValueInfo.cpp.
References llvm::LazyValueInfoWrapperPass::LazyValueInfoWrapperPass().
Definition at line 467 of file LCSSA.cpp.
Referenced by llvm::R600TargetMachine::createPassConfig().
| Legacy Divergence true FunctionPass * llvm::createLegacyDivergenceAnalysisPass | ( | ) |
Definition at line 297 of file LegacyDivergenceAnalysis.cpp.
References llvm::LegacyDivergenceAnalysis::LegacyDivergenceAnalysis().
| AAResults llvm::createLegacyPMAAResults | ( | Pass & | P, |
| Function & | F, | ||
| BasicAAResult & | BAR | ||
| ) |
A helper for the legacy pass manager to create a AAResults object populated to the best of our ability for a particular function when inside of a ModulePass or a CallGraphSCCPass.
If a ModulePass or a CallGraphSCCPass calls createLegacyPMAAResults, it also needs to call addUsedAAAnalyses in getAnalysisUsage.
Definition at line 852 of file AliasAnalysis.cpp.
References DisableBasicAA, llvm::Pass::getAnalysis(), llvm::Pass::getAnalysisIfAvailable(), and llvm::TargetLibraryInfoWrapperPass::getTLI().
Referenced by llvm::ExternalAAWrapperPass::getAnalysisUsage(), and llvm::LegacyAARGetter::operator()().
| BasicAAResult llvm::createLegacyPMBasicAAResult | ( | Pass & | P, |
| Function & | F | ||
| ) |
A helper for the legacy pass manager to create a BasicAAResult object populated to the best of our ability for a particular function when inside of a ModulePass or a CallGraphSCCPass.
Definition at line 2097 of file BasicAliasAnalysis.cpp.
References F(), llvm::Pass::getAnalysis(), llvm::Module::getDataLayout(), and llvm::GlobalValue::getParent().
Referenced by llvm::BasicAAWrapperPass::getResult(), and llvm::LegacyAARGetter::operator()().
| LegalizerHelper::LegalizeResult llvm::createLibcall | ( | MachineIRBuilder & | MIRBuilder, |
| RTLIB::Libcall | Libcall, | ||
| const CallLowering::ArgInfo & | Result, | ||
| ArrayRef< CallLowering::ArgInfo > | Args | ||
| ) |
Helper function that creates the given libcall.
Definition at line 360 of file LegalizerHelper.cpp.
References llvm::ArrayRef< T >::begin(), llvm::CallLowering::CallLoweringInfo::CallConv, llvm::CallLowering::CallLoweringInfo::Callee, copy(), llvm::MachineOperand::CreateES(), llvm::ArrayRef< T >::end(), llvm::TargetSubtargetInfo::getCallLowering(), llvm::MachineIRBuilder::getMF(), llvm::MachineFunction::getSubtarget(), llvm::TargetSubtargetInfo::getTargetLowering(), Info, llvm::LegalizerHelper::Legalized, Name, llvm::CallLowering::CallLoweringInfo::OrigArgs, llvm::CallLowering::CallLoweringInfo::OrigRet, and llvm::LegalizerHelper::UnableToLegalize.
Referenced by conversionLibcall(), llvm::LegalizerHelper::getLegalizerInfo(), llvm::ARMLegalizerInfo::legalizeCustom(), and simpleLibcall().
| FunctionPass * llvm::createLibCallsShrinkWrapPass | ( | ) |
Definition at line 547 of file LibCallsShrinkWrap.cpp.
Referenced by llvm::PassManagerBuilder::populateFunctionPassManager().
Definition at line 316 of file LICM.cpp.
Referenced by llvm::AArch64TargetMachine::createPassConfig(), llvm::PPCTargetMachine::createPassConfig(), llvm::GCNTargetMachine::getTargetTransformInfo(), LLVMAddLICMPass(), llvm::PassManagerBuilder::populateFunctionPassManager(), and llvm::PassManagerBuilder::populateModulePassManager().
Definition at line 317 of file LICM.cpp.
References any_of(), assert(), llvm::ICFLoopSafetyInfo::computeLoopSafetyInfo(), dbgs(), DisablePromotion, llvm::ScalarEvolution::forgetLoopDispositions(), formLCSSARecursively(), llvm::MemorySSA::getBlockAccesses(), llvm::LoopBase< BlockT, LoopT >::getBlocks(), llvm::LoopBase< BlockT, LoopT >::getHeader(), llvm::LoopBase< BlockT, LoopT >::getLoopPreheader(), llvm::DominatorTreeBase< NodeT, IsPostDom >::getNode(), llvm::LoopBase< BlockT, LoopT >::getParentLoop(), llvm::BasicBlock::getTerminator(), llvm::LoopBase< BlockT, LoopT >::getUniqueExitBlocks(), llvm::LoopBase< BlockT, LoopT >::hasDedicatedExits(), hasDisableLICMTransformsHint(), hoistRegion(), llvm::SetVector< T, Vector, Set >::insert(), llvm::Loop::isLCSSAForm(), llvm::Loop::isLoopInvariant(), LLVM_DEBUG, promoteLoopAccessesToScalars(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::SmallVectorImpl< T >::reserve(), sinkRegion(), llvm::SmallVectorBase::size(), and VerifyMemorySSA.
| FunctionPass * llvm::createLintPass | ( | ) |
| std::unique_ptr< ScheduleDAGMutation > llvm::createLoadClusterDAGMutation | ( | const TargetInstrInfo * | TII, |
| const TargetRegisterInfo * | TRI | ||
| ) |
Definition at line 1544 of file MachineScheduler.cpp.
Referenced by llvm::AArch64beTargetMachine::AArch64beTargetMachine(), createGCNMaxOccupancyMachineScheduler(), createIterativeGCNMaxOccupancyMachineScheduler(), createIterativeILPMachineScheduler(), llvm::GCNTargetMachine::getTargetTransformInfo(), and llvm::PostGenericScheduler::releaseBottomNode().
Create a legacy pass manager instance of the LoadStoreVectorizer pass.
Definition at line 246 of file LoadStoreVectorizer.cpp.
References F(), llvm::Function::hasFnAttribute(), and runOnFunction().
Referenced by llvm::NVPTXTargetMachine::getTargetTransformInfo(), and llvm::GCNTargetMachine::getTargetTransformInfo().
| loop data Loop Data false FunctionPass * llvm::createLoopDataPrefetchPass | ( | ) |
Definition at line 137 of file LoopDataPrefetch.cpp.
References abs(), dyn_cast(), and llvm::SCEVAddRecExpr::getStepRecurrence().
Referenced by llvm::HexagonTargetMachine::createPassConfig(), llvm::AArch64TargetMachine::createPassConfig(), llvm::PPCTargetMachine::createPassConfig(), and llvm::SystemZTargetMachine::SystemZTargetMachine().
Definition at line 250 of file LoopDeletion.cpp.
References dbgs(), Deleted, deleteLoopIfDead(), llvm::Loop::dump(), LLVM_DEBUG, llvm::LPPassManager::markLoopAsDeleted(), and Unmodified.
Referenced by LLVMAddLoopDeletionPass(), llvm::PassManagerBuilder::populateFunctionPassManager(), and llvm::PassManagerBuilder::populateModulePassManager().
| FunctionPass* llvm::createLoopDistributePass | ( | ) |
Referenced by llvm::PassManagerBuilder::populateModulePassManager().
| Pass* llvm::createLoopExtractorPass | ( | ) |
createLoopExtractorPass - This pass extracts all natural loops from the program into a function if it can.
| FunctionPass* llvm::createLoopFusePass | ( | ) |
| Pass * llvm::createLoopGuardWideningPass | ( | ) |
Definition at line 883 of file GuardWidening.cpp.
Definition at line 282 of file LoopIdiomRecognize.cpp.
Referenced by LLVMAddLoopIdiomPass(), and llvm::PassManagerBuilder::populateFunctionPassManager().
| loop Simplify instructions in false Pass * llvm::createLoopInstSimplifyPass | ( | ) |
Definition at line 255 of file LoopInstSimplify.cpp.
Referenced by llvm::PassManagerBuilder::populateFunctionPassManager().
Definition at line 1619 of file LoopInterchange.cpp.
Referenced by llvm::PassManagerBuilder::populateFunctionPassManager(), and llvm::PassManagerBuilder::populateModulePassManager().
| FunctionPass * llvm::createLoopLoadEliminationPass | ( | ) |
Definition at line 687 of file LoopLoadElimination.cpp.
Referenced by llvm::PassManagerBuilder::populateModulePassManager().
Definition at line 354 of file LoopPredication.cpp.
| Pass * llvm::createLoopRerollPass | ( | ) |
Definition at line 494 of file LoopRerollPass.cpp.
Referenced by LLVMAddLoopRerollPass(), and llvm::PassManagerBuilder::populateFunctionPassManager().
Definition at line 125 of file LoopRotation.cpp.
Referenced by LLVMAddLoopRotatePass(), llvm::PassManagerBuilder::populateFunctionPassManager(), and llvm::PassManagerBuilder::populateModulePassManager().
Definition at line 765 of file LoopSimplifyCFG.cpp.
Referenced by LLVMAddLoopSimplifyCFGPass(), and llvm::PassManagerBuilder::populateFunctionPassManager().
| Pass * llvm::createLoopSimplifyPass | ( | ) |
Definition at line 793 of file LoopSimplify.cpp.
References all_of(), assert(), llvm::LoopInfoBase< BlockT, LoopT >::begin(), E, EnableMSSALoopDependency, llvm::LoopInfoBase< BlockT, LoopT >::end(), F(), I, llvm::Loop::isRecursivelyLCSSAForm(), LCSSAID, runOnFunction(), and simplifyLoop().
| Pass* llvm::createLoopSinkPass | ( | ) |
Referenced by LLVMAddLoopSinkPass(), and llvm::PassManagerBuilder::populateModulePassManager().
Definition at line 5777 of file LoopStrengthReduce.cpp.
Referenced by llvm::TargetPassConfig::addIRPasses().
Definition at line 519 of file LoopUnrollAndJamPass.cpp.
Referenced by LLVMAddLoopUnrollAndJamPass(), and llvm::PassManagerBuilder::populateModulePassManager().
| Pass * llvm::createLoopUnrollPass | ( | int | OptLevel = 2, |
| bool | OnlyWhenForced = false, |
||
| bool | ForgetAllSCEV = false, |
||
| int | Threshold = -1, |
||
| int | Count = -1, |
||
| int | AllowPartial = -1, |
||
| int | Runtime = -1, |
||
| int | UpperBound = -1, |
||
| int | AllowPeeling = -1 |
||
| ) |
Definition at line 1273 of file LoopUnrollPass.cpp.
References None.
Referenced by createSimpleLoopUnrollPass(), LLVMAddLoopUnrollPass(), and llvm::PassManagerBuilder::populateModulePassManager().
| loop Unswitch false Pass * llvm::createLoopUnswitchPass | ( | bool | OptimizeForSize = false, |
| bool | hasBranchDivergence = false |
||
| ) |
Definition at line 399 of file LoopUnswitch.cpp.
Referenced by LLVMAddLoopUnswitchPass(), llvm::PassManagerBuilder::populateFunctionPassManager(), and llvm::PassManagerBuilder::populateModulePassManager().
| Pass * llvm::createLoopVectorizePass | ( | ) |
Definition at line 6404 of file LoopVectorize.cpp.
Referenced by LLVMAddLoopVectorizePass(), and llvm::PassManagerBuilder::populateModulePassManager().
| Pass * llvm::createLoopVectorizePass | ( | bool | InterleaveOnlyWhenForced, |
| bool | VectorizeOnlyWhenForced | ||
| ) |
Definition at line 6406 of file LoopVectorize.cpp.
References getLoadStorePointerOperand(), llvm::LoopVectorizationLegality::isConsecutivePtr(), and llvm::InnerLoopVectorizer::Legal.
Definition at line 641 of file LoopVersioningLICM.cpp.
Referenced by llvm::PassManagerBuilder::populateModulePassManager().
| FunctionPass * llvm::createLoopVersioningPass | ( | ) |
Definition at line 325 of file LoopVersioning.cpp.
| FunctionPass* llvm::createLowerAggrCopies | ( | ) |
Referenced by llvm::NVPTXTargetMachine::getTargetTransformInfo().
| Pass* llvm::createLowerAtomicPass | ( | ) |
Referenced by llvm::ARMBaseTargetMachine::createPassConfig(), and LLVMAddLowerAtomicPass().
| FunctionPass* llvm::createLowerConstantIntrinsicsPass | ( | ) |
| ModulePass* llvm::createLowerEmuTLSPass | ( | ) |
LowerEmuTLS - This pass generates __emutls_[vt].xyz variables for all TLS variables for the emulated TLS model.
Referenced by llvm::TargetPassConfig::addISelPasses().
| FunctionPass* llvm::createLowerExpectIntrinsicPass | ( | ) |
| Pass* llvm::createLowerGuardIntrinsicPass | ( | ) |
| FunctionPass * llvm::createLowerInvokePass | ( | ) |
Definition at line 87 of file LowerInvoke.cpp.
Referenced by llvm::TargetPassConfig::addPassesToHandleExceptions(), and llvm::WebAssemblyTargetMachine::createPassConfig().
Definition at line 892 of file LowerMatrixIntrinsics.cpp.
Referenced by llvm::PassManagerBuilder::populateModulePassManager().
| Lower SwitchInst s to false FunctionPass * llvm::createLowerSwitchPass | ( | ) |
Definition at line 143 of file LowerSwitch.cpp.
References llvm::Function::begin(), llvm::SmallPtrSetImpl< PtrType >::count(), DeleteDeadBlock(), llvm::LazyValueInfo::disableDT(), E, llvm::Function::end(), llvm::LazyValueInfo::eraseBlock(), F(), llvm::BasicBlock::getTerminator(), I, LLVM_ATTRIBUTE_USED, runOnFunction(), and SI.
Referenced by llvm::GCNTargetMachine::getTargetTransformInfo(), and LLVMAddLowerSwitchPass().
| ModulePass* llvm::createLowerTypeTestsPass | ( | ModuleSummaryIndex * | ExportSummary, |
| const ModuleSummaryIndex * | ImportSummary | ||
| ) |
This pass lowers type metadata and the llvm.type.test intrinsic to bitsets.
The behavior depends on the summary arguments:
Referenced by llvm::PassManagerBuilder::populateLTOPassManager(), and llvm::PassManagerBuilder::populateThinLTOPassManager().
| Pass* llvm::createLowerWidenableConditionPass | ( | ) |
| MachineFunctionPass* llvm::createMachineFunctionPrinterPass | ( | raw_ostream & | OS, |
| const std::string & | Banner = "" |
||
| ) |
MachineFunctionPrinter pass - This pass prints out the machine function to the given stream as a debugging tool.
Referenced by llvm::TargetPassConfig::addPrintPass(), and INITIALIZE_PASS().
| ModulePass * llvm::createMachineOutlinerPass | ( | bool | RunOnAllFunctions = true | ) |
This pass performs outlining on machine instructions directly before printing assembly.
Definition at line 942 of file MachineOutliner.cpp.
Referenced by llvm::TargetPassConfig::addMachinePasses().
| FunctionPass* llvm::createMachineRegionInfoPass | ( | ) |
Definition at line 145 of file MachineRegionInfo.cpp.
References llvm::MachineRegionInfoPass::MachineRegionInfoPass().
| FunctionPass* llvm::createMachineVerifierPass | ( | const std::string & | Banner | ) |
createMachineVerifierPass - This pass verifies cenerated machine code instructions for correctness.
Referenced by llvm::TargetPassConfig::addVerifyPass().
| std::unique_ptr< MCObjectWriter > llvm::createMachObjectWriter | ( | std::unique_ptr< MCMachObjectTargetWriter > | MOTW, |
| raw_pwrite_stream & | OS, | ||
| bool | IsLittleEndian | ||
| ) |
Construct a new Mach-O writer instance.
This routine takes ownership of the target writer subclass.
| MOTW | - The target specific Mach-O writer subclass. |
| OS | - The stream to write to. |
Definition at line 1048 of file MachObjectWriter.cpp.
Referenced by llvm::MachObjectWriter::addRelocation(), and llvm::MCAsmBackend::createObjectWriter().
| MCStreamer * llvm::createMachOStreamer | ( | MCContext & | Ctx, |
| std::unique_ptr< MCAsmBackend > && | TAB, | ||
| std::unique_ptr< MCObjectWriter > && | OW, | ||
| std::unique_ptr< MCCodeEmitter > && | CE, | ||
| bool | RelaxAll, | ||
| bool | DWARFMustBeAtTheEnd, | ||
| bool | LabelSections = false |
||
| ) |
Definition at line 506 of file MCMachOStreamer.cpp.
References llvm::MCContext::getObjectFileInfo(), llvm::MCObjectFileInfo::getSDKVersion(), and llvm::MCObjectFileInfo::getTargetTriple().
Referenced by createARMMachOStreamer(), createMachOStreamer(), llvm::Target::createMCObjectStreamer(), and LLVMInitializeAArch64TargetMC().
| std::unique_ptr< ScheduleDAGMutation > llvm::createMacroFusionDAGMutation | ( | ShouldSchedulePredTy | shouldScheduleAdjacent | ) |
Create a DAG scheduling mutation to pair instructions back to back for instructions that benefit according to the target-specific shouldScheduleAdjacent predicate function.
Definition at line 201 of file MacroFusion.cpp.
References EnableMacroFusion, and shouldScheduleAdjacent().
Referenced by createAArch64MacroFusionDAGMutation(), createAMDGPUMacroFusionDAGMutation(), and createARMMacroFusionDAGMutation().
| MCAsmParser * llvm::createMCAsmParser | ( | SourceMgr & | SM, |
| MCContext & | C, | ||
| MCStreamer & | Out, | ||
| const MCAsmInfo & | MAI, | ||
| unsigned | CB = 0 |
||
| ) |
Create an MCAsmParser instance.
Definition at line 6108 of file AsmParser.cpp.
Referenced by llvm::MCAsmParser::clearPendingErrors(), and srcMgrDiagHandler().
| MCRelocationInfo * llvm::createMCRelocationInfo | ( | const Triple & | TT, |
| MCContext & | Ctx | ||
| ) |
Definition at line 27 of file MCRelocationInfo.cpp.
References llvm::MCRelocationInfo::MCRelocationInfo().
Referenced by createARMMCRelocationInfo(), createLanaiElfRelocation(), llvm::Target::createMCRelocationInfo(), and createX86MCRelocationInfo().
| MCSymbolizer * llvm::createMCSymbolizer | ( | const Triple & | TT, |
| LLVMOpInfoCallback | GetOpInfo, | ||
| LLVMSymbolLookupCallback | SymbolLookUp, | ||
| void * | DisInfo, | ||
| MCContext * | Ctx, | ||
| std::unique_ptr< MCRelocationInfo > && | RelInfo | ||
| ) |
Definition at line 190 of file MCExternalSymbolizer.cpp.
References assert(), llvm::MCExternalSymbolizer::MCExternalSymbolizer(), and llvm::MCSymbolizer::RelInfo.
Referenced by llvm::Target::createMCSymbolizer().
| void llvm::createMemCpyLoopKnownSize | ( | Instruction * | InsertBefore, |
| Value * | SrcAddr, | ||
| Value * | DstAddr, | ||
| ConstantInt * | CopyLen, | ||
| unsigned | SrcAlign, | ||
| unsigned | DestAlign, | ||
| bool | SrcIsVolatile, | ||
| bool | DstIsVolatile, | ||
| const TargetTransformInfo & | TTI | ||
| ) |
Emit a loop implementing the semantics of an llvm.memcpy whose size is a compile time constant.
Loop is inserted at InsertBefore.
Definition at line 25 of file LowerMemIntrinsics.cpp.
References llvm::PHINode::addIncoming(), assert(), llvm::BasicBlock::Create(), llvm::IRBuilder< T, Inserter >::CreateAdd(), llvm::IRBuilder< T, Inserter >::CreateCondBr(), llvm::IRBuilder< T, Inserter >::CreateICmpULT(), llvm::IRBuilder< T, Inserter >::CreateInBoundsGEP(), llvm::IRBuilder< T, Inserter >::CreateLoad(), llvm::IRBuilder< T, Inserter >::CreatePHI(), llvm::IRBuilder< T, Inserter >::CreateStore(), llvm::ConstantInt::get(), llvm::PointerType::get(), llvm::BasicBlock::getContext(), llvm::BasicBlock::getFirstNonPHI(), getLoopOperandSizeInBytes(), llvm::TargetTransformInfo::getMemcpyLoopLoweringType(), llvm::TargetTransformInfo::getMemcpyLoopResidualLoweringType(), llvm::Instruction::getParent(), llvm::BasicBlock::getParent(), llvm::BasicBlock::getTerminator(), llvm::ConstantInt::getType(), llvm::Value::getType(), llvm::ConstantInt::getZExtValue(), llvm::ConstantInt::isZero(), llvm::SPII::Load, llvm::Instruction::setSuccessor(), and llvm::BasicBlock::splitBasicBlock().
Referenced by expandMemCpyAsLoop().
| void llvm::createMemCpyLoopUnknownSize | ( | Instruction * | InsertBefore, |
| Value * | SrcAddr, | ||
| Value * | DstAddr, | ||
| Value * | CopyLen, | ||
| unsigned | SrcAlign, | ||
| unsigned | DestAlign, | ||
| bool | SrcIsVolatile, | ||
| bool | DstIsVolatile, | ||
| const TargetTransformInfo & | TTI | ||
| ) |
Emit a loop implementing the semantics of llvm.memcpy where the size is not a compile-time constant.
Loop will be insterted at InsertBefore.
Definition at line 135 of file LowerMemIntrinsics.cpp.
References llvm::PHINode::addIncoming(), assert(), llvm::BasicBlock::Create(), llvm::IRBuilder< T, Inserter >::CreateAdd(), llvm::IRBuilder< T, Inserter >::CreateBitCast(), llvm::IRBuilder< T, Inserter >::CreateCondBr(), llvm::IRBuilder< T, Inserter >::CreateICmpNE(), llvm::IRBuilder< T, Inserter >::CreateICmpULT(), llvm::IRBuilder< T, Inserter >::CreateInBoundsGEP(), llvm::IRBuilder< T, Inserter >::CreateLoad(), llvm::IRBuilder< T, Inserter >::CreatePHI(), llvm::IRBuilder< T, Inserter >::CreateStore(), dyn_cast(), llvm::Instruction::eraseFromParent(), llvm::ConstantInt::get(), llvm::PointerType::get(), llvm::BasicBlock::getContext(), llvm::Type::getInt8Ty(), getLoopOperandSizeInBytes(), llvm::TargetTransformInfo::getMemcpyLoopLoweringType(), llvm::Instruction::getParent(), llvm::BasicBlock::getParent(), llvm::BasicBlock::getTerminator(), llvm::Value::getType(), llvm::SPII::Load, and llvm::BasicBlock::splitBasicBlock().
Referenced by expandMemCpyAsLoop().
| FunctionPass * llvm::createMemCpyOptPass | ( | ) |
The public interface to this file...
Definition at line 288 of file MemCpyOptimizer.cpp.
References INITIALIZE_PASS_BEGIN(), and INITIALIZE_PASS_DEPENDENCY.
Referenced by LLVMAddMemCpyOptPass(), llvm::PassManagerBuilder::populateFunctionPassManager(), and llvm::PassManagerBuilder::populateModulePassManager().
| print Print MemDeps of true FunctionPass * llvm::createMemDepPrinter | ( | ) |
Definition at line 85 of file MemDepPrinter.cpp.
References assert(), F(), llvm::MemoryDependenceResults::getDependency(), llvm::MemoryDependenceResults::getNonLocalCallDependency(), llvm::MemoryDependenceResults::getNonLocalPointerDependency(), I, instructions(), llvm::MemDepResult::isNonLocal(), llvm::Instruction::mayReadFromMemory(), llvm::Instruction::mayWriteToMemory(), print(), llvm::Value::print(), llvm::Value::printAsOperand(), and runOnFunction().
| print Memory Dereferenciblity of pointers in true FunctionPass * llvm::createMemDerefPrinter | ( | ) |
Definition at line 48 of file MemDerefPrinter.cpp.
References llvm::SmallPtrSetImpl< PtrType >::count(), F(), llvm::Module::getDataLayout(), llvm::GlobalValue::getParent(), llvm::Value::getType(), I, llvm::SmallPtrSetImpl< PtrType >::insert(), instructions(), isDereferenceableAndAlignedPointer(), isDereferenceablePointer(), print(), llvm::SmallVectorTemplateBase< T >::push_back(), and runOnFunction().
| LegalizerHelper::LegalizeResult llvm::createMemLibcall | ( | MachineIRBuilder & | MIRBuilder, |
| MachineRegisterInfo & | MRI, | ||
| MachineInstr & | MI | ||
| ) |
Create a libcall to memcpy et al.
Definition at line 392 of file LegalizerHelper.cpp.
References llvm::AMDGPU::HSAMD::Kernel::Key::Args, assert(), llvm::SmallVectorTemplateCommon< T >::begin(), llvm::CallLowering::CallLoweringInfo::CallConv, llvm::CallLowering::CallLoweringInfo::Callee, copy(), llvm::MachineOperand::CreateES(), llvm::SmallVectorTemplateCommon< T >::end(), llvm::MachineInstr::eraseFromParent(), llvm::IntegerType::get(), llvm::LLT::getAddressSpace(), llvm::TargetSubtargetInfo::getCallLowering(), llvm::Function::getContext(), llvm::MachineFunction::getFunction(), llvm::Type::getInt8PtrTy(), llvm::MachineOperand::getIntrinsicID(), llvm::MachineIRBuilder::getMF(), llvm::ilist_node_with_parent< NodeTy, ParentTy, Options >::getNextNode(), llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::LLT::getSizeInBits(), llvm::MachineFunction::getSubtarget(), llvm::TargetSubtargetInfo::getTargetLowering(), llvm::MachineRegisterInfo::getType(), llvm::Type::getVoidTy(), Info, isLibCallInTailPosition(), llvm::LLT::isPointer(), llvm::MachineInstr::isReturn(), llvm::CallLowering::CallLoweringInfo::IsTailCall, llvm::LegalizerHelper::Legalized, llvm::CallLowering::CallLoweringInfo::LoweredTailCall, llvm::ARMISD::MEMCPY, Name, llvm::CallLowering::CallLoweringInfo::OrigArgs, llvm::CallLowering::CallLoweringInfo::OrigRet, llvm::SmallVectorTemplateBase< T >::push_back(), Reg, llvm::MachineIRBuilder::setInstr(), and llvm::LegalizerHelper::UnableToLegalize.
Referenced by llvm::LegalizerHelper::getLegalizerInfo(), llvm::MipsLegalizerInfo::legalizeIntrinsic(), llvm::AArch64LegalizerInfo::legalizeIntrinsic(), and llvm::X86LegalizerInfo::legalizeIntrinsic().
| MemorySanitizer false FunctionPass * llvm::createMemorySanitizerLegacyPassPass | ( | MemorySanitizerOptions | Options = {} | ) |
Definition at line 675 of file MemorySanitizer.cpp.
| FunctionPass * llvm::createMergedLoadStoreMotionPass | ( | bool | SplitFooterBB = false | ) |
createMergedLoadStoreMotionPass - The public interface to this file.
Definition at line 405 of file MergedLoadStoreMotion.cpp.
References INITIALIZE_PASS_BEGIN(), and INITIALIZE_PASS_DEPENDENCY.
Referenced by LLVMAddMergedLoadStoreMotionPass(), llvm::PassManagerBuilder::populateFunctionPassManager(), and llvm::PassManagerBuilder::populateModulePassManager().
| ModulePass* llvm::createMergeFunctionsPass | ( | ) |
createMergeFunctionsPass - This pass discovers identical functions and collapses them.
Referenced by LLVMAddMergeFunctionsPass(), and llvm::PassManagerBuilder::populateModulePassManager().
Definition at line 931 of file MergeICmps.cpp.
Referenced by llvm::TargetPassConfig::addIRPasses().
| Assign new names to false ModulePass * llvm::createMetaRenamerPass | ( | ) |
Definition at line 175 of file MetaRenamer.cpp.
| FunctionPass * llvm::createMicroMipsSizeReducePass | ( | ) |
Returns an instance of the MicroMips size reduction pass.
Definition at line 795 of file MicroMipsSizeReduction.cpp.
Referenced by llvm::MipsTargetMachine::getTargetTransformInfo().
| Value * llvm::createMinMaxOp | ( | IRBuilder<> & | Builder, |
| RecurrenceDescriptor::MinMaxRecurrenceKind | RK, | ||
| Value * | Left, | ||
| Value * | Right | ||
| ) |
Returns a Min/Max operation corresponding to MinMaxRecurrenceKind.
Definition at line 754 of file LoopUtils.cpp.
References llvm::IRBuilder< T, Inserter >::CreateFCmp(), llvm::IRBuilder< T, Inserter >::CreateICmp(), llvm::IRBuilder< T, Inserter >::CreateSelect(), llvm::CmpInst::FCMP_OGT, llvm::CmpInst::FCMP_OLT, llvm::CmpInst::ICMP_NE, llvm::CmpInst::ICMP_SGT, llvm::CmpInst::ICMP_SLT, llvm::CmpInst::ICMP_UGT, llvm::CmpInst::ICMP_ULT, llvm_unreachable, llvm::RecurrenceDescriptor::MRK_FloatMax, llvm::RecurrenceDescriptor::MRK_FloatMin, llvm::RecurrenceDescriptor::MRK_SIntMax, llvm::RecurrenceDescriptor::MRK_SIntMin, llvm::RecurrenceDescriptor::MRK_UIntMax, llvm::RecurrenceDescriptor::MRK_UIntMin, P, llvm::MCID::Select, llvm::FastMathFlags::setFast(), and llvm::IRBuilderBase::setFastMathFlags().
Referenced by llvm::InnerLoopVectorizer::fixReduction(), getOrderedReduction(), and getShuffleReduction().
| const MipsFrameLowering * llvm::createMips16FrameLowering | ( | const MipsSubtarget & | ST | ) |
Create MipsFrameLowering objects.
Definition at line 178 of file Mips16FrameLowering.cpp.
References llvm::Mips16FrameLowering::Mips16FrameLowering().
Referenced by llvm::MipsFrameLowering::create(), and llvm::MipsFrameLowering::enableShrinkWrapping().
| ModulePass * llvm::createMips16HardFloatPass | ( | ) |
Definition at line 534 of file Mips16HardFloat.cpp.
References Mips16HardFloat.
Referenced by llvm::MipsTargetMachine::createPassConfig().
| const MipsInstrInfo * llvm::createMips16InstrInfo | ( | const MipsSubtarget & | STI | ) |
Create MipsInstrInfo objects.
Definition at line 468 of file Mips16InstrInfo.cpp.
References llvm::Mips16InstrInfo::Mips16InstrInfo().
Referenced by llvm::MipsInstrInfo::create().
| FunctionPass * llvm::createMips16ISelDag | ( | MipsTargetMachine & | TM, |
| CodeGenOpt::Level | OptLevel | ||
| ) |
Definition at line 222 of file Mips16ISelDAGToDAG.cpp.
References llvm::Mips16DAGToDAGISel::Mips16DAGToDAGISel().
Referenced by llvm::MipsTargetMachine::createPassConfig(), and llvm::Mips16DAGToDAGISel::Mips16DAGToDAGISel().
| const MipsTargetLowering * llvm::createMips16TargetLowering | ( | const MipsTargetMachine & | TM, |
| const MipsSubtarget & | STI | ||
| ) |
Create MipsTargetLowering objects.
Definition at line 153 of file Mips16ISelLowering.cpp.
References llvm::Mips16TargetLowering::Mips16TargetLowering().
Referenced by llvm::MipsTargetLowering::create().
| MCAsmBackend * llvm::createMipsAsmBackend | ( | const Target & | T, |
| const MCSubtargetInfo & | STI, | ||
| const MCRegisterInfo & | MRI, | ||
| const MCTargetOptions & | Options | ||
| ) |
Definition at line 584 of file MipsAsmBackend.cpp.
References llvm::MipsABIInfo::computeTargetABI(), llvm::MCSubtargetInfo::getCPU(), llvm::MCSubtargetInfo::getTargetTriple(), llvm::MipsABIInfo::IsN32(), and llvm::MipsAsmBackend::MipsAsmBackend().
Referenced by LLVMInitializeMipsTargetMC().
| FunctionPass* llvm::createMipsBranchExpansion | ( | ) |
Referenced by llvm::MipsTargetMachine::getTargetTransformInfo().
| FunctionPass * llvm::createMipsConstantIslandPass | ( | ) |
Returns a pass that converts branches to long branches.
Definition at line 1678 of file MipsConstantIslandPass.cpp.
Referenced by llvm::MipsTargetMachine::getTargetTransformInfo().
| FunctionPass * llvm::createMipsDelaySlotFillerPass | ( | ) |
createMipsDelaySlotFillerPass - Returns a pass that fills in delay slots in Mips MachineFunctions
Definition at line 966 of file MipsDelaySlotFiller.cpp.
Referenced by llvm::MipsTargetMachine::getTargetTransformInfo().
| std::unique_ptr< MCObjectTargetWriter > llvm::createMipsELFObjectWriter | ( | const Triple & | TT, |
| bool | IsN32 | ||
| ) |
Definition at line 689 of file MipsELFObjectWriter.cpp.
References llvm::Triple::getOS(), llvm::MCELFObjectTargetWriter::getOSABI(), and llvm::Triple::isArch64Bit().
Referenced by llvm::MipsAsmBackend::createObjectTargetWriter().
| MCELFStreamer * llvm::createMipsELFStreamer | ( | MCContext & | Context, |
| std::unique_ptr< MCAsmBackend > | MAB, | ||
| std::unique_ptr< MCObjectWriter > | OW, | ||
| std::unique_ptr< MCCodeEmitter > | Emitter, | ||
| bool | RelaxAll | ||
| ) |
Definition at line 115 of file MipsELFStreamer.cpp.
References llvm::MipsELFStreamer::MipsELFStreamer().
Referenced by createMCStreamer().
| FunctionPass * llvm::createMipsExpandPseudoPass | ( | ) |
createMipsExpandPseudoPass - returns an instance of the pseudo instruction expansion pass.
Definition at line 911 of file MipsExpandPseudo.cpp.
Referenced by llvm::MipsTargetMachine::getTargetTransformInfo().
| InstructionSelector * llvm::createMipsInstructionSelector | ( | const MipsTargetMachine & | TM, |
| MipsSubtarget & | Subtarget, | ||
| MipsRegisterBankInfo & | RBI | ||
| ) |
Definition at line 836 of file MipsInstructionSelector.cpp.
Referenced by llvm::MipsSubtarget::MipsSubtarget().
| MCCodeEmitter * llvm::createMipsMCCodeEmitterEB | ( | const MCInstrInfo & | MCII, |
| const MCRegisterInfo & | MRI, | ||
| MCContext & | Ctx | ||
| ) |
Definition at line 44 of file MipsMCCodeEmitter.cpp.
Referenced by LLVMInitializeMipsTargetMC().
| MCCodeEmitter * llvm::createMipsMCCodeEmitterEL | ( | const MCInstrInfo & | MCII, |
| const MCRegisterInfo & | MRI, | ||
| MCContext & | Ctx | ||
| ) |
Definition at line 50 of file MipsMCCodeEmitter.cpp.
Referenced by LLVMInitializeMipsTargetMC().
| llvm::FunctionPass * llvm::createMipsModuleISelDagPass | ( | ) |
Definition at line 54 of file MipsModuleISelDAGToDAG.cpp.
Referenced by llvm::MipsTargetMachine::createPassConfig().
| MCELFStreamer * llvm::createMipsNaClELFStreamer | ( | MCContext & | Context, |
| std::unique_ptr< MCAsmBackend > | TAB, | ||
| std::unique_ptr< MCObjectWriter > | OW, | ||
| std::unique_ptr< MCCodeEmitter > | Emitter, | ||
| bool | RelaxAll | ||
| ) |
Definition at line 262 of file MipsNaClELFStreamer.cpp.
References Log2(), and MIPS_NACL_BUNDLE_ALIGN.
Referenced by createMCStreamer().
| FunctionPass * llvm::createMipsOptimizePICCallPass | ( | ) |
Return an OptimizeCall object.
Definition at line 319 of file MipsOptimizePICCall.cpp.
Referenced by llvm::MipsTargetMachine::createPassConfig().
| ModulePass * llvm::createMipsOs16Pass | ( | ) |
Definition at line 159 of file MipsOs16.cpp.
Referenced by llvm::MipsTargetMachine::createPassConfig().
| FunctionPass * llvm::createMipsPreLegalizeCombiner | ( | ) |
Definition at line 101 of file MipsPreLegalizerCombiner.cpp.
Referenced by llvm::MipsTargetMachine::getTargetTransformInfo().
| const MipsFrameLowering * llvm::createMipsSEFrameLowering | ( | const MipsSubtarget & | ST | ) |
Definition at line 921 of file MipsSEFrameLowering.cpp.
References llvm::MipsSEFrameLowering::MipsSEFrameLowering().
Referenced by llvm::MipsFrameLowering::create(), and llvm::MipsFrameLowering::enableShrinkWrapping().
| const MipsInstrInfo * llvm::createMipsSEInstrInfo | ( | const MipsSubtarget & | STI | ) |
Definition at line 899 of file MipsSEInstrInfo.cpp.
References llvm::MipsSEInstrInfo::MipsSEInstrInfo().
Referenced by llvm::MipsInstrInfo::create().
| FunctionPass * llvm::createMipsSEISelDag | ( | MipsTargetMachine & | TM, |
| CodeGenOpt::Level | OptLevel | ||
| ) |
Definition at line 1340 of file MipsSEISelDAGToDAG.cpp.
References llvm::MipsSEDAGToDAGISel::MipsSEDAGToDAGISel().
Referenced by llvm::MipsTargetMachine::createPassConfig(), and llvm::MipsSEDAGToDAGISel::MipsSEDAGToDAGISel().
| const MipsTargetLowering * llvm::createMipsSETargetLowering | ( | const MipsTargetMachine & | TM, |
| const MipsSubtarget & | STI | ||
| ) |
Definition at line 303 of file MipsSEISelLowering.cpp.
References llvm::MipsSETargetLowering::MipsSETargetLowering().
Referenced by llvm::MipsTargetLowering::create().
| std::unique_ptr< MIRParser > llvm::createMIRParser | ( | std::unique_ptr< MemoryBuffer > | Contents, |
| LLVMContext & | Context, | ||
| std::function< void(Function &)> | ProcessIRFunction = nullptr |
||
| ) |
This function is another interface to the MIR serialization format parser.
It returns a MIR parser that works with the given memory buffer and that can parse the embedded LLVM IR module and initialize the machine functions by parsing the machine function's state.
| Contents | - The MemoryBuffer containing the machine level IR. |
| Context | - Context which will be used for the parsed LLVM IR module. |
Definition at line 951 of file MIRParser.cpp.
References Context, llvm::LLVMContext::diagnose(), llvm::SourceMgr::DK_Error, DS_Error, and llvm::LLVMContext::shouldDiscardValueNames().
Referenced by createMIRParserFromFile().
| std::unique_ptr< MIRParser > llvm::createMIRParserFromFile | ( | StringRef | Filename, |
| SMDiagnostic & | Error, | ||
| LLVMContext & | Context, | ||
| std::function< void(Function &)> | ProcessIRFunction = nullptr |
||
| ) |
This function is the main interface to the MIR serialization format parser.
It reads in a MIR file and returns a MIR parser that can parse the embedded LLVM IR module and initialize the machine functions by parsing the machine function's state.
| Filename | - The name of the file to parse. |
| Error | - Error result info. |
| Context | - Context which will be used for the parsed LLVM IR module. |
| ProcessIRFunction | - function to run on every IR function or stub loaded from the MIR file. |
Definition at line 937 of file MIRParser.cpp.
References createMIRParser(), llvm::SourceMgr::DK_Error, and llvm::MemoryBuffer::getFileOrSTDIN().
| FunctionPass * llvm::createMLxExpansionPass | ( | ) |
Definition at line 390 of file MLxExpansionPass.cpp.
Referenced by llvm::ARMBaseTargetMachine::createPassConfig().
|
inline |
Definition at line 285 of file AliasAnalysis.h.
References ModRef.
Referenced by llvm::AliasSetTracker::add(), llvm::AAResults::canInstructionRangeModRef(), checkFunctionMemoryAccess(), llvm::AAResults::doesAccessArgPointees(), llvm::AAResults::doesAccessInaccessibleMem(), llvm::AAResults::doesNotReadMemory(), llvm::BasicAAResult::getModRefInfo(), and llvm::AAResults::onlyReadsMemory().
| ModulePass* llvm::createModuleAddressSanitizerLegacyPassPass | ( | bool | CompileKernel = false, |
| bool | Recover = false, |
||
| bool | UseGlobalsGC = true, |
||
| bool | UseOdrIndicator = true |
||
| ) |
| ModulePass* llvm::createModuleDebugInfoPrinterPass | ( | ) |
| Pass for instrumenting coverage on false ModulePass * llvm::createModuleSanitizerCoverageLegacyPassPass | ( | const SanitizerCoverageOptions & | Options = SanitizerCoverageOptions() | ) |
Definition at line 945 of file SanitizerCoverage.cpp.
Referenced by llvm::ModuleSanitizerCoveragePass::ModuleSanitizerCoveragePass().
| module summary Module Summary true ModulePass * llvm::createModuleSummaryIndexWrapperPass | ( | ) |
Definition at line 853 of file ModuleSummaryAnalysis.cpp.
Referenced by llvm::ModuleSummaryIndexWrapperPass::getIndex().
| ModuleToFunctionPassAdaptor<FunctionPassT> llvm::createModuleToFunctionPassAdaptor | ( | FunctionPassT | Pass | ) |
A function to deduce a function pass type and wrap it in the templated adaptor.
Definition at line 1341 of file PassManager.h.
Referenced by llvm::PassBuilder::buildFunctionSimplificationPipeline(), llvm::PassBuilder::buildLTODefaultPipeline(), llvm::PassBuilder::buildModuleOptimizationPipeline(), llvm::PassBuilder::buildModuleSimplificationPipeline(), llvm::PassBuilder::buildPerModuleDefaultPipeline(), and llvm::PassBuilder::buildThinLTOPreLinkDefaultPipeline().
| ModuleToPostOrderCGSCCPassAdaptor<CGSCCPassT> llvm::createModuleToPostOrderCGSCCPassAdaptor | ( | CGSCCPassT | Pass | ) |
A function to deduce a function pass type and wrap it in the templated adaptor.
Definition at line 367 of file CGSCCPassManager.h.
Referenced by llvm::PassBuilder::buildFunctionSimplificationPipeline(), llvm::PassBuilder::buildLTODefaultPipeline(), and llvm::PassBuilder::buildModuleSimplificationPipeline().
| FunctionPass * llvm::createMSP430BranchSelectionPass | ( | ) |
Returns an instance of the Branch Selection Pass.
Definition at line 255 of file MSP430BranchSelector.cpp.
Referenced by llvm::MSP430TargetMachine::createPassConfig().
| std::unique_ptr< MCObjectTargetWriter > llvm::createMSP430ELFObjectWriter | ( | uint8_t | OSABI | ) |
Definition at line 56 of file MSP430ELFObjectWriter.cpp.
| FunctionPass * llvm::createMSP430ISelDag | ( | MSP430TargetMachine & | TM, |
| CodeGenOpt::Level | OptLevel | ||
| ) |
createMSP430ISelDag - This pass converts a legalized DAG into a MSP430-specific DAG, ready for instruction scheduling.
Definition at line 126 of file MSP430ISelDAGToDAG.cpp.
References llvm::ISD::ADD, llvm::ISD::Constant, llvm::InlineAsm::Constraint_m, llvm::HexagonISD::CP, errs(), llvm::ISD::FrameIndex, G, llvm::SDValue::getNode(), llvm::SDValue::getOpcode(), llvm::SDValue::getOperand(), llvm::SDNode::getOperand(), llvm::MVT::i16, llvm::MVT::i32, LLVM_DEBUG, N, llvm::ISD::OR, and llvm::MSP430ISD::Wrapper.
Referenced by llvm::MSP430TargetMachine::createPassConfig().
| MCAsmBackend * llvm::createMSP430MCAsmBackend | ( | const Target & | T, |
| const MCSubtargetInfo & | STI, | ||
| const MCRegisterInfo & | MRI, | ||
| const MCTargetOptions & | Options | ||
| ) |
Definition at line 172 of file MSP430AsmBackend.cpp.
References llvm::ELF::ELFOSABI_STANDALONE.
Referenced by LLVMInitializeMSP430TargetMC().
| MCCodeEmitter * llvm::createMSP430MCCodeEmitter | ( | const MCInstrInfo & | MCII, |
| const MCRegisterInfo & | MRI, | ||
| MCContext & | Ctx | ||
| ) |
Creates a machine code emitter for MSP430.
Definition at line 202 of file MSP430MCCodeEmitter.cpp.
References llvm::MSP430MCCodeEmitter::MSP430MCCodeEmitter().
Referenced by LLVMInitializeMSP430TargetMC().
| MCTargetStreamer * llvm::createMSP430ObjectTargetStreamer | ( | MCStreamer & | S, |
| const MCSubtargetInfo & | STI | ||
| ) |
Definition at line 73 of file MSP430ELFStreamer.cpp.
References llvm::MCSubtargetInfo::getTargetTriple(), llvm::Triple::isOSBinFormatELF(), llvm::MSP430TargetELFStreamer::MSP430TargetELFStreamer(), and TT.
Referenced by LLVMInitializeMSP430TargetMC().
| print must be executed print the must be executed contexed for all true ModulePass * llvm::createMustBeExecutedContextPrinter | ( | ) |
Definition at line 353 of file MustExecute.cpp.
References dbgs(), DeleteContainerPointers(), F(), I, instructions(), llvm::SmallVectorTemplateBase< T >::push_back(), and llvm::MustBeExecutedContextExplorer::range().
| print Instructions which execute on loop true FunctionPass * llvm::createMustExecutePrinter | ( | ) |
Definition at line 337 of file MustExecute.cpp.
References INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_DEPENDENCY, and INITIALIZE_PASS_END().
| Pass* llvm::createMVEGatherScatterLoweringPass | ( | ) |
Referenced by llvm::ARMBaseTargetMachine::createPassConfig().
| Pass * llvm::createMVETailPredicationPass | ( | ) |
Definition at line 545 of file MVETailPredication.cpp.
References DEBUG_TYPE, DESC, INITIALIZE_PASS_BEGIN, and INITIALIZE_PASS_END().
Referenced by llvm::ARMBaseTargetMachine::createPassConfig().
| FunctionPass * llvm::createMVEVPTBlockPass | ( | ) |
createMVEVPTBlock - Returns an instance of the MVE VPT block insertion pass.
Definition at line 201 of file MVEVPTBlockPass.cpp.
Referenced by llvm::ARMBaseTargetMachine::createPassConfig().
| ModulePass * llvm::createNameAnonGlobalPass | ( | ) |
===------------------------------------------------------------------—===//
Definition at line 117 of file NameAnonGlobals.cpp.
Referenced by llvm::PassManagerBuilder::populateModulePassManager().
| nary Nary false FunctionPass * llvm::createNaryReassociatePass | ( | ) |
Definition at line 163 of file NaryReassociate.cpp.
References F(), and runOnFunction().
Referenced by llvm::NVPTXTargetMachine::getTargetTransformInfo(), and llvm::GCNTargetMachine::getTargetTransformInfo().
| Global Value false FunctionPass * llvm::createNewGVNPass | ( | ) |
Definition at line 4224 of file NewGVN.cpp.
Referenced by LLVMAddNewGVNPass(), llvm::PassManagerBuilder::populateFunctionPassManager(), and llvm::PassManagerBuilder::populateModulePassManager().
| MCStreamer * llvm::createNullStreamer | ( | MCContext & | Ctx | ) |
Create a dummy machine code streamer, which does nothing.
This is useful for timing the assembler front end.
Definition at line 47 of file MCNullStreamer.cpp.
Referenced by llvm::LLVMTargetMachine::addAsmPrinter(), llvm::Target::createNullStreamer(), and llvm::MCStreamer::mayHaveInstructions().
| ModulePass * llvm::createNVPTXAssignValidGlobalNamesPass | ( | ) |
Definition at line 87 of file NVPTXAssignValidGlobalNames.cpp.
Referenced by llvm::NVPTXTargetMachine::getTargetTransformInfo().
| FunctionPass * llvm::createNVPTXImageOptimizerPass | ( | ) |
Definition at line 177 of file NVPTXImageOptimizer.cpp.
Referenced by llvm::NVPTXTargetMachine::getTargetTransformInfo().
| FunctionPass * llvm::createNVPTXISelDag | ( | NVPTXTargetMachine & | TM, |
| llvm::CodeGenOpt::Level | OptLevel | ||
| ) |
createNVPTXISelDag - This pass converts a legalized DAG into a NVPTX-specific DAG, ready for instruction scheduling.
Definition at line 33 of file NVPTXISelDAGToDAG.cpp.
Referenced by llvm::NVPTXTargetMachine::getTargetTransformInfo().
| FunctionPass * llvm::createNVPTXLowerAllocaPass | ( | ) |
Definition at line 118 of file NVPTXLowerAlloca.cpp.
Referenced by llvm::NVPTXTargetMachine::getTargetTransformInfo().
| FunctionPass * llvm::createNVPTXLowerArgsPass | ( | const NVPTXTargetMachine * | TM | ) |
Definition at line 253 of file NVPTXLowerArgs.cpp.
Referenced by llvm::NVPTXTargetMachine::getTargetTransformInfo().
| MachineFunctionPass * llvm::createNVPTXPeephole | ( | ) |
Definition at line 156 of file NVPTXPeephole.cpp.
Referenced by llvm::NVPTXTargetMachine::getTargetTransformInfo().
| MachineFunctionPass * llvm::createNVPTXPrologEpilogPass | ( | ) |
Definition at line 44 of file NVPTXPrologEpilogPass.cpp.
References llvm::DIExpression::ApplyOffset, assert(), llvm::numbers::e, E, llvm::TargetRegisterInfo::eliminateFrameIndex(), llvm::TargetFrameLowering::emitEpilogue(), llvm::TargetFrameLowering::emitPrologue(), llvm::TargetFrameLowering::getFrameIndexReference(), llvm::TargetSubtargetInfo::getFrameLowering(), llvm::TargetSubtargetInfo::getRegisterInfo(), llvm::MachineFunction::getSubtarget(), I, MI, Modified, llvm::DIExpression::prepend(), Reg, and TRI.
Referenced by llvm::NVPTXTargetMachine::getTargetTransformInfo().
| MachineFunctionPass * llvm::createNVPTXProxyRegErasurePass | ( | ) |
Definition at line 119 of file NVPTXProxyRegErasure.cpp.
Referenced by llvm::NVPTXTargetMachine::getTargetTransformInfo().
| MachineFunctionPass * llvm::createNVPTXReplaceImageHandlesPass | ( | ) |
Definition at line 189 of file NVPTXReplaceImageHandles.cpp.
Referenced by llvm::NVPTXTargetMachine::getTargetTransformInfo().
| FunctionPass * llvm::createNVVMIntrRangePass | ( | unsigned int | SmVersion | ) |
Definition at line 58 of file NVVMIntrRange.cpp.
References INITIALIZE_PASS().
Referenced by llvm::NVPTXTargetMachine::adjustPassManager().
| FunctionPass * llvm::createNVVMReflectPass | ( | unsigned int | SmVersion | ) |
Definition at line 63 of file NVVMReflect.cpp.
References llvm::cl::Hidden, llvm::cl::init(), and NVVMReflectEnabled.
Referenced by llvm::NVPTXTargetMachine::adjustPassManager(), and llvm::NVPTXTargetMachine::getTargetTransformInfo().
| ImmutablePass* llvm::createObjCARCAAWrapperPass | ( | ) |
| Pass* llvm::createObjCARCAPElimPass | ( | ) |
| Pass * llvm::createObjCARCContractPass | ( | ) |
Definition at line 769 of file ObjCARCContract.cpp.
References llvm::Module::getModuleFlag(), and llvm::objcarc::ModuleHasARC().
Referenced by llvm::LTOCodeGenerator::compileOptimized().
| Pass* llvm::createObjCARCExpandPass | ( | ) |
| FunctionPass * llvm::createPAEvalPass | ( | ) |
Definition at line 88 of file ProvenanceAnalysisEvaluator.cpp.
References INITIALIZE_PASS_BEGIN(), and INITIALIZE_PASS_DEPENDENCY.
| partial Partial false ModulePass * llvm::createPartialInliningPass | ( | ) |
createPartialInliningPass - This pass inlines parts of functions.
Definition at line 1498 of file PartialInlining.cpp.
Referenced by llvm::PassManagerBuilder::populateModulePassManager().
|
inline |
Definition at line 184 of file PartiallyInlineLibCalls.cpp.
Referenced by llvm::TargetPassConfig::addIRPasses(), and LLVMAddPartiallyInlineLibCallsPass().
| FunctionPass * llvm::createPBQPRegisterAllocator | ( | char * | customPassID = nullptr | ) |
Create a PBQP register allocator instance.
Definition at line 936 of file RegAllocPBQP.cpp.
Referenced by createDefaultPBQPRegisterAllocator(), and llvm::PBQP::RegAlloc::solve().
Create the PGOFuncName meta data if PGOFuncName is different from function's raw name.
This should only apply to internal linkage functions declared by users only.
Definition at line 1032 of file InstrProf.cpp.
References C, llvm::MDString::get(), llvm::MDNode::get(), llvm::Function::getContext(), llvm::Value::getName(), getPGOFuncNameMetadata(), getPGOFuncNameMetadataName(), N, and llvm::GlobalObject::setMetadata().
Referenced by getPGOFuncNameMetadataName(), and isIndirectBrTarget().
| GlobalVariable * llvm::createPGOFuncNameVar | ( | Function & | F, |
| StringRef | PGOFuncName | ||
| ) |
Create and return the global variable for function name used in PGO instrumentation.
FuncName is the name of the function returned by getPGOFuncName call.
Definition at line 332 of file InstrProf.cpp.
References llvm::GlobalValue::getLinkage(), and llvm::GlobalValue::getParent().
Referenced by getInstrProfNameSeparator(), and INITIALIZE_PASS().
| GlobalVariable * llvm::createPGOFuncNameVar | ( | Module & | M, |
| GlobalValue::LinkageTypes | Linkage, | ||
| StringRef | PGOFuncName | ||
| ) |
Create and return the global variable for function name used in PGO instrumentation.
/// FuncName is the name of the function returned by getPGOFuncName call, M is the owning module, and Linkage is the linkage of the instrumented function.
Definition at line 305 of file InstrProf.cpp.
References llvm::GlobalValue::AvailableExternallyLinkage, llvm::GlobalValue::ExternalLinkage, llvm::GlobalValue::ExternalWeakLinkage, llvm::Module::getContext(), getPGOFuncNameVarName(), llvm::ConstantDataArray::getString(), llvm::Value::getType(), llvm::GlobalValue::HiddenVisibility, llvm::GlobalValue::InternalLinkage, llvm::GlobalValue::isLocalLinkage(), llvm::GlobalValue::LinkOnceAnyLinkage, llvm::GlobalValue::LinkOnceODRLinkage, llvm::GlobalValue::PrivateLinkage, and llvm::GlobalValue::setVisibility().
| pgo icall Use PGO instrumentation profile to promote indirect calls to direct false ModulePass * llvm::createPGOIndirectCallPromotionLegacyPass | ( | bool | InLTO = false, |
| bool | SamplePGO = false |
||
| ) |
Definition at line 161 of file IndirectCallPromotion.cpp.
References assert(), C, dbgs(), DEBUG_TYPE, F(), llvm::Function::getFunction(), I, ICPCallOnly, ICPCSSkip, ICPCutOff, ICPInvokeOnly, isLegalToPromote(), LLVM_DEBUG, llvm::MipsISD::Ret, and llvm::ArrayRef< T >::size().
Referenced by llvm::PassManagerBuilder::populateFunctionPassManager(), and llvm::PassManagerBuilder::populateModulePassManager().
| ModulePass* llvm::createPGOInstrumentationGenCreateVarLegacyPass | ( | StringRef | CSInstrName = StringRef("") | ) |
Referenced by llvm::PassManagerBuilder::populateModulePassManager().
| pgo instr PGO false ModulePass * llvm::createPGOInstrumentationGenLegacyPass | ( | bool | IsCS = false | ) |
Definition at line 442 of file PGOInstrumentation.cpp.
References INITIALIZE_PASS_BEGIN(), and INITIALIZE_PASS_DEPENDENCY.
Referenced by llvm::PassManagerBuilder::populateFunctionPassManager().
| pgo instr Read PGO instrumentation false ModulePass * llvm::createPGOInstrumentationUseLegacyPass | ( | StringRef | Filename = StringRef(""), |
| bool | IsCS = false |
||
| ) |
Definition at line 456 of file PGOInstrumentation.cpp.
Referenced by llvm::PassManagerBuilder::populateFunctionPassManager().
| FunctionPass* llvm::createPGOMemOPSizeOptLegacyPass | ( | ) |
Referenced by llvm::PassManagerBuilder::populateFunctionPassManager().
| FunctionPass * llvm::createPlaceSafepointsPass | ( | ) |
Definition at line 601 of file PlaceSafepoints.cpp.
References INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_DEPENDENCY, and INITIALIZE_PASS_END().
| FunctionPass * llvm::createPostDomOnlyPrinterPass | ( | ) |
Definition at line 288 of file DomPrinter.cpp.
| FunctionPass * llvm::createPostDomOnlyViewerPass | ( | ) |
Definition at line 296 of file DomPrinter.cpp.
| FunctionPass * llvm::createPostDomPrinterPass | ( | ) |
Definition at line 284 of file DomPrinter.cpp.
| FunctionPass * llvm::createPostDomTree | ( | ) |
Definition at line 92 of file PostDominators.cpp.
References llvm::PostDominatorTreeWrapperPass::PostDominatorTreeWrapperPass().
Referenced by llvm::PostDominatorTreeWrapperPass::releaseMemory().
| FunctionPass * llvm::createPostDomViewerPass | ( | ) |
Definition at line 292 of file DomPrinter.cpp.
| FunctionPass * llvm::createPostInlineEntryExitInstrumenterPass | ( | ) |
Definition at line 162 of file EntryExitInstrumenter.cpp.
Referenced by llvm::TargetPassConfig::addIRPasses().
Create a legacy pass manager instance of a pass to compute function attrs in post-order.
Definition at line 1488 of file FunctionAttrs.cpp.
Referenced by LLVMAddFunctionAttrsPass(), and llvm::PassManagerBuilder::populateModulePassManager().
| MCAsmBackend * llvm::createPPCAsmBackend | ( | const Target & | T, |
| const MCSubtargetInfo & | STI, | ||
| const MCRegisterInfo & | MRI, | ||
| const MCTargetOptions & | Options | ||
| ) |
Definition at line 256 of file PPCAsmBackend.cpp.
References llvm::MCSubtargetInfo::getTargetTriple(), llvm::Triple::isOSBinFormatXCOFF(), llvm::Triple::isOSDarwin(), and TT.
Referenced by LLVMInitializePowerPCTargetMC().
| FunctionPass* llvm::createPPCBoolRetToIntPass | ( | ) |
Referenced by llvm::PPCTargetMachine::createPassConfig().
| FunctionPass * llvm::createPPCBranchCoalescingPass | ( | ) |
createPPCBranchCoalescingPass - returns an instance of the Branch Coalescing Pass
Definition at line 193 of file PPCBranchCoalescing.cpp.
References DEBUG_TYPE, INITIALIZE_PASS_BEGIN(), and INITIALIZE_PASS_DEPENDENCY.
Referenced by llvm::PPCTargetMachine::createPassConfig().
| FunctionPass* llvm::createPPCBranchSelectionPass | ( | ) |
Referenced by llvm::PPCTargetMachine::createPassConfig().
| FunctionPass* llvm::createPPCCTRLoops | ( | ) |
| ppc ctr loops PowerPC CTR Loops false FunctionPass * llvm::createPPCCTRLoopsVerify | ( | ) |
Definition at line 107 of file PPCCTRLoops.cpp.
Referenced by llvm::PPCTargetMachine::createPassConfig().
| FunctionPass* llvm::createPPCEarlyReturnPass | ( | ) |
Referenced by llvm::PPCTargetMachine::createPassConfig().
| std::unique_ptr< MCObjectTargetWriter > llvm::createPPCELFObjectWriter | ( | bool | Is64Bit, |
| uint8_t | OSABI | ||
| ) |
Construct an PPC ELF object writer.
Definition at line 445 of file PPCELFObjectWriter.cpp.
Referenced by getFixupKindNumBytes().
| FunctionPass* llvm::createPPCExpandISELPass | ( | ) |
Referenced by llvm::PPCTargetMachine::createPassConfig().
| FunctionPass * llvm::createPPCISelDag | ( | PPCTargetMachine & | TM, |
| CodeGenOpt::Level | OL | ||
| ) |
createPPCISelDag - This pass converts a legalized DAG into a PowerPC-specific DAG, ready for instruction scheduling.
Definition at line 6650 of file PPCISelDAGToDAG.cpp.
Referenced by llvm::PPCTargetMachine::createPassConfig().
| FunctionPass * llvm::createPPCLoopInstrFormPrepPass | ( | PPCTargetMachine & | TM | ) |
Definition at line 252 of file PPCLoopInstrFormPrep.cpp.
Referenced by llvm::PPCTargetMachine::createPassConfig().
| ModulePass* llvm::createPPCLowerMASSVEntriesPass | ( | ) |
Referenced by llvm::PPCTargetMachine::createPassConfig().
| std::unique_ptr< MCObjectTargetWriter > llvm::createPPCMachObjectWriter | ( | bool | Is64Bit, |
| uint32_t | CPUType, | ||
| uint32_t | CPUSubtype | ||
| ) |
Construct a PPC Mach-O object writer.
Definition at line 377 of file PPCMachObjectWriter.cpp.
Referenced by getFixupKindNumBytes().
| MCCodeEmitter * llvm::createPPCMCCodeEmitter | ( | const MCInstrInfo & | MCII, |
| const MCRegisterInfo & | MRI, | ||
| MCContext & | Ctx | ||
| ) |
Definition at line 36 of file PPCMCCodeEmitter.cpp.
References llvm::PPCMCCodeEmitter::getDirectBrEncoding().
Referenced by LLVMInitializePowerPCTargetMC().
| FunctionPass * llvm::createPPCMIPeepholePass | ( | ) |
Definition at line 1631 of file PPCMIPeephole.cpp.
Referenced by llvm::PPCTargetMachine::createPassConfig().
| FunctionPass* llvm::createPPCPreEmitPeepholePass | ( | ) |
Referenced by llvm::PPCTargetMachine::createPassConfig().
| FunctionPass* llvm::createPPCQPXLoadSplatPass | ( | ) |
Referenced by llvm::PPCTargetMachine::createPassConfig().
| FunctionPass * llvm::createPPCReduceCRLogicalsPass | ( | ) |
Definition at line 738 of file PPCReduceCRLogicals.cpp.
Referenced by llvm::PPCTargetMachine::createPassConfig().
| FunctionPass * llvm::createPPCTLSDynamicCallPass | ( | ) |
Definition at line 187 of file PPCTLSDynamicCall.cpp.
Referenced by llvm::PPCTargetMachine::createPassConfig().
| FunctionPass* llvm::createPPCTOCRegDepsPass | ( | ) |
Referenced by llvm::PPCTargetMachine::createPassConfig().
| FunctionPass* llvm::createPPCVSXCopyPass | ( | ) |
Referenced by llvm::PPCTargetMachine::createPassConfig().
| FunctionPass * llvm::createPPCVSXFMAMutatePass | ( | ) |
Definition at line 396 of file PPCVSXFMAMutate.cpp.
| FunctionPass * llvm::createPPCVSXSwapRemovalPass | ( | ) |
Definition at line 1048 of file PPCVSXSwapRemoval.cpp.
Referenced by llvm::PPCTargetMachine::createPassConfig().
| std::unique_ptr< MCObjectTargetWriter > llvm::createPPCXCOFFObjectWriter | ( | bool | Is64Bit | ) |
Construct a PPC XCOFF object writer.
Definition at line 27 of file PPCXCOFFObjectWriter.cpp.
Referenced by getFixupKindNumBytes().
| ModulePass* llvm::createPreISelIntrinsicLoweringPass | ( | ) |
This pass lowers the @llvm.load.relative and @llvm.objc.
Referenced by llvm::TargetPassConfig::addISelPasses().
| FunctionPass * llvm::createPrintFunctionPass | ( | llvm::raw_ostream & | OS, |
| const std::string & | Banner = "" |
||
| ) |
Create and return a pass that prints functions to the specified raw_ostream as they are processed.
Definition at line 128 of file IRPrintingPasses.cpp.
Referenced by llvm::TargetPassConfig::addIRPasses(), llvm::TargetPassConfig::addISelPrepare(), llvm::FunctionPass::createPrinterPass(), and llvm::legacy::FunctionPassManagerImpl::createPrinterPass().
| MachineFunctionPass * llvm::createPrintMIRPass | ( | raw_ostream & | OS | ) |
MIRPrinting pass - this pass prints out the LLVM IR into the given stream using the MIR serialization format.
Definition at line 66 of file MIRPrintingPass.cpp.
Referenced by llvm::LLVMTargetMachine::addPassesToEmitFile().
| ModulePass* llvm::createPrintModulePass | ( | raw_ostream & | OS, |
| const std::string & | Banner = "", |
||
| bool | ShouldPreserveUseListOrder = false |
||
| ) |
Create and return a pass that writes the module to the specified raw_ostream.
Referenced by llvm::ModulePass::createPrinterPass(), llvm::legacy::PassManagerImpl::createPrinterPass(), and llvm::legacy::FunctionPassManagerImpl::dumpPassStructure().
| GlobalVariable * llvm::createPrivateGlobalForString | ( | Module & | M, |
| StringRef | Str, | ||
| bool | AllowMerging, | ||
| const char * | NamePrefix = "" |
||
| ) |
Definition at line 60 of file Instrumentation.cpp.
References llvm::Module::getContext(), llvm::ConstantDataArray::getString(), llvm::Value::getType(), llvm::GlobalValue::Global, llvm::Align::None(), llvm::GlobalValue::PrivateLinkage, and llvm::GlobalValue::setUnnamedAddr().
Referenced by createPrivateGlobalForSourceLoc(), and instrumentMaskedLoadOrStore().
Definition at line 1151 of file InstrProf.cpp.
References llvm::StringRef::empty(), llvm::GlobalValue::ExternalLinkage, llvm::Module::getContext(), llvm::Module::getOrInsertComdat(), llvm::ConstantDataArray::getString(), llvm::Module::getTargetTriple(), llvm::Value::getType(), TT, and llvm::GlobalValue::WeakAnyLinkage.
Referenced by needsRuntimeRegistrationOfSectionRange(), and llvm::PGOInstrumentationGenCreateVar::run().
| Prologue Epilogue Insertion &Frame false MachineFunctionPass * llvm::createPrologEpilogInserterPass | ( | ) |
Definition at line 155 of file PrologEpilogInserter.cpp.
References llvm::AnalysisUsage::addPreserved(), llvm::AnalysisUsage::addRequired(), llvm::MachineFunctionPass::getAnalysisUsage(), llvm::AnalysisUsage::setPreservesCFG(), and STATISTIC().
Referenced by llvm::TargetPassConfig::addMachinePasses().
| Promote Memory to false FunctionPass * llvm::createPromoteMemoryToRegisterPass | ( | ) |
Definition at line 114 of file Mem2Reg.cpp.
Referenced by LLVMAddPromoteMemoryToRegisterPass(), and llvm::PassManagerBuilder::populateModulePassManager().
createPruneEHPass - Return a new pass object which transforms invoke instructions into calls, if the callee can not unwind the stack.
Definition at line 61 of file PruneEH.cpp.
Referenced by LLVMAddPruneEHPass(), and llvm::PassManagerBuilder::populateModulePassManager().
| AsmPrinter * llvm::createR600AsmPrinterPass | ( | TargetMachine & | TM, |
| std::unique_ptr< MCStreamer > && | Streamer | ||
| ) |
Definition at line 31 of file R600AsmPrinter.cpp.
Referenced by LLVMInitializeAMDGPUAsmPrinter().
| llvm::FunctionPass * llvm::createR600ClauseMergePass | ( | ) |
Definition at line 218 of file R600ClauseMergePass.cpp.
Referenced by llvm::GCNTargetMachine::getTargetTransformInfo().
| FunctionPass * llvm::createR600ControlFlowFinalizer | ( | ) |
Definition at line 720 of file R600ControlFlowFinalizer.cpp.
Referenced by llvm::GCNTargetMachine::getTargetTransformInfo().
| R600 Emit Clause false FunctionPass * llvm::createR600EmitClauseMarkers | ( | ) |
Definition at line 352 of file R600EmitClauseMarkers.cpp.
Referenced by llvm::GCNTargetMachine::getTargetTransformInfo().
| FunctionPass * llvm::createR600ExpandSpecialInstrsPass | ( | ) |
Definition at line 69 of file R600ExpandSpecialInstrs.cpp.
References assert(), llvm::MachineBasicBlock::begin(), llvm::MachineFunction::begin(), llvm::MachineInstr::bundleWithPred(), llvm::MachineBasicBlock::end(), llvm::MachineFunction::end(), llvm::MachineInstr::eraseFromParent(), llvm::R600RegisterInfo::getHWRegChan(), llvm::MachineOperand::getImm(), llvm::R600Subtarget::getInstrInfo(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), getReg(), llvm::R600Subtarget::getRegisterInfo(), llvm::AMDGPURegisterInfo::getSubRegFromChannel(), llvm::MachineFunction::getSubtarget(), HW_REG_MASK, I, llvm::BitmaskEnumDetail::Mask(), MI, MO_FLAG_MASK, MO_FLAG_NOT_LAST, MO_FLAG_PUSH, llvm::MachineOperand::setReg(), llvm::ARM_MB::ST, TII, and TRI.
Referenced by llvm::GCNTargetMachine::getTargetTransformInfo().
| FunctionPass * llvm::createR600ISelDag | ( | TargetMachine * | TM, |
| CodeGenOpt::Level | OptLevel | ||
| ) |
This pass converts a legalized DAG into a R600-specific.
Definition at line 398 of file AMDGPUISelDAGToDAG.cpp.
References assert(), llvm::ISD::BITCAST, llvm::ISD::BUILD_VECTOR, C, llvm::SITargetLowering::copyToM0(), llvm::ISD::CopyToReg, dbgs(), dyn_cast(), llvm::numbers::e, llvm::LoadSDNode::getBasePtr(), llvm::MemSDNode::getChain(), llvm::LoadSDNode::getExtensionType(), llvm::SDNode::getFlags(), llvm::MachineFunction::getFunction(), llvm::MachineFunction::getInfo(), llvm::LoopInfoBase< BlockT, LoopT >::getLoopsInPreorder(), llvm::SDNode::getMachineOpcode(), llvm::MemSDNode::getMemOperand(), llvm::MemSDNode::getMemoryVT(), llvm::SDValue::getNode(), llvm::MCInstrDesc::getNumDefs(), llvm::MCInstrDesc::getNumOperands(), llvm::SDNode::getNumOperands(), llvm::SDNode::getOpcode(), llvm::SDNode::getOperand(), llvm::SIRegisterInfo::getPhysRegClass(), getReg(), llvm::MachineRegisterInfo::getRegClass(), llvm::R600InstrInfo::getRegisterInfo(), llvm::EVT::getSimpleVT(), llvm::MachineFunction::getSubtarget(), llvm::SDValue::getValue(), llvm::SDValue::getValueType(), llvm::SDNode::getValueType(), llvm::SDNode::getVTList(), llvm::SDNodeFlags::hasNoNaNs(), llvm::SDValue::hasOneUse(), llvm::MipsISD::Hi, llvm::MVT::i16, llvm::MVT::i32, llvm::MVT::i8, llvm::SDNodeFlags::isDefined(), llvm::SIInstrInfo::isInlineConstant(), llvm::SDNode::isMachineOpcode(), llvm::SDNode::isPredecessorOf(), llvm::SDNode::isUndef(), llvm::Register::isVirtualRegister(), LLVM_DEBUG, llvm::MipsISD::Lo, llvm::AMDGPUISD::LOAD_D16_HI, llvm::AMDGPUISD::LOAD_D16_HI_I8, llvm::AMDGPUISD::LOAD_D16_HI_U8, llvm::AMDGPUISD::LOAD_D16_LO, llvm::AMDGPUISD::LOAD_D16_LO_I8, llvm::AMDGPUISD::LOAD_D16_LO_U8, AMDGPUAS::LOCAL_ADDRESS, Lowering, Mode, MRI, N, llvm::MCInstrDesc::OpInfo, llvm::MVT::Other, llvm::SmallVectorTemplateBase< T >::push_back(), Reg, llvm::MCOperandInfo::RegClass, AMDGPUAS::REGION_ADDRESS, llvm::SelectionDAGISel::runOnMachineFunction(), llvm::ISD::SCALAR_TO_VECTOR, llvm::ISD::SEXTLOAD, TII, llvm::SystemZISD::TM, TRI, llvm::SDNode::use_empty(), llvm::MVT::v2f16, and llvm::MVT::v2i16.
Referenced by llvm::GCNTargetMachine::getTargetTransformInfo().
| MCCodeEmitter * llvm::createR600MCCodeEmitter | ( | const MCInstrInfo & | MCII, |
| const MCRegisterInfo & | MRI, | ||
| MCContext & | Ctx | ||
| ) |
Definition at line 93 of file R600MCCodeEmitter.cpp.
References assert(), llvm::MCFixup::create(), ELEMENT_W, ELEMENT_X, ELEMENT_Y, ELEMENT_Z, FK_SecRel_4, llvm::MCOperand::getExpr(), llvm::MCSubtargetInfo::getFeatureBits(), getHWReg(), llvm::MCOperand::getImm(), llvm::MCInst::getLoc(), llvm::MCInst::getOpcode(), llvm::MCInst::getOperand(), llvm::MCOperand::getReg(), HAS_NATIVE_OPERANDS, HW_REG_MASK, IS_TEX, IS_VTX, llvm::MCOperand::isExpr(), llvm::MCOperand::isImm(), llvm::MCOperand::isReg(), llvm::AMDGPUISD::KILL, llvm::support::little, MI, MRI, R600_InstFlag::OP1, R600_InstFlag::OP2, llvm::SmallVectorTemplateBase< T >::push_back(), llvm::NVPTXISD::RETURN, llvm::MCInstrDesc::TSFlags, and llvm::support::endian::write().
Referenced by LLVMInitializeAMDGPUTargetMC().
| MCInstrInfo * llvm::createR600MCInstrInfo | ( | ) |
Definition at line 22 of file R600MCTargetDesc.cpp.
References X.
Referenced by LLVMInitializeAMDGPUTargetMC().
| ModulePass * llvm::createR600OpenCLImageTypeLoweringPass | ( | ) |
Definition at line 386 of file R600OpenCLImageTypeLoweringPass.cpp.
Referenced by llvm::GCNTargetMachine::getTargetTransformInfo().
| llvm::FunctionPass * llvm::createR600Packetizer | ( | ) |
Definition at line 416 of file R600Packetizer.cpp.
Referenced by llvm::GCNTargetMachine::getTargetTransformInfo().
| llvm::FunctionPass * llvm::createR600VectorRegMerger | ( | ) |
Definition at line 400 of file R600OptimizeVectorRegisters.cpp.
Referenced by llvm::GCNTargetMachine::getTargetTransformInfo().
| FunctionPass* llvm::createReassociatePass | ( | ) |
Referenced by LLVMAddReassociatePass(), and llvm::PassManagerBuilder::populateFunctionPassManager().
| Pass* llvm::createRedundantDbgInstEliminationPass | ( | ) |
| FunctionPass * llvm::createRegionInfoPass | ( | ) |
Definition at line 178 of file RegionInfo.cpp.
References llvm::RegionInfoPass::RegionInfoPass().
| FunctionPass * llvm::createRegionOnlyPrinterPass | ( | ) |
Definition at line 218 of file RegionPrinter.cpp.
| FunctionPass * llvm::createRegionOnlyViewerPass | ( | ) |
Definition at line 226 of file RegionPrinter.cpp.
Referenced by viewRegionOnly().
| dot regions Print regions of function to dot true view regions View regions of true FunctionPass * llvm::createRegionPrinterPass | ( | ) |
Definition at line 216 of file RegionPrinter.cpp.
| FunctionPass * llvm::createRegionViewerPass | ( | ) |
Definition at line 222 of file RegionPrinter.cpp.
Referenced by viewRegion().
| Register Usage Information false FunctionPass * llvm::createRegUsageInfoCollector | ( | ) |
This pass is executed POST-RA to collect which physical registers are preserved by given machine function.
Definition at line 76 of file RegUsageInfoCollector.cpp.
References RegUsageInfoCollector.
Referenced by llvm::TargetPassConfig::addMachinePasses().
| FunctionPass * llvm::createRegUsageInfoPropPass | ( | ) |
Return a MachineFunction pass that identifies call sites and propagates register usage information of callee to caller if available with PysicalRegisterUsageInfo pass.
Definition at line 154 of file RegUsageInfoPropagate.cpp.
Referenced by llvm::TargetPassConfig::addMachinePasses().
| RepeatedPass<PassT> llvm::createRepeatedPass | ( | int | Count, |
| PassT | P | ||
| ) |
Definition at line 1445 of file PassManager.h.
| Constant * llvm::createReplicatedMask | ( | IRBuilder<> & | Builder, |
| unsigned | ReplicationFactor, | ||
| unsigned | VF | ||
| ) |
Create a mask with replicated elements.
This function creates a shuffle mask for replicating each of the VF elements in a vector ReplicationFactor times. It can be used to transform a mask of VF elements into a mask of VF * ReplicationFactor elements used by a predicated interleaved-group of loads/stores whose Interleaved-factor == ReplicationFactor.
For example, the mask for ReplicationFactor=3 and VF=4 is:
<0,0,0,1,1,1,2,2,2,3,3,3>
Definition at line 658 of file VectorUtils.cpp.
References llvm::ConstantVector::get(), llvm::IRBuilderBase::getInt32(), and llvm::SmallVectorTemplateBase< T >::push_back().
Referenced by llvm::InnerLoopVectorizer::vectorizeInterleaveGroup().
| MachineFunctionPass* llvm::createResetMachineFunctionPass | ( | bool | EmitFallbackDiag, |
| bool | AbortOnFailedISel | ||
| ) |
This pass resets a MachineFunction when it has the FailedISel property as if it was just created.
If EmitFallbackDiag is true, the pass will emit a DiagnosticInfoISelFallback for every MachineFunction it resets. If AbortOnFailedISel is true, abort compilation instead of resetting.
Referenced by llvm::TargetPassConfig::addCoreISelPasses().
| rpo Deduce function attributes in false Pass * llvm::createReversePostOrderFunctionAttrsPass | ( | ) |
createReversePostOrderFunctionAttrsPass - This pass walks SCCs of the call graph in RPO to deduce and propagate function attributes.
Currently it only handles synthesizing norecurse attributes.
Definition at line 1552 of file FunctionAttrs.cpp.
Referenced by llvm::PassManagerBuilder::populateModulePassManager().
| ModulePass * llvm::createRewriteStatepointsForGCLegacyPass | ( | ) |
Definition at line 218 of file RewriteStatepointsForGC.cpp.
References INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_DEPENDENCY, and INITIALIZE_PASS_END().
| ModulePass* llvm::createRewriteSymbolsPass | ( | ) |
Referenced by llvm::TargetPassConfig::addCodeGenPrepare().
| ModulePass * llvm::createRewriteSymbolsPass | ( | SymbolRewriter::RewriteDescriptorList & | DL | ) |
Definition at line 583 of file SymbolRewriter.cpp.
| MCAsmBackend * llvm::createRISCVAsmBackend | ( | const Target & | T, |
| const MCSubtargetInfo & | STI, | ||
| const MCRegisterInfo & | MRI, | ||
| const MCTargetOptions & | Options | ||
| ) |
Definition at line 402 of file RISCVAsmBackend.cpp.
References llvm::Triple::getOS(), llvm::MCELFObjectTargetWriter::getOSABI(), llvm::MCSubtargetInfo::getTargetTriple(), llvm::Triple::isArch64Bit(), llvm::RISCVAsmBackend::RISCVAsmBackend(), and TT.
Referenced by LLVMInitializeRISCVTargetMC().
| std::unique_ptr< MCObjectTargetWriter > llvm::createRISCVELFObjectWriter | ( | uint8_t | OSABI, |
| bool | Is64Bit | ||
| ) |
Definition at line 149 of file RISCVELFObjectWriter.cpp.
Referenced by llvm::RISCVAsmBackend::createObjectTargetWriter().
| FunctionPass* llvm::createRISCVExpandPseudoPass | ( | ) |
Referenced by llvm::RISCVTargetMachine::createPassConfig(), and INITIALIZE_PASS().
| InstructionSelector * llvm::createRISCVInstructionSelector | ( | const RISCVTargetMachine & | TM, |
| RISCVSubtarget & | Subtarget, | ||
| RISCVRegisterBankInfo & | RBI | ||
| ) |
Definition at line 98 of file RISCVInstructionSelector.cpp.
Referenced by llvm::RISCVSubtarget::RISCVSubtarget().
| FunctionPass * llvm::createRISCVISelDag | ( | RISCVTargetMachine & | TM | ) |
Definition at line 289 of file RISCVISelDAGToDAG.cpp.
Referenced by llvm::RISCVTargetMachine::createPassConfig().
| MCCodeEmitter * llvm::createRISCVMCCodeEmitter | ( | const MCInstrInfo & | MCII, |
| const MCRegisterInfo & | MRI, | ||
| MCContext & | Ctx | ||
| ) |
Definition at line 86 of file RISCVMCCodeEmitter.cpp.
References llvm::ISD::ADD, llvm::MCInstBuilder::addImm(), llvm::MCInstBuilder::addOperand(), llvm::MCInstBuilder::addReg(), assert(), llvm::tgtok::Bits, llvm::MCFixup::create(), llvm::MCConstantExpr::create(), llvm::MCOperand::createExpr(), llvm::NVPTXISD::Dummy, dyn_cast(), llvm::RISCV::fixup_riscv_branch, llvm::RISCV::fixup_riscv_call, llvm::RISCV::fixup_riscv_call_plt, llvm::RISCV::fixup_riscv_got_hi20, llvm::RISCV::fixup_riscv_hi20, llvm::RISCV::fixup_riscv_invalid, llvm::RISCV::fixup_riscv_jal, llvm::RISCV::fixup_riscv_lo12_i, llvm::RISCV::fixup_riscv_lo12_s, llvm::RISCV::fixup_riscv_pcrel_hi20, llvm::RISCV::fixup_riscv_pcrel_lo12_i, llvm::RISCV::fixup_riscv_pcrel_lo12_s, llvm::RISCV::fixup_riscv_relax, llvm::RISCV::fixup_riscv_rvc_branch, llvm::RISCV::fixup_riscv_rvc_jump, llvm::RISCV::fixup_riscv_tls_gd_hi20, llvm::RISCV::fixup_riscv_tls_got_hi20, llvm::RISCV::fixup_riscv_tprel_add, llvm::RISCV::fixup_riscv_tprel_hi20, llvm::RISCV::fixup_riscv_tprel_lo12_i, llvm::RISCV::fixup_riscv_tprel_lo12_s, FixupKind(), llvm::MCOperand::getExpr(), llvm::MCSubtargetInfo::getFeatureBits(), llvm::MCOperand::getImm(), llvm::RISCVMCExpr::getKind(), llvm::MCInst::getLoc(), llvm::MCInst::getOpcode(), llvm::MCInstrDesc::getOpcode(), llvm::MCInst::getOperand(), llvm::MCOperand::getReg(), llvm::MCInstrDesc::getSize(), llvm::RISCVII::InstFormatB, llvm::RISCVII::InstFormatCB, llvm::RISCVII::InstFormatCJ, llvm::RISCVII::InstFormatI, llvm::RISCVII::InstFormatMask, llvm::RISCVII::InstFormatS, llvm::MCOperand::isExpr(), llvm::MCOperand::isImm(), llvm::MCOperand::isReg(), llvm::support::little, llvm_unreachable, MI, llvm::SmallVectorTemplateBase< T >::push_back(), Size, llvm::MCExpr::SymbolRef, llvm::MCExpr::Target, llvm::MCInstrDesc::TSFlags, llvm::MCSymbolRefExpr::VK_None, llvm::RISCVMCExpr::VK_RISCV_32_PCREL, llvm::RISCVMCExpr::VK_RISCV_CALL, llvm::RISCVMCExpr::VK_RISCV_CALL_PLT, llvm::RISCVMCExpr::VK_RISCV_GOT_HI, llvm::RISCVMCExpr::VK_RISCV_HI, llvm::RISCVMCExpr::VK_RISCV_Invalid, llvm::RISCVMCExpr::VK_RISCV_LO, llvm::RISCVMCExpr::VK_RISCV_None, llvm::RISCVMCExpr::VK_RISCV_PCREL_HI, llvm::RISCVMCExpr::VK_RISCV_PCREL_LO, llvm::RISCVMCExpr::VK_RISCV_TLS_GD_HI, llvm::RISCVMCExpr::VK_RISCV_TLS_GOT_HI, llvm::RISCVMCExpr::VK_RISCV_TPREL_ADD, llvm::RISCVMCExpr::VK_RISCV_TPREL_HI, llvm::RISCVMCExpr::VK_RISCV_TPREL_LO, and llvm::support::endian::write().
Referenced by LLVMInitializeRISCVTargetMC().
| FunctionPass * llvm::createRISCVMergeBaseOffsetOptPass | ( | ) |
Returns an instance of the Merge Base Offset Optimization pass.
Definition at line 283 of file RISCVMergeBaseOffset.cpp.
Referenced by llvm::RISCVTargetMachine::createPassConfig().
|
static |
Definition at line 1272 of file RuntimeDyld.cpp.
References llvm::RuntimeDyldCOFF::create().
Referenced by llvm::RuntimeDyld::loadObject().
|
static |
Definition at line 1284 of file RuntimeDyld.cpp.
References llvm::RuntimeDyldELF::create().
Referenced by llvm::RuntimeDyld::loadObject().
|
static |
Definition at line 1295 of file RuntimeDyld.cpp.
References llvm::RuntimeDyldMachO::create().
Referenced by llvm::RuntimeDyld::loadObject().
| FunctionPass * llvm::createSafepointIRVerifierPass | ( | ) |
Create an instance of the safepoint verifier pass which can be added to a pass pipeline to check for relocation bugs.
Definition at line 244 of file SafepointIRVerifier.cpp.
References INITIALIZE_PASS_BEGIN(), and INITIALIZE_PASS_DEPENDENCY.
| Safe Stack instrumentation false FunctionPass * llvm::createSafeStackPass | ( | ) |
This pass splits the stack into a safe stack and an unsafe stack to protect against stack-based overflow vulnerabilities.
Definition at line 903 of file SafeStack.cpp.
Referenced by llvm::TargetPassConfig::addISelPrepare().
| ModulePass * llvm::createSampleProfileLoaderPass | ( | ) |
Definition at line 1832 of file SampleProfile.cpp.
Referenced by llvm::PassManagerBuilder::populateModulePassManager().
| ModulePass * llvm::createSampleProfileLoaderPass | ( | StringRef | Name | ) |
Definition at line 1836 of file SampleProfile.cpp.
References assert(), dyn_cast(), F(), llvm::StringRef::find(), llvm::sampleprof::FunctionSamples::getCanonicalFnName(), llvm::Module::getContext(), llvm::ProfileSummary::getMD(), llvm::Value::getName(), llvm::GlobalValue::getParent(), llvm::sampleprof::SampleProfileReader::getProfiles(), llvm::Module::getProfileSummary(), llvm::AnalysisManager< IRUnitT, ExtraArgTs >::getResult(), llvm::sampleprof::SampleProfileReader::getSamplesFor(), llvm::sampleprof::SampleProfileReader::getSummary(), llvm::Module::getValueSymbolTable(), llvm::Function::hasFnAttribute(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::insert(), llvm::StringRef::npos, llvm::Function::PCT_Real, ProfileAccurateForSymsInList, ProfileSampleAccurate, llvm::ProfileSummary::PSK_Sample, runOnFunction(), llvm::Function::setEntryCount(), llvm::Module::setProfileSummary(), llvm::StringRef::substr(), and updateProfileCallee().
| std::pair< Function *, FunctionCallee > llvm::createSanitizerCtorAndInitFunctions | ( | Module & | M, |
| StringRef | CtorName, | ||
| StringRef | InitName, | ||
| ArrayRef< Type *> | InitArgTypes, | ||
| ArrayRef< Value *> | InitArgs, | ||
| StringRef | VersionCheckName = StringRef() |
||
| ) |
Creates sanitizer constructor function, and calls sanitizer's init function from it.
Definition at line 120 of file ModuleUtils.cpp.
References assert(), llvm::BasicBlock::Create(), llvm::Function::Create(), llvm::ReturnInst::Create(), declareSanitizerInitFunction(), llvm::StringRef::empty(), llvm::FunctionType::get(), llvm::Module::getContext(), llvm::Module::getOrInsertFunction(), llvm::Type::getVoidTy(), llvm::GlobalValue::InternalLinkage, and llvm::ArrayRef< T >::size().
Referenced by getOrCreateSanitizerCtorAndInitFunctions(), instrumentMaskedLoadOrStore(), and llvm::ModuleSanitizerCoveragePass::run().
| FunctionPass* llvm::createScalarizeMaskedMemIntrinPass | ( | ) |
createScalarizeMaskedMemIntrinPass - Replace masked load, store, gather and scatter intrinsics with scalar code when target doesn't support them.
Referenced by llvm::TargetPassConfig::addIRPasses().
| FunctionPass * llvm::createScalarizerPass | ( | ) |
Create a legacy pass manager instance of the Scalarizer pass.
Definition at line 321 of file Scalarizer.cpp.
References assert(), llvm::BasicBlock::begin(), dyn_cast(), E, llvm::Instruction::eraseFromParent(), llvm::UndefValue::get(), llvm::DataLayout::getABITypeAlignment(), llvm::Instruction::getAllMetadataOtherThanDebugLoc(), llvm::Instruction::getDebugLoc(), llvm::Function::getEntryBlock(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::Value::getName(), llvm::SequentialType::getNumElements(), llvm::User::getNumOperands(), llvm::User::getOperand(), llvm::Instruction::getParent(), llvm::BasicBlock::getParent(), llvm::GlobalValue::getParent(), llvm::Value::getType(), llvm::DataLayout::getTypeStoreSize(), I, llvm::ARM_PROC::IE, llvm::Type::isVoidTy(), llvm::iplist_impl< IntrusiveListT, TraitsT >::push_back(), llvm::Value::replaceAllUsesWith(), llvm::User::setOperand(), Tag, llvm::Value::takeName(), llvm::DataLayout::typeSizeEqualsStoreSize(), and llvm::InstVisitor< SubClass, RetTy >::visit().
Referenced by LLVMAddScalarizerPass().
| Sparse Conditional Constant false FunctionPass * llvm::createSCCPPass | ( | ) |
Definition at line 1918 of file SCCP.cpp.
Referenced by LLVMAddSCCPPass(), llvm::PassManagerBuilder::populateFunctionPassManager(), llvm::PassManagerBuilder::populateModulePassManager(), and postSplitCleanup().
| scev ScalarEvolution based Alias true FunctionPass * llvm::createSCEVAAWrapperPass | ( | ) |
Creates an instance of SCEVAAWrapperPass.
Definition at line 131 of file ScalarEvolutionAliasAnalysis.cpp.
Referenced by llvm::SCEVAAWrapperPass::getResult().
| ImmutablePass* llvm::createScopedNoAliasAAWrapperPass | ( | ) |
| separate const offset from Split GEPs to a variadic base and a constant offset for better false FunctionPass * llvm::createSeparateConstOffsetFromGEPPass | ( | bool | LowerGEP = false | ) |
Definition at line 480 of file SeparateConstOffsetFromGEP.cpp.
References llvm::MCID::Add, assert(), B, C, llvm::Instruction::clone(), llvm::Instruction::copyMetadata(), llvm::BinaryOperator::Create(), llvm::GetElementPtrInst::Create(), llvm::IRBuilder< T, Inserter >::CreateAdd(), llvm::IRBuilder< T, Inserter >::CreateBitCast(), llvm::IRBuilder< T, Inserter >::CreateGEP(), llvm::CastInst::CreateIntegerCast(), llvm::IRBuilder< T, Inserter >::CreateIntToPtr(), llvm::IRBuilder< T, Inserter >::CreateMul(), llvm::IRBuilder< T, Inserter >::CreatePtrToInt(), llvm::IRBuilder< T, Inserter >::CreateShl(), DisableSeparateConstOffsetFromGEP, llvm::DominatorTree::dominates(), dyn_cast(), E, llvm::Instruction::eraseFromParent(), llvm::MipsISD::Ext, F(), llvm::tgtok::Field, Find(), find(), GEP, gep_type_begin(), llvm::ConstantInt::get(), getBitWidth(), llvm::ConstantExpr::getCast(), llvm::Value::getContext(), llvm::Instruction::getFunction(), llvm::generic_gep_type_iterator< ItTy >::getIndexedType(), llvm::IRBuilderBase::getInt8PtrTy(), llvm::Type::getInt8PtrTy(), llvm::IRBuilderBase::getInt8Ty(), llvm::Type::getInt8Ty(), llvm::Type::getIntegerBitWidth(), llvm::Value::getName(), llvm::Constant::getNullValue(), llvm::User::getNumOperands(), llvm::Value::getNumUses(), llvm::BinaryOperator::getOpcode(), llvm::User::getOperand(), llvm::Instruction::getParent(), llvm::Type::getPointerAddressSpace(), llvm::GetElementPtrInst::getPointerAddressSpace(), llvm::GetElementPtrInst::getResultElementType(), llvm::generic_gep_type_iterator< ItTy >::getStructType(), getType(), llvm::Value::getType(), llvm::GetElementPtrInst::hasAllConstantIndices(), llvm::Instruction::hasNoSignedWrap(), llvm::Instruction::hasNoUnsignedWrap(), haveNoCommonBitsSet(), I, llvm::ARM_PROC::IE, llvm::Instruction::insertBefore(), llvm::GetElementPtrInst::isInBounds(), llvm::TargetTransformInfo::isLegalAddressingMode(), llvm::Loop::isLoopInvariant(), llvm::APInt::isPowerOf2(), llvm::generic_gep_type_iterator< ItTy >::isSequential(), llvm::Type::isVectorTy(), llvm::APInt::logBase2(), llvm::PatternMatch::m_Add(), llvm::PatternMatch::m_NSWAdd(), llvm::PatternMatch::m_NSWSub(), llvm::PatternMatch::m_SExt(), llvm::PatternMatch::m_Sub(), llvm::PatternMatch::m_Value(), llvm::PatternMatch::match(), llvm::User::op_begin(), llvm::User::op_end(), programUndefinedIfFullPoison(), RecursivelyDeleteTriviallyDeadInstructions(), llvm::Value::replaceAllUsesWith(), runOnFunction(), llvm::GetElementPtrInst::setIsInBounds(), llvm::User::setOperand(), llvm::Value::takeName(), llvm::TargetTransformInfo::useAA(), llvm::MCID::Variadic, and VerifyNoDeadCode.
Referenced by llvm::AArch64TargetMachine::createPassConfig(), llvm::PPCTargetMachine::createPassConfig(), llvm::NVPTXTargetMachine::getTargetTransformInfo(), and llvm::GCNTargetMachine::getTargetTransformInfo().
| Constant * llvm::createSequentialMask | ( | IRBuilder<> & | Builder, |
| unsigned | Start, | ||
| unsigned | NumInts, | ||
| unsigned | NumUndefs | ||
| ) |
Create a sequential shuffle mask.
This function creates shuffle mask whose elements are sequential and begin at Start. The mask contains NumInts integers and is padded with NumUndefs undef values. The mask is of the form:
<Start, Start + 1, ... Start + NumInts - 1, undef_1, ... undef_NumUndefs>
For example, the mask for Start = 0, NumInsts = 4, and NumUndefs = 4 is:
<0, 1, 2, 3, undef, undef, undef, undef>
Definition at line 687 of file VectorUtils.cpp.
Referenced by concatenateTwoVectors(), llvm::AArch64TargetLowering::lowerInterleavedStore(), and llvm::ARMTargetLowering::lowerInterleavedStore().
| Shadow Stack GC false FunctionPass * llvm::createShadowStackGCLoweringPass | ( | ) |
ShadowStackGCLowering - Implements the custom lowering mechanism used by the shadow stack GC.
Only runs on functions which opt in to the shadow stack collector.
Definition at line 96 of file ShadowStackGCLowering.cpp.
References assert(), B, llvm::BasicBlock::begin(), llvm::Function::begin(), C, Context, llvm::StructType::create(), llvm::IRBuilder< T, Inserter >::CreateGEP(), dyn_cast(), E, llvm::Function::end(), F(), llvm::ConstantInt::get(), llvm::ArrayType::get(), llvm::ConstantArray::get(), llvm::ConstantStruct::get(), llvm::ConstantExpr::getBitCast(), llvm::Function::getContext(), llvm::Function::getEntryBlock(), llvm::Function::getGC(), llvm::ConstantExpr::getGetElementPtr(), llvm::Type::getInt32Ty(), llvm::Type::getInt8PtrTy(), llvm::Function::getIntrinsicID(), llvm::Value::getName(), llvm::Constant::getNullValue(), llvm::GlobalValue::getParent(), llvm::PassRegistry::getPassRegistry(), llvm::Value::getType(), llvm::PointerType::getUnqual(), llvm::Function::hasGC(), I, initializeShadowStackGCLoweringPass(), Int32Ty, llvm::GlobalValue::InternalLinkage, llvm::Constant::isNullValue(), llvm::GlobalValue::LinkOnceAnyLinkage, Name, llvm::EscapeEnumerator::Next(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::Value::replaceAllUsesWith(), llvm::SmallVectorImpl< T >::resize(), runOnFunction(), llvm::StructType::setBody(), llvm::Value::takeName(), and utostr().
Referenced by llvm::TargetPassConfig::addIRPasses().
| FunctionPass * llvm::createSIAddIMGInitPass | ( | ) |
Definition at line 60 of file SIAddIMGInit.cpp.
References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), assert(), llvm::MachineBasicBlock::begin(), llvm::MachineFunction::begin(), BuildMI(), countPopulation(), llvm::MachineRegisterInfo::createVirtualRegister(), llvm::MachineBasicBlock::end(), llvm::MachineFunction::end(), llvm::MDNode::get(), llvm::MachineInstr::getDebugLoc(), llvm::MachineOperand::getImm(), llvm::GCNSubtarget::getInstrInfo(), llvm::AMDGPU::getNamedOperandIdx(), llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOpcode(), llvm::MachineFunction::getRegInfo(), llvm::GCNSubtarget::getRegisterInfo(), llvm::MachineFunction::getSubtarget(), llvm::GCNSubtarget::hasUnpackedD16VMem(), I, llvm::RegState::Implicit, llvm::MachineInstr::mayStore(), MI, MRI, llvm::ARM_MB::ST, SubReg, llvm::MachineInstr::tieOperands(), TII, and llvm::GCNSubtarget::usePRTStrictNull().
Referenced by llvm::R600TargetMachine::createPassConfig().
| FunctionPass * llvm::createSIAnnotateControlFlowPass | ( | ) |
Create the annotation pass.
Definition at line 374 of file SIAnnotateControlFlow.cpp.
Referenced by llvm::R600TargetMachine::createPassConfig().
| FunctionPass* llvm::createSIFixControlFlowLiveIntervalsPass | ( | ) |
| FunctionPass * llvm::createSIFixSGPRCopiesPass | ( | ) |
Definition at line 149 of file SIFixSGPRCopies.cpp.
| FunctionPass * llvm::createSIFixupVectorISelPass | ( | ) |
Definition at line 81 of file SIFixupVectorISel.cpp.
Referenced by llvm::R600TargetMachine::createPassConfig().
| FunctionPass * llvm::createSIFoldOperandsPass | ( | ) |
Definition at line 180 of file SIFoldOperands.cpp.
| FunctionPass * llvm::createSIFormMemoryClausesPass | ( | ) |
Definition at line 96 of file SIFormMemoryClauses.cpp.
| FunctionPass * llvm::createSIInsertWaitcntsPass | ( | ) |
Definition at line 808 of file SIInsertWaitcnts.cpp.
Referenced by llvm::R600TargetMachine::createPassConfig().
| FunctionPass * llvm::createSILoadStoreOptimizerPass | ( | ) |
Definition at line 566 of file SILoadStoreOptimizer.cpp.
| FunctionPass * llvm::createSILowerI1CopiesPass | ( | ) |
Definition at line 424 of file SILowerI1Copies.cpp.
Referenced by llvm::R600TargetMachine::createPassConfig().
| MCCodeEmitter * llvm::createSIMCCodeEmitter | ( | const MCInstrInfo & | MCII, |
| const MCRegisterInfo & | MRI, | ||
| MCContext & | Ctx | ||
| ) |
Definition at line 89 of file SIMCCodeEmitter.cpp.
Referenced by LLVMInitializeAMDGPUTargetMC().
| FunctionPass * llvm::createSIMemoryLegalizerPass | ( | ) |
Definition at line 1315 of file SIMemoryLegalizer.cpp.
Referenced by llvm::R600TargetMachine::createPassConfig().
| FunctionPass * llvm::createSIModeRegisterPass | ( | ) |
Definition at line 164 of file SIModeRegister.cpp.
References llvm::MachineInstrBuilder::addImm(), B, BuildMI(), Status::delta(), E, FP_ROUND_MODE_DP, FP_ROUND_ROUND_TO_ZERO, llvm::MachineOperand::getImm(), llvm::GCNSubtarget::getInstrInfo(), llvm::SIInstrInfo::getNamedOperand(), llvm::MachineBasicBlock::getNumber(), llvm::MachineFunction::getNumBlockIDs(), llvm::MachineInstr::getOpcode(), llvm::MachineFunction::getSubtarget(), llvm::AMDGPU::Hwreg::ID_MASK_, llvm::AMDGPU::Hwreg::ID_MODE, llvm::AMDGPU::Hwreg::ID_SHIFT_, llvm::MachineBasicBlock::instr_front(), Status::isCombinable(), Status::Mask, llvm::BitmaskEnumDetail::Mask(), Status::merge(), MI, Status::Mode, Mode, llvm::AMDGPU::Hwreg::OFFSET_MASK_, llvm::AMDGPU::Hwreg::OFFSET_SHIFT_, P, llvm::MachineBasicBlock::pred_begin(), llvm::MachineBasicBlock::pred_empty(), llvm::MachineBasicBlock::pred_end(), llvm::ARM_MB::ST, llvm::MachineBasicBlock::succ_begin(), llvm::MachineBasicBlock::succ_end(), TII, llvm::SIInstrInfo::usesFPDPRounding(), llvm::AMDGPU::Hwreg::WIDTH_M1_MASK_, and llvm::AMDGPU::Hwreg::WIDTH_M1_SHIFT_.
Referenced by llvm::R600TargetMachine::createPassConfig().
| Pass * llvm::createSimpleLoopUnrollPass | ( | int | OptLevel = 2, |
| bool | OnlyWhenForced = false, |
||
| bool | ForgetAllSCEV = false |
||
| ) |
Definition at line 1290 of file LoopUnrollPass.cpp.
References createLoopUnrollPass().
Referenced by llvm::PassManagerBuilder::populateFunctionPassManager(), and llvm::PassManagerBuilder::populateModulePassManager().
| simple loop Simple unswitch false Pass * llvm::createSimpleLoopUnswitchLegacyPass | ( | bool | NonTrivial = false | ) |
Create the legacy pass object for the simple loop unswitcher.
See the documentaion for SimpleLoopUnswitchPass for details.
Definition at line 3009 of file SimpleLoopUnswitch.cpp.
Referenced by llvm::PassManagerBuilder::populateFunctionPassManager(), and llvm::SimpleLoopUnswitchPass::SimpleLoopUnswitchPass().
| Value * llvm::createSimpleTargetReduction | ( | IRBuilder<> & | Builder, |
| const TargetTransformInfo * | TTI, | ||
| unsigned | Opcode, | ||
| Value * | Src, | ||
| TargetTransformInfo::ReductionFlags | Flags = TargetTransformInfo::ReductionFlags(), |
||
| ArrayRef< Value *> | RedOps = None |
||
| ) |
Create a target reduction of the given vector.
Create a simple vector reduction specified by an opcode and some flags (if generating min/max reductions).
The reduction operation is described by the Opcode parameter. min/max reductions require additional information supplied in Flags. The target is queried to determine if intrinsics or shuffle sequences are required to implement the reduction. Fast-math-flags are propagated using the IRBuilder's setting.
Definition at line 874 of file LoopUtils.cpp.
References llvm::MCID::Add, assert(), llvm::IRBuilderBase::CreateAddReduce(), llvm::IRBuilderBase::CreateAndReduce(), llvm::IRBuilderBase::CreateFAddReduce(), llvm::IRBuilderBase::CreateFMulReduce(), llvm::IRBuilderBase::CreateFPMaxReduce(), llvm::IRBuilderBase::CreateFPMinReduce(), llvm::IRBuilderBase::CreateIntMaxReduce(), llvm::IRBuilderBase::CreateIntMinReduce(), llvm::IRBuilderBase::CreateMulReduce(), llvm::IRBuilderBase::CreateOrReduce(), llvm::IRBuilderBase::CreateXorReduce(), llvm::ConstantFP::get(), llvm::Constant::getNullValue(), getShuffleReduction(), llvm::Value::getType(), llvm::Type::getVectorElementType(), llvm::TargetTransformInfo::ReductionFlags::IsMaxOp, llvm::TargetTransformInfo::ReductionFlags::IsSigned, llvm_unreachable, llvm::TargetTransformInfo::ReductionFlags::NoNaN, and llvm::TargetTransformInfo::useReductionIntrinsic().
Referenced by createTargetReduction().
| Pass * llvm::createSingleLoopExtractorPass | ( | ) |
createSingleLoopExtractorPass - This pass extracts one natural loop from the program into a function if it can.
This is used by bugpoint.
Definition at line 166 of file LoopExtractor.cpp.
| FunctionPass * llvm::createSinkingPass | ( | ) |
Definition at line 304 of file Sink.cpp.
Referenced by llvm::R600TargetMachine::createPassConfig().
| FunctionPass * llvm::createSIOptimizeExecMaskingPreRAPass | ( | ) |
Definition at line 82 of file SIOptimizeExecMaskingPreRA.cpp.
| FunctionPass * llvm::createSIPeepholeSDWAPass | ( | ) |
Definition at line 219 of file SIPeepholeSDWA.cpp.
| FunctionPass * llvm::createSIPreAllocateWWMRegsPass | ( | ) |
Definition at line 86 of file SIPreAllocateWWMRegs.cpp.
References assert(), dbgs(), llvm::MachineFunction::getName(), llvm::MachineOperand::getReg(), llvm::MachineFunction::getRegInfo(), llvm::GCNSubtarget::getRegisterInfo(), llvm::MachineOperand::getSubReg(), llvm::MachineFunction::getSubtarget(), llvm::LiveRegMatrix::IK_Free, llvm::Register::isPhysicalRegister(), llvm::MachineOperand::isReg(), LLVM_DEBUG, llvm_unreachable, Matrix, MI, MRI, Reg, llvm::SIMachineFunctionInfo::ReserveWWMRegister(), llvm::MachineOperand::setIsRenamable(), llvm::MachineOperand::setReg(), llvm::MachineOperand::setSubReg(), llvm::ARM_MB::ST, SubReg, TII, and TRI.
| FunctionPass* llvm::createSIShrinkInstructionsPass | ( | ) |
Referenced by llvm::R600TargetMachine::createPassConfig().
| FunctionPass * llvm::createSIWholeQuadModePass | ( | ) |
Definition at line 225 of file SIWholeQuadMode.cpp.
References llvm::MachineInstr::addOperand(), llvm::MachineInstrBuilder::addReg(), assert(), llvm::MachineBasicBlock::begin(), llvm::ReversePostOrderTraversal< GraphT, GT >::begin(), llvm::MachineFunction::begin(), BuildMI(), llvm::MachineOperand::CreateReg(), dbgs(), llvm::VNInfo::def, DefMI, llvm::MachineInstr::defs(), llvm::MachineBasicBlock::empty(), llvm::LiveRange::Segment::end, llvm::MachineBasicBlock::end(), llvm::ReversePostOrderTraversal< GraphT, GT >::end(), llvm::MachineInstr::eraseFromParent(), llvm::MachineFunction::front(), llvm::AMDGPUSubtarget::get(), llvm::SlotIndex::getBaseIndex(), llvm::Function::getCallingConv(), llvm::MachineInstr::getDebugLoc(), llvm::MachineBasicBlock::getFirstNonPHI(), llvm::MachineFunction::getFunction(), llvm::SlotIndex::getNextIndex(), llvm::MachineInstr::getNumExplicitOperands(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineInstr::getParent(), llvm::ilist_node_with_parent< NodeTy, ParentTy, Options >::getPrevNode(), llvm::MachineOperand::getReg(), llvm::MachineFunction::getRegInfo(), llvm::GCNSubtarget::getRegisterInfo(), llvm::LiveRange::getSegmentContaining(), llvm::MachineFunction::getSubtarget(), llvm::Function::hasFnAttribute(), llvm::ARM_PROC::IE, if(), llvm::VNInfo::isPHIDef(), llvm::MachineOperand::isReg(), llvm::MachineInstr::isTerminator(), llvm::MachineInstr::isTransient(), llvm::MachineOperand::isUndef(), llvm::MCRegisterInfo::DiffListIterator::isValid(), llvm::Register::isVirtualRegister(), LLVM_DEBUG, LLVM_DUMP_METHOD, llvm::MachineInstr::mayStore(), MI, MRI, llvm::MachineBasicBlock::predecessors(), printMBBReference(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::LiveRange::Query(), llvm::MachineBasicBlock::rbegin(), Reg, llvm::MachineInstr::RemoveOperand(), llvm::MachineInstr::setDesc(), llvm::MachineOperand::setImm(), llvm::ARM_MB::ST, llvm::LiveRange::Segment::start, llvm::MachineBasicBlock::successors(), TII, TRI, llvm::MachineInstr::untieRegOperand(), llvm::MachineInstr::uses(), and llvm::SIInstrFlags::WQM.
Referenced by llvm::R600TargetMachine::createPassConfig().
| FunctionPass* llvm::createSjLjEHPreparePass | ( | ) |
createSjLjEHPreparePass - This pass adapts exception handling code to use the GCC-style builtin setjmp/longjmp (sjlj) to handling EH control flow.
Referenced by llvm::TargetPassConfig::addPassesToHandleExceptions().
| Pass * llvm::createSLPVectorizerPass | ( | ) |
Definition at line 7495 of file SLPVectorizer.cpp.
Referenced by LLVMAddSLPVectorizePass(), and llvm::PassManagerBuilder::populateModulePassManager().
| ScheduleDAGSDNodes * llvm::createSourceListDAGScheduler | ( | SelectionDAGISel * | IS, |
| CodeGenOpt::Level | OptLevel | ||
| ) |
createBURRListDAGScheduler - This creates a bottom up list scheduler that schedules nodes in source code order when possible.
Definition at line 3146 of file ScheduleDAGRRList.cpp.
References llvm::TargetSubtargetInfo::getInstrInfo(), llvm::TargetSubtargetInfo::getRegisterInfo(), llvm::MachineFunction::getSubtarget(), llvm::SelectionDAGISel::MF, TII, and TRI.
Referenced by createDefaultScheduler(), and llvm::RegisterScheduler::setListener().
| MCAsmBackend * llvm::createSparcAsmBackend | ( | const Target & | T, |
| const MCSubtargetInfo & | STI, | ||
| const MCRegisterInfo & | MRI, | ||
| const MCTargetOptions & | Options | ||
| ) |
Definition at line 326 of file SparcAsmBackend.cpp.
References llvm::Triple::getOS(), and llvm::MCSubtargetInfo::getTargetTriple().
Referenced by LLVMInitializeSparcTargetMC().
| FunctionPass * llvm::createSparcDelaySlotFillerPass | ( | ) |
createSparcDelaySlotFillerPass - Returns a pass that fills in delay slots in Sparc MachineFunctions
Definition at line 98 of file DelaySlotFiller.cpp.
References assert(), llvm::MachineBasicBlock::begin(), BuildMI(), llvm::AArch64ISD::CALL, llvm::SmallSet< T, N, C >::count(), D, DisableDelaySlotFiller, llvm::numbers::e, llvm::MachineBasicBlock::end(), llvm::SparcSubtarget::fixAllFDIVSQRT(), llvm::MachineOperand::getImm(), llvm::SparcSubtarget::getInstrInfo(), llvm::MachineBasicBlock::getParent(), llvm::MachineOperand::getReg(), llvm::SparcSubtarget::getRegisterInfo(), llvm::MachineFunction::getSubtarget(), I, llvm::SmallSet< T, N, C >::insert(), llvm::SparcSubtarget::insertNOPLoad(), llvm::MachineOperand::isDef(), llvm::MachineOperand::isGlobal(), llvm::MachineOperand::isImm(), llvm::MachineOperand::isImplicit(), llvm::MachineOperand::isReg(), llvm::MachineOperand::isUse(), llvm::SparcSubtarget::isV9(), llvm::MCRegAliasIterator::isValid(), llvm_unreachable, MI, Reg, llvm::ARCISD::RET, llvm::MachineBasicBlock::splice(), TII, and llvm::SPISD::TLS_CALL.
Referenced by llvm::SparcTargetMachine::createPassConfig().
| std::unique_ptr< MCObjectTargetWriter > llvm::createSparcELFObjectWriter | ( | bool | Is64Bit, |
| uint8_t | OSABI | ||
| ) |
Definition at line 137 of file SparcELFObjectWriter.cpp.
Referenced by getFixupKindNumBytes().
| FunctionPass * llvm::createSparcISelDag | ( | SparcTargetMachine & | TM | ) |
createSparcISelDag - This pass converts a legalized DAG into a SPARC-specific DAG, ready for instruction scheduling.
Definition at line 398 of file SparcISelDAGToDAG.cpp.
Referenced by llvm::SparcTargetMachine::createPassConfig().
| MCCodeEmitter * llvm::createSparcMCCodeEmitter | ( | const MCInstrInfo & | MCII, |
| const MCRegisterInfo & | MRI, | ||
| MCContext & | Ctx | ||
| ) |
Definition at line 229 of file SparcMCCodeEmitter.cpp.
Referenced by LLVMInitializeSparcTargetMC().
| FunctionPass * llvm::createSpeculativeExecutionIfHasBranchDivergencePass | ( | ) |
Definition at line 301 of file SpeculativeExecution.cpp.
Referenced by llvm::PassManagerBuilder::populateFunctionPassManager().
| FunctionPass * llvm::createSpeculativeExecutionPass | ( | ) |
Definition at line 297 of file SpeculativeExecution.cpp.
Referenced by llvm::NVPTXTargetMachine::getTargetTransformInfo(), and llvm::GCNTargetMachine::getTargetTransformInfo().
| FunctionPass * llvm::createSROAPass | ( | ) |
Definition at line 4653 of file SROA.cpp.
References INITIALIZE_PASS_BEGIN(), and INITIALIZE_PASS_DEPENDENCY.
Referenced by llvm::NVPTXTargetMachine::getTargetTransformInfo(), llvm::GCNTargetMachine::getTargetTransformInfo(), LLVMAddScalarReplAggregatesPass(), LLVMAddScalarReplAggregatesPassSSA(), LLVMAddScalarReplAggregatesPassWithThreshold(), llvm::PassManagerBuilder::populateFunctionPassManager(), and llvm::PassManagerBuilder::populateModulePassManager().
| Insert stack true FunctionPass * llvm::createStackProtectorPass | ( | ) |
createStackProtectorPass - This pass adds stack protectors to functions.
Definition at line 75 of file StackProtector.cpp.
References llvm::StackProtector::StackProtector().
Referenced by llvm::TargetPassConfig::addISelPrepare().
| std::unique_ptr< ScheduleDAGMutation > llvm::createStoreClusterDAGMutation | ( | const TargetInstrInfo * | TII, |
| const TargetRegisterInfo * | TRI | ||
| ) |
Definition at line 1551 of file MachineScheduler.cpp.
References llvm::HexagonInstrInfo::getMemOperandWithOffset(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::SmallVectorBase::size(), sort(), TII, and TRI.
Referenced by llvm::AArch64beTargetMachine::AArch64beTargetMachine(), createGCNMaxOccupancyMachineScheduler(), createIterativeGCNMaxOccupancyMachineScheduler(), createIterativeILPMachineScheduler(), llvm::GCNTargetMachine::getTargetTransformInfo(), and llvm::PostGenericScheduler::releaseBottomNode().
| Straight line strength false FunctionPass * llvm::createStraightLineStrengthReducePass | ( | ) |
Definition at line 256 of file StraightLineStrengthReduce.cpp.
References C.
Referenced by llvm::NVPTXTargetMachine::getTargetTransformInfo(), and llvm::GCNTargetMachine::getTargetTransformInfo().
| Constant * llvm::createStrideMask | ( | IRBuilder<> & | Builder, |
| unsigned | Start, | ||
| unsigned | Stride, | ||
| unsigned | VF | ||
| ) |
Create a stride shuffle mask.
This function creates a shuffle mask whose elements begin at Start and are incremented by Stride. The mask can be used to deinterleave an interleaved vector into separate vectors of vectorization factor VF. The mask is of the form:
<Start, Start + Stride, ..., Start + Stride * (VF - 1)>
For example, the mask for Start = 0, Stride = 2, and VF = 4 is:
<0, 2, 4, 6>
Definition at line 678 of file VectorUtils.cpp.
Referenced by llvm::InnerLoopVectorizer::vectorizeInterleaveGroup().
|
inline |
Create formatted StringError object.
Definition at line 1197 of file Error.h.
References format(), and llvm::raw_string_ostream::str().
Referenced by advanceToMetaBlock(), llvm::gsym::Header::checkForError(), llvm::DWARFUnit::collectAddressRanges(), llvm::xray::LogBuilderConsumer::consume(), llvm::xray::PipelineConsumer::consume(), llvm::gsym::GsymReader::create(), llvm::remarks::createRemarkParser(), llvm::remarks::createRemarkParserFromMeta(), llvm::remarks::createRemarkSerializer(), createResolverError(), createStringError(), llvm::remarks::createYAMLParserFromMeta(), llvm::gsym::Header::decode(), llvm::gsym::FunctionInfo::decode(), decode(), llvm::gsym::FunctionInfo::encode(), llvm::gsym::GsymCreator::encode(), llvm::gsym::LineTable::encode(), llvm::gsym::InlineInfo::encode(), llvm::BitstreamCursor::EnterSubBlock(), ExpandResponseFile(), llvm::DWARFDebugAddrTable::extract(), llvm::DWARFDebugRangeList::extract(), llvm::DWARFListTableHeader::extract(), llvm::AppleAcceleratorTable::extract(), llvm::DWARFDebugNames::Header::extract(), llvm::DWARFDebugNames::NameIndex::extract(), llvm::SimpleBitstreamCursor::fillCurWord(), llvm::gsym::GsymCreator::finalize(), llvm::DWARFUnit::findRnglistFromIndex(), llvm::DWARFUnit::findRnglistFromOffset(), llvm::DWARFDebugAddrTable::getAddrEntry(), llvm::gsym::GsymReader::getAddressIndex(), llvm::object::ResourceSectionRef::getContents(), llvm::DWARFDebugNames::NameIndex::getEntry(), llvm::gsym::GsymReader::getFunctionInfo(), llvm::DWARFDie::getLocations(), llvm::object::Elf_Sym_Impl< ELFT >::getName(), llvm::DWARFDebugLine::getOrParseLineTable(), getRemarksSectionName(), llvm::object::WasmObjectFile::getSectionName(), llvm::object::COFFObjectFile::getSectionName(), llvm::object::ResourceSectionRef::getTableEntry(), hasInvalidBitcodeHeader(), isBlock(), isSentinel(), llvm::object::ResourceSectionRef::load(), llvm::DWARFContext::loadRegisterInfo(), llvm::gsym::GsymReader::lookup(), llvm::gsym::FunctionInfo::lookup(), llvm::remarks::magicToFormat(), malformedRecord(), llvm::remarks::ParsedStringTable::operator[](), parse(), llvm::dwarf::CFIProgram::parse(), llvm::DWARFDebugLine::Prologue::parse(), llvm::DWARFDebugLine::LineTable::parse(), parseBlock(), llvm::remarks::BitstreamParserHelper::parseBlockInfoBlock(), parseDWARF32StringOffsetsTableHeader(), parseDWARF64StringOffsetsTableHeader(), parseDWARFStringOffsetsTableHeader(), llvm::remarks::parseFormat(), parseListTableHeader(), parseMagic(), llvm::remarks::BitstreamRemarkParser::parseMeta(), llvm::remarks::BitstreamRemarkParser::parseRemark(), llvm::remarks::YAMLRemarkParser::parseRemark(), parseStrTab(), parseStrTabSize(), parseV5DirFileTables(), parseV5EntryFormat(), parseVersion(), processRemarkVersion(), processStrTab(), llvm::xray::FileBasedRecordProducer::produce(), llvm::SimpleBitstreamCursor::Read(), llvm::xray::readBinaryFormatHeader(), reportError(), llvm::RemarkStreamer::setFilter(), llvm::BitstreamCursor::SkipBlock(), llvm::BitstreamCursor::skipRecord(), llvm::DWARFUnit::tryExtractDIEsIfNeeded(), unexpectedEndReached(), unknownRecord(), llvm::StrOffsetsContributionDescriptor::validateContributionSize(), validateMagicNumber(), llvm::xray::BlockVerifier::verify(), llvm::xray::RecordInitializer::visit(), and llvm::DWARFDebugLoclists::visitLocationList().
Definition at line 1207 of file Error.h.
References createStringError(), and llvm::Twine::str().
|
inline |
Definition at line 1212 of file Error.h.
References createStringError(), and llvm::object::make_error_code().
| ModulePass* llvm::createStripDeadDebugInfoPass | ( | ) |
| ModulePass* llvm::createStripDeadPrototypesPass | ( | ) |
createStripDeadPrototypesPass - This pass removes any function declarations (prototypes) that are not used.
Referenced by LLVMAddStripDeadPrototypesPass(), and llvm::PassManagerBuilder::populateModulePassManager().
| ModulePass* llvm::createStripDebugDeclarePass | ( | ) |
| ModulePass* llvm::createStripNonDebugSymbolsPass | ( | ) |
| ModulePass* llvm::createStripNonLineTableDebugInfoPass | ( | ) |
This function returns a new pass that downgrades the debug info in the module to line tables only.
| ModulePass* llvm::createStripSymbolsPass | ( | bool | OnlyDebugInfo = false | ) |
Referenced by LLVMAddStripSymbolsPass().
When SkipUniformRegions is true the structizer will not structurize regions that only contain uniform branches.
Definition at line 1063 of file StructurizeCFG.cpp.
Referenced by llvm::R600TargetMachine::createPassConfig(), and llvm::GCNTargetMachine::getTargetTransformInfo().
| FunctionPass * llvm::createSystemZElimComparePass | ( | SystemZTargetMachine & | TM | ) |
Definition at line 744 of file SystemZElimCompare.cpp.
Referenced by llvm::SystemZ::isImmHF(), and llvm::SystemZTargetMachine::SystemZTargetMachine().
| FunctionPass * llvm::createSystemZISelDag | ( | SystemZTargetMachine & | TM, |
| CodeGenOpt::Level | OptLevel | ||
| ) |
Definition at line 378 of file SystemZISelDAGToDAG.cpp.
Referenced by llvm::SystemZ::isImmHF(), and llvm::SystemZTargetMachine::SystemZTargetMachine().
| FunctionPass * llvm::createSystemZLDCleanupPass | ( | SystemZTargetMachine & | TM | ) |
Definition at line 55 of file SystemZLDCleanup.cpp.
References llvm::AnalysisUsage::addRequired(), F(), llvm::MachineFunctionPass::getAnalysisUsage(), llvm::MachineFunction::getFunction(), llvm::MachineFunction::getInfo(), llvm::TargetSubtargetInfo::getInstrInfo(), llvm::SystemZMachineFunctionInfo::getNumLocalDynamicTLSAccesses(), llvm::MachineDominatorTree::getRootNode(), llvm::MachineFunction::getSubtarget(), llvm::AnalysisUsage::setPreservesCFG(), and TII.
Referenced by llvm::SystemZ::isImmHF(), and llvm::SystemZTargetMachine::SystemZTargetMachine().
| FunctionPass * llvm::createSystemZLongBranchPass | ( | SystemZTargetMachine & | TM | ) |
Definition at line 469 of file SystemZLongBranch.cpp.
Referenced by llvm::SystemZ::isImmHF(), and llvm::SystemZTargetMachine::SystemZTargetMachine().
| MCAsmBackend * llvm::createSystemZMCAsmBackend | ( | const Target & | T, |
| const MCSubtargetInfo & | STI, | ||
| const MCRegisterInfo & | MRI, | ||
| const MCTargetOptions & | Options | ||
| ) |
Definition at line 126 of file SystemZMCAsmBackend.cpp.
References llvm::Triple::getOS(), llvm::MCELFObjectTargetWriter::getOSABI(), and llvm::MCSubtargetInfo::getTargetTriple().
Referenced by llvm::SystemZMC::getRegAsVR128(), and LLVMInitializeSystemZTargetMC().
| MCCodeEmitter * llvm::createSystemZMCCodeEmitter | ( | const MCInstrInfo & | MCII, |
| const MCRegisterInfo & | MRI, | ||
| MCContext & | Ctx | ||
| ) |
Definition at line 303 of file SystemZMCCodeEmitter.cpp.
Referenced by llvm::SystemZMC::getRegAsVR128(), and LLVMInitializeSystemZTargetMC().
| std::unique_ptr< MCObjectTargetWriter > llvm::createSystemZObjectWriter | ( | uint8_t | OSABI | ) |
Definition at line 164 of file SystemZMCObjectWriter.cpp.
Referenced by extractBitsForFixup(), and llvm::SystemZMC::getRegAsVR128().
| FunctionPass* llvm::createSystemZPostRewritePass | ( | SystemZTargetMachine & | TM | ) |
Referenced by llvm::SystemZ::isImmHF(), and llvm::SystemZTargetMachine::SystemZTargetMachine().
| FunctionPass * llvm::createSystemZShortenInstPass | ( | SystemZTargetMachine & | TM | ) |
Definition at line 58 of file SystemZShortenInst.cpp.
References TII.
Referenced by llvm::SystemZ::isImmHF(), and llvm::SystemZTargetMachine::SystemZTargetMachine().
| FunctionPass* llvm::createSystemZTDCPass | ( | ) |
Referenced by llvm::SystemZ::isImmHF(), and llvm::SystemZTargetMachine::SystemZTargetMachine().
| Tail Call false FunctionPass * llvm::createTailCallEliminationPass | ( | ) |
Definition at line 858 of file TailRecursionElimination.cpp.
Referenced by LLVMAddTailCallEliminationPass(), llvm::PassManagerBuilder::populateFunctionPassManager(), and llvm::PassManagerBuilder::populateModulePassManager().
| Value * llvm::createTargetReduction | ( | IRBuilder<> & | B, |
| const TargetTransformInfo * | TTI, | ||
| RecurrenceDescriptor & | Desc, | ||
| Value * | Src, | ||
| bool | NoNaN = false |
||
| ) |
Create a generic target reduction using a recurrence descriptor Desc The target is queried to determine if intrinsics or shuffle sequences are required to implement the reduction.
Create a vector reduction using a given recurrence descriptor.
Fast-math-flags are propagated using the RecurrenceDescriptor.
Definition at line 946 of file LoopUtils.cpp.
References llvm::MCID::Add, createSimpleTargetReduction(), llvm::RecurrenceDescriptor::getFastMathFlags(), llvm::RecurrenceDescriptor::getMinMaxRecurrenceKind(), llvm::RecurrenceDescriptor::getRecurrenceKind(), llvm::TargetTransformInfo::ReductionFlags::IsMaxOp, llvm::TargetTransformInfo::ReductionFlags::IsSigned, llvm_unreachable, llvm::TargetTransformInfo::ReductionFlags::NoNaN, and llvm::IRBuilderBase::setFastMathFlags().
Referenced by llvm::InnerLoopVectorizer::fixReduction().
| ImmutablePass * llvm::createTargetTransformInfoWrapperPass | ( | TargetIRAnalysis | TIRA | ) |
Create an analysis pass wrapper around a TTI object.
This analysis pass just holds the TTI instance and makes it available to clients.
Definition at line 1394 of file TargetTransformInfo.cpp.
References llvm::TargetTransformInfoWrapperPass::TargetTransformInfoWrapperPass().
Referenced by llvm::TargetPassConfig::addISelPasses(), LLVMAddAnalysisPasses(), and llvm::LTOCodeGenerator::optimize().
| FunctionPass * llvm::createThreadSanitizerLegacyPassPass | ( | ) |
Definition at line 196 of file ThreadSanitizer.cpp.
References llvm::AtomicRMWInst::Add, llvm::AtomicRMWInst::And, llvm::AtomicRMWInst::FIRST_BINOP, llvm::AttributeList::FunctionIndex, llvm::Module::getContext(), llvm::Module::getDataLayout(), llvm::Type::getInt32Ty(), llvm::IRBuilderBase::getInt8PtrTy(), llvm::Type::getInt8PtrTy(), llvm::Type::getIntNTy(), llvm::DataLayout::getIntPtrType(), llvm::Module::getOrInsertFunction(), llvm::Type::getPointerTo(), llvm::IRBuilderBase::getVoidTy(), initialize(), itostr(), kNumberOfAccessSizes, llvm::AtomicRMWInst::LAST_BINOP, llvm::AtomicRMWInst::Nand, op, llvm::AtomicRMWInst::Or, llvm::AtomicRMWInst::Sub, utostr(), llvm::AtomicRMWInst::Xchg, and llvm::AtomicRMWInst::Xor.
| FunctionPass * llvm::createThumb2ITBlockPass | ( | ) |
createThumb2ITBlockPass - Returns an instance of the Thumb2 IT blocks insertion pass.
Definition at line 310 of file Thumb2ITBlockPass.cpp.
Referenced by llvm::ARMBaseTargetMachine::createPassConfig().
| FunctionPass * llvm::createThumb2SizeReductionPass | ( | std::function< bool(const Function &)> | Ftor = nullptr | ) |
createThumb2SizeReductionPass - Returns an instance of the Thumb2 size reduction pass.
Definition at line 1148 of file Thumb2SizeReduction.cpp.
Referenced by llvm::ARMBaseTargetMachine::createPassConfig().
| ImmutablePass* llvm::createTypeBasedAAWrapperPass | ( | ) |
| FunctionPass * llvm::createTypePromotionPass | ( | ) |
Create IR Type Promotion pass.
Definition at line 1015 of file TypePromotion.cpp.
Referenced by llvm::ARMBaseTargetMachine::createPassConfig().
| Pass* llvm::createUnifyFunctionExitNodesPass | ( | ) |
| FunctionPass * llvm::createUnpackMachineBundles | ( | std::function< bool(const MachineFunction &)> | Ftor | ) |
Definition at line 82 of file MachineInstrBundle.cpp.
References llvm::PassRegistry::getPassRegistry(), and initializeFinalizeMachineBundlesPass().
Referenced by llvm::ARMBaseTargetMachine::createPassConfig().
| void llvm::createUnpackShuffleMask | ( | MVT | VT, |
| SmallVectorImpl< T > & | Mask, | ||
| bool | Lo, | ||
| bool | Unary | ||
| ) |
Generate unpacklo/unpackhi shuffle mask.
Definition at line 1677 of file X86ISelLowering.h.
References assert(), llvm::SmallVectorBase::empty(), llvm::MVT::getScalarSizeInBits(), llvm::MVT::getVectorNumElements(), and llvm::SmallVectorTemplateBase< T >::push_back().
Referenced by getUnpackh(), getUnpackl(), is128BitUnpackShuffleMask(), isUnpackWdShuffleMask(), lowerShuffleWithUNPCK(), and matchShuffleWithUNPCK().
| FunctionPass* llvm::createUnreachableBlockEliminationPass | ( | ) |
createUnreachableBlockEliminationPass - The LLVM code generator does not work well with unreachable basic blocks (what live ranges make sense for a block that cannot be reached?).
As such, a code generator should either not instruction select unreachable blocks, or run this pass as its last LLVM modifying pass to clean up blocks that are not reachable from the entry block.
Referenced by llvm::TargetPassConfig::addIRPasses(), llvm::TargetPassConfig::addPassesToHandleExceptions(), and llvm::WebAssemblyTargetMachine::createPassConfig().
| FunctionPass * llvm::createVEISelDag | ( | VETargetMachine & | TM | ) |
createVEISelDag - This pass converts a legalized DAG into a VE-specific DAG, ready for instruction scheduling.
Definition at line 68 of file VEISelDAGToDAG.cpp.
Referenced by llvm::VETargetMachine::createPassConfig().
| FunctionPass* llvm::createVEPromoteToI1Pass | ( | ) |
| FunctionPass * llvm::createVerifierPass | ( | bool | FatalErrors = true | ) |
Definition at line 5522 of file Verifier.cpp.
Referenced by llvm::TargetPassConfig::addIRPasses(), llvm::TargetPassConfig::addISelPrepare(), LLVMAddVerifierPass(), llvm::PassManagerBuilder::populateLTOPassManager(), llvm::PassManagerBuilder::populateThinLTOPassManager(), and llvm::TBAAVerifier::TBAAVerifier().
| ScheduleDAGSDNodes * llvm::createVLIWDAGScheduler | ( | SelectionDAGISel * | IS, |
| CodeGenOpt::Level | OptLevel | ||
| ) |
createVLIWDAGScheduler - Scheduler for VLIW targets.
createVLIWDAGScheduler - This creates a top-down list scheduler.
This creates top down DFA driven list scheduler with clustering heuristic to control register pressure.
Definition at line 274 of file ScheduleDAGVLIW.cpp.
References llvm::SelectionDAGISel::AA, and llvm::SelectionDAGISel::MF.
Referenced by createDefaultScheduler(), and llvm::RegisterScheduler::setListener().
Definition at line 147 of file WarnMissedTransforms.cpp.
Referenced by llvm::PassManagerBuilder::populateModulePassManager(), and llvm::WarnMissedTransformationsPass::WarnMissedTransformationsPass().
| MCAsmParserExtension * llvm::createWasmAsmParser | ( | ) |
Definition at line 252 of file WasmAsmParser.cpp.
| FunctionPass* llvm::createWasmEHPass | ( | ) |
createWasmEHPass - This pass adapts exception handling code to use WebAssembly's exception handling scheme.
Referenced by llvm::TargetPassConfig::addPassesToHandleExceptions().
| std::unique_ptr< MCObjectWriter > llvm::createWasmObjectWriter | ( | std::unique_ptr< MCWasmObjectTargetWriter > | MOTW, |
| raw_pwrite_stream & | OS | ||
| ) |
Construct a new Wasm writer instance.
| MOTW | - The target specific Wasm writer subclass. |
| OS | - The stream to write to. |
Definition at line 1606 of file WasmObjectWriter.cpp.
Referenced by llvm::MCAsmBackend::createObjectWriter(), and llvm::MCWasmObjectTargetWriter::isEmscripten().
| MCStreamer * llvm::createWasmStreamer | ( | MCContext & | Ctx, |
| std::unique_ptr< MCAsmBackend > && | TAB, | ||
| std::unique_ptr< MCObjectWriter > && | OW, | ||
| std::unique_ptr< MCCodeEmitter > && | CE, | ||
| bool | RelaxAll | ||
| ) |
Definition at line 200 of file MCWasmStreamer.cpp.
References llvm::MCObjectStreamer::getAssembler(), llvm::MCWasmStreamer::MCWasmStreamer(), and llvm::MCAssembler::setRelaxAll().
Referenced by llvm::Target::createMCObjectStreamer().
| ModulePass* llvm::createWebAssemblyAddMissingPrototypes | ( | ) |
Referenced by llvm::WebAssemblyTargetMachine::createPassConfig().
| FunctionPass* llvm::createWebAssemblyArgumentMove | ( | ) |
Referenced by llvm::WebAssemblyTargetMachine::createPassConfig().
| MCAsmBackend * llvm::createWebAssemblyAsmBackend | ( | const Triple & | TT | ) |
Definition at line 133 of file WebAssemblyAsmBackend.cpp.
References llvm::Triple::isArch64Bit(), and llvm::Triple::isOSEmscripten().
Referenced by createAsmBackend().
| FunctionPass* llvm::createWebAssemblyCallIndirectFixup | ( | ) |
Referenced by llvm::WebAssemblyTargetMachine::createPassConfig().
| FunctionPass* llvm::createWebAssemblyCFGSort | ( | ) |
Referenced by llvm::WebAssemblyTargetMachine::createPassConfig().
| FunctionPass* llvm::createWebAssemblyCFGStackify | ( | ) |
Referenced by llvm::WebAssemblyTargetMachine::createPassConfig().
| FunctionPass* llvm::createWebAssemblyExplicitLocals | ( | ) |
Referenced by llvm::WebAssemblyTargetMachine::createPassConfig().
| ModulePass* llvm::createWebAssemblyFixFunctionBitcasts | ( | ) |
Referenced by llvm::WebAssemblyTargetMachine::createPassConfig().
| FunctionPass* llvm::createWebAssemblyFixIrreducibleControlFlow | ( | ) |
Referenced by llvm::WebAssemblyTargetMachine::createPassConfig().
| FunctionPass * llvm::createWebAssemblyISelDag | ( | WebAssemblyTargetMachine & | TM, |
| CodeGenOpt::Level | OptLevel | ||
| ) |
This pass converts a legalized DAG into a WebAssembly-specific DAG, ready for instruction scheduling.
Definition at line 235 of file WebAssemblyISelDAGToDAG.cpp.
Referenced by llvm::WebAssemblyTargetMachine::createPassConfig().
| FunctionPass* llvm::createWebAssemblyLateEHPrepare | ( | ) |
Referenced by llvm::WebAssemblyTargetMachine::createPassConfig().
| FunctionPass* llvm::createWebAssemblyLowerBrUnless | ( | ) |
Referenced by llvm::WebAssemblyTargetMachine::createPassConfig().
| ModulePass* llvm::createWebAssemblyLowerEmscriptenEHSjLj | ( | bool | DoEH, |
| bool | DoSjLj | ||
| ) |
Referenced by llvm::WebAssemblyTargetMachine::createPassConfig().
| ModulePass* llvm::createWebAssemblyLowerGlobalDtors | ( | ) |
Referenced by llvm::WebAssemblyTargetMachine::createPassConfig().
| MCCodeEmitter * llvm::createWebAssemblyMCCodeEmitter | ( | const MCInstrInfo & | MCII | ) |
Definition at line 55 of file WebAssemblyMCCodeEmitter.cpp.
References MI.
Referenced by createCodeEmitter().
| FunctionPass* llvm::createWebAssemblyMemIntrinsicResults | ( | ) |
Referenced by llvm::WebAssemblyTargetMachine::createPassConfig().
| FunctionPass* llvm::createWebAssemblyOptimizeLiveIntervals | ( | ) |
Referenced by llvm::WebAssemblyTargetMachine::createPassConfig().
| FunctionPass* llvm::createWebAssemblyOptimizeReturned | ( | ) |
Referenced by llvm::WebAssemblyTargetMachine::createPassConfig().
| FunctionPass* llvm::createWebAssemblyPeephole | ( | ) |
Referenced by llvm::WebAssemblyTargetMachine::createPassConfig().
| FunctionPass* llvm::createWebAssemblyPrepareForLiveIntervals | ( | ) |
Referenced by llvm::WebAssemblyTargetMachine::createPassConfig().
| FunctionPass* llvm::createWebAssemblyRegColoring | ( | ) |
Referenced by llvm::WebAssemblyTargetMachine::createPassConfig().
| FunctionPass* llvm::createWebAssemblyRegNumbering | ( | ) |
Referenced by llvm::WebAssemblyTargetMachine::createPassConfig().
| FunctionPass* llvm::createWebAssemblyRegStackify | ( | ) |
Referenced by llvm::WebAssemblyTargetMachine::createPassConfig().
| FunctionPass* llvm::createWebAssemblyReplacePhysRegs | ( | ) |
Referenced by llvm::WebAssemblyTargetMachine::createPassConfig().
| FunctionPass* llvm::createWebAssemblySetP2AlignOperands | ( | ) |
Referenced by llvm::WebAssemblyTargetMachine::createPassConfig().
| std::unique_ptr< MCObjectTargetWriter > llvm::createWebAssemblyWasmObjectWriter | ( | bool | Is64Bit, |
| bool | IsEmscripten | ||
| ) |
Definition at line 120 of file WebAssemblyWasmObjectWriter.cpp.
| ModulePass * llvm::createWholeProgramDevirtPass | ( | ModuleSummaryIndex * | ExportSummary, |
| const ModuleSummaryIndex * | ImportSummary | ||
| ) |
This pass implements whole-program devirtualization using type metadata.
The behavior depends on the summary arguments:
Definition at line 681 of file WholeProgramDevirt.cpp.
Referenced by llvm::PassManagerBuilder::populateLTOPassManager(), llvm::PassManagerBuilder::populateModulePassManager(), and llvm::PassManagerBuilder::populateThinLTOPassManager().
| std::unique_ptr< MCObjectWriter > llvm::createWinCOFFObjectWriter | ( | std::unique_ptr< MCWinCOFFObjectTargetWriter > | MOTW, |
| raw_pwrite_stream & | OS | ||
| ) |
Construct a new Win COFF writer instance.
| MOTW | - The target specific WinCOFF writer subclass. |
| OS | - The stream to write to. |
Definition at line 1099 of file WinCOFFObjectWriter.cpp.
Referenced by llvm::MCAsmBackend::createObjectWriter(), and llvm::MCWinCOFFObjectTargetWriter::recordRelocation().
| FunctionPass* llvm::createWinEHPass | ( | bool | DemoteCatchSwitchPHIOnly = false | ) |
createWinEHPass - Prepares personality functions used by MSVC on Windows, in addition to the Itanium LSDA based personalities.
Referenced by llvm::TargetPassConfig::addPassesToHandleExceptions().
| write thinlto Write ThinLTO true ModulePass * llvm::createWriteThinLTOBitcodePass | ( | raw_ostream & | Str, |
| raw_ostream * | ThinLinkOS = nullptr |
||
| ) |
Write ThinLTO-ready bitcode to Str.
Definition at line 534 of file ThinLTOBitcodeWriter.cpp.
| MCAsmBackend * llvm::createX86_32AsmBackend | ( | const Target & | T, |
| const MCSubtargetInfo & | STI, | ||
| const MCRegisterInfo & | MRI, | ||
| const MCTargetOptions & | Options | ||
| ) |
Definition at line 1160 of file X86AsmBackend.cpp.
References llvm::Triple::getOS(), llvm::MCELFObjectTargetWriter::getOSABI(), llvm::MCSubtargetInfo::getTargetTriple(), llvm::Triple::isOSBinFormatCOFF(), llvm::Triple::isOSBinFormatMachO(), llvm::Triple::isOSIAMCU(), and llvm::Triple::isOSWindows().
Referenced by LLVMInitializeX86TargetMC().
| MCAsmBackend * llvm::createX86_64AsmBackend | ( | const Target & | T, |
| const MCSubtargetInfo & | STI, | ||
| const MCRegisterInfo & | MRI, | ||
| const MCTargetOptions & | Options | ||
| ) |
Definition at line 1179 of file X86AsmBackend.cpp.
References llvm::MachO::CPU_SUBTYPE_X86_64_ALL, llvm::MachO::CPU_SUBTYPE_X86_64_H, llvm::StringSwitch< T, R >::Default(), llvm::Triple::getArchName(), llvm::Triple::getEnvironment(), llvm::Triple::getOS(), llvm::MCELFObjectTargetWriter::getOSABI(), llvm::MCSubtargetInfo::getTargetTriple(), llvm::Triple::GNUX32, llvm::Triple::isOSBinFormatCOFF(), llvm::Triple::isOSBinFormatMachO(), and llvm::Triple::isOSWindows().
Referenced by LLVMInitializeX86TargetMC().
| MCTargetStreamer * llvm::createX86AsmTargetStreamer | ( | MCStreamer & | S, |
| formatted_raw_ostream & | OS, | ||
| MCInstPrinter * | InstPrint, | ||
| bool | isVerboseAsm | ||
| ) |
Implements X86-only directives for assembly emission.
Definition at line 445 of file X86WinCOFFTargetStreamer.cpp.
Referenced by LLVMInitializeX86TargetMC().
| Machine code false FunctionPass * llvm::createX86AvoidStoreForwardingBlocks | ( | ) |
Return a pass that avoids creating store forward block issues in the hardware.
Definition at line 128 of file X86AvoidStoreForwardingBlocks.cpp.
Referenced by llvm::X86TargetMachine::createPassConfig().
| FunctionPass * llvm::createX86AvoidTrailingCallPass | ( | ) |
Return a pass that inserts int3 at the end of the function if it ends with a CALL instruction.
The pass does the same for each funclet as well. This ensures that the open interval of function start and end PCs contains all return addresses for the benefit of the Windows x64 unwinder.
Definition at line 44 of file X86AvoidTrailingCall.cpp.
Referenced by llvm::X86TargetMachine::createPassConfig().
| FunctionPass * llvm::createX86CallFrameOptimization | ( | ) |
Return a pass that optimizes the code-size of x86 call sequences.
This is done by replacing esp-relative movs with pushes.
Definition at line 636 of file X86CallFrameOptimization.cpp.
Referenced by llvm::X86TargetMachine::createPassConfig().
| X86 cmov false FunctionPass * llvm::createX86CmovConverterPass | ( | ) |
This pass converts X86 cmov instructions into branch when profitable.
Definition at line 859 of file X86CmovConversion.cpp.
Referenced by llvm::X86TargetMachine::createPassConfig().
| FunctionPass * llvm::createX86CondBrFolding | ( | ) |
Return a pass that folds conditional branch jumps.
Definition at line 82 of file X86CondBrFolding.cpp.
References assert(), llvm::X86::COND_E, llvm::X86::COND_G, llvm::X86::COND_L, dbgs(), llvm::MachineBasicBlock::getNumber(), LLVM_DEBUG, MI, Modified, llvm::MachineBasicBlock::pred_begin(), llvm::MachineBasicBlock::pred_size(), llvm::SmallVectorTemplateBase< T >::push_back(), and TII.
Referenced by llvm::X86TargetMachine::createPassConfig().
| FunctionPass * llvm::createX86DiscriminateMemOpsPass | ( | ) |
This pass ensures instructions featuring a memory operand have distinctive <LineNumber, Discriminator> (with respect to eachother)
Definition at line 182 of file X86DiscriminateMemOps.cpp.
Referenced by llvm::X86TargetMachine::createPassConfig().
| FunctionPass* llvm::createX86DomainReassignmentPass | ( | ) |
Return a Machine IR pass that reassigns instruction chains from one domain to another, when profitable.
Referenced by llvm::X86TargetMachine::createPassConfig().
| std::unique_ptr< MCObjectTargetWriter > llvm::createX86ELFObjectWriter | ( | bool | IsELF64, |
| uint8_t | OSABI, | ||
| uint16_t | EMachine | ||
| ) |
Construct an X86 ELF object writer.
Definition at line 332 of file X86ELFObjectWriter.cpp.
Referenced by getFixupKindSize().
| FunctionPass * llvm::createX86EvexToVexInsts | ( | ) |
This pass replaces EVEX encoded of AVX-512 instructiosn by VEX encoding when possible in order to reduce code size.
Definition at line 274 of file X86EvexToVex.cpp.
Referenced by llvm::X86TargetMachine::createPassConfig().
| FunctionPass * llvm::createX86ExpandPseudoPass | ( | ) |
Return a Machine IR pass that expands X86-specific pseudo instructions into a sequence of actual instructions.
Returns an instance of the pseudo instruction expansion pass.
This pass must run after prologue/epilogue insertion and before lowering the MachineInstr to MC.
Definition at line 411 of file X86ExpandPseudo.cpp.
Referenced by llvm::X86TargetMachine::createPassConfig().
| FunctionPass * llvm::createX86FixupBWInsts | ( | ) |
Return a Machine IR pass that selectively replaces certain byte and word instructions by equivalent 32 bit instructions, in order to eliminate partial register usage, false dependences on the upper portions of registers, and to save code size.
Definition at line 157 of file X86FixupBWInsts.cpp.
References llvm::MachineInstrBuilder::add(), llvm::MachineInstrBuilder::addReg(), llvm::AArch64CC::AL, assert(), llvm::SmallVectorTemplateCommon< T >::back(), BuildMI(), llvm::SmallVectorImpl< T >::clear(), dbgs(), llvm::SmallVectorBase::empty(), llvm::MachineBasicBlock::erase(), FixupBWInsts, llvm::MachineInstr::getDebugLoc(), llvm::MachineFunction::getFunction(), llvm::MachineInstr::getNumExplicitOperands(), llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::MachineFunction::getSubtarget(), getX86SubSuperRegister(), llvm::Function::hasOptSize(), I, llvm::RegState::Implicit, llvm::MachineInstr::implicit_operands(), llvm::MachineBasicBlock::insert(), LLVM_DEBUG, llvm::MachineInstr::memoperands(), MI, llvm::SmallVectorTemplateBase< T >::pop_back(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::MachineBasicBlock::rbegin(), llvm::MachineBasicBlock::rend(), llvm::MachineInstrBuilder::setMemRefs(), shouldOptimizeForSize(), TII, TRI, and llvm::RegState::Undef.
Referenced by llvm::X86TargetMachine::createPassConfig().
| FunctionPass * llvm::createX86FixupLEAs | ( | ) |
Return a pass that selectively replaces certain instructions (like add, sub, inc, dec, some shifts, and some multiplies) by equivalent LEA instructions, in order to eliminate execution delays in some processors.
Definition at line 186 of file X86FixupLEAs.cpp.
Referenced by llvm::X86TargetMachine::createPassConfig().
| FunctionPass * llvm::createX86FixupSetCC | ( | ) |
Return a pass that transforms setcc + movzx pairs into xor + setcc.
Definition at line 57 of file X86FixupSetCC.cpp.
References llvm::MachineInstrBuilder::addReg(), BuildMI(), llvm::MachineInstr::getDebugLoc(), llvm::MachineInstr::getOperand(), llvm::MachineInstr::getParent(), llvm::MachineOperand::getReg(), llvm::MachineFunction::getRegInfo(), llvm::MachineFunction::getSubtarget(), I, is64Bit(), MI, MRI, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::MachineInstr::readsRegister(), and TII.
Referenced by llvm::X86TargetMachine::createPassConfig().
| X86 EFLAGS copy false FunctionPass * llvm::createX86FlagsCopyLoweringPass | ( | ) |
Return a pass that lowers EFLAGS copy pseudo instructions.
Definition at line 144 of file X86FlagsCopyLowering.cpp.
References llvm::AnalysisUsage::addRequired(), and llvm::MachineFunctionPass::getAnalysisUsage().
Referenced by llvm::X86TargetMachine::createPassConfig().
| X86 FP false FunctionPass * llvm::createX86FloatingPointStackifierPass | ( | ) |
This function returns a pass which converts floating-point register references and pseudo instructions into floating-point stack references and physical instructions.
Definition at line 311 of file X86FloatingPoint.cpp.
Referenced by llvm::X86TargetMachine::createPassConfig().
| FunctionPass * llvm::createX86GlobalBaseRegPass | ( | ) |
This pass initializes a global base register for PIC on x86-32.
Definition at line 7910 of file X86InstrInfo.cpp.
References llvm::MachineFunction::getFunction(), llvm::MachineFunction::getInfo(), llvm::X86MachineFunctionInfo::getNumLocalDynamicTLSAccesses(), and llvm::MachineDominatorTree::getRootNode().
Referenced by llvm::X86TargetMachine::createPassConfig().
| FunctionPass * llvm::createX86IndirectBranchTrackingPass | ( | ) |
This pass inserts ENDBR instructions before indirect jump/call destinations as part of CET IBT mechanism.
Definition at line 67 of file X86IndirectBranchTracking.cpp.
References assert(), BuildMI(), llvm::MachineBasicBlock::end(), llvm::MachineBasicBlock::findDebugLoc(), I, and TII.
Referenced by llvm::X86TargetMachine::createPassConfig().
| FunctionPass * llvm::createX86InsertPrefetchPass | ( | ) |
This pass applies profiling information to insert cache prefetches.
Definition at line 251 of file X86InsertPrefetch.cpp.
References PrefetchHintsFile.
Referenced by llvm::X86TargetMachine::createPassConfig().
| InstructionSelector * llvm::createX86InstructionSelector | ( | const X86TargetMachine & | TM, |
| X86Subtarget & | Subtarget, | ||
| X86RegisterBankInfo & | RBI | ||
| ) |
Definition at line 1734 of file X86InstructionSelector.cpp.
Referenced by llvm::X86Subtarget::X86Subtarget().
| FunctionPass * llvm::createX86ISelDag | ( | X86TargetMachine & | TM, |
| CodeGenOpt::Level | OptLevel | ||
| ) |
This pass converts a legalized DAG into a X86-specific DAG, ready for instruction scheduling.
Definition at line 5301 of file X86ISelDAGToDAG.cpp.
Referenced by llvm::X86TargetMachine::createPassConfig().
| FunctionPass * llvm::createX86IssueVZeroUpperPass | ( | ) |
This pass inserts AVX vzeroupper instructions before each call to avoid transition penalty between functions encoded with AVX and SSE.
Definition at line 111 of file X86VZeroUpper.cpp.
References llvm_unreachable, and llvm::ARM_MB::ST.
Referenced by llvm::X86TargetMachine::createPassConfig().
| std::unique_ptr< MCObjectTargetWriter > llvm::createX86MachObjectWriter | ( | bool | Is64Bit, |
| uint32_t | CPUType, | ||
| uint32_t | CPUSubtype | ||
| ) |
Construct an X86 Mach-O object writer.
Definition at line 600 of file X86MachObjectWriter.cpp.
| std::unique_ptr< ScheduleDAGMutation > llvm::createX86MacroFusionDAGMutation | ( | ) |
Note that you have to add: DAG.addMutation(createX86MacroFusionDAGMutation()); to X86PassConfig::createMachineScheduler() to have an effect.
Definition at line 70 of file X86MacroFusion.cpp.
References createBranchMacroFusionDAGMutation(), and shouldScheduleAdjacent().
Referenced by llvm::X86Subtarget::getPostRAMutations(), and llvm::X86TargetMachine::getTargetTransformInfo().
| MCCodeEmitter * llvm::createX86MCCodeEmitter | ( | const MCInstrInfo & | MCII, |
| const MCRegisterInfo & | MRI, | ||
| MCContext & | Ctx | ||
| ) |
Definition at line 1783 of file X86MCCodeEmitter.cpp.
Referenced by LLVMInitializeX86TargetMC().
| MCTargetStreamer * llvm::createX86ObjectTargetStreamer | ( | MCStreamer & | OS, |
| const MCSubtargetInfo & | STI | ||
| ) |
Implements X86-only directives for object files.
Definition at line 455 of file X86WinCOFFTargetStreamer.cpp.
References llvm::MCSubtargetInfo::getTargetTriple(), and llvm::Triple::isOSBinFormatCOFF().
Referenced by LLVMInitializeX86TargetMC().
| FunctionPass * llvm::createX86OptimizeLEAs | ( | ) |
Return a pass that removes redundant LEA instructions and redundant address recalculations.
Definition at line 315 of file X86OptimizeLEAs.cpp.
Referenced by llvm::X86TargetMachine::createPassConfig().
| FunctionPass * llvm::createX86PadShortFunctions | ( | ) |
Return a pass that pads short functions with NOOPs.
This will prevent a stall when returning on the Atom.
Definition at line 99 of file X86PadShortFunction.cpp.
References addPadding(), assert(), BuildMI(), llvm::numbers::e, llvm::MachineBasicBlock::end(), llvm::MachineFunction::front(), llvm::MDNode::get(), llvm::MachineFunction::getFunction(), llvm::MachineFunction::getSubtarget(), llvm::Function::hasOptSize(), hasReturn(), I, max(), MI, llvm::X86Subtarget::padShortFunctions(), shouldOptimizeForSize(), llvm::MachineBasicBlock::size(), llvm::MachineBasicBlock::succ_begin(), llvm::MachineBasicBlock::succ_end(), and Threshold.
Referenced by llvm::X86TargetMachine::createPassConfig().
| FunctionPass * llvm::createX86RetpolineThunksPass | ( | ) |
This pass creates the thunks for the retpoline feature.
Definition at line 81 of file X86RetpolineThunks.cpp.
References llvm::AttrBuilder::addAttribute(), llvm::Function::addAttributes(), llvm::MachineBasicBlock::addLiveIn(), llvm::MachineInstrBuilder::addReg(), addRegOffset(), llvm::MachineBasicBlock::addSuccessor(), llvm::AMDGPU::HSAMD::Kernel::Arg::Key::Align, assert(), B, llvm::MachineBasicBlock::back(), llvm::MachineFunction::begin(), BuildMI(), llvm::MachineBasicBlock::clear(), llvm::BasicBlock::Create(), llvm::Function::Create(), llvm::MachineFunction::CreateMachineBasicBlock(), llvm::IRBuilder< T, Inserter >::CreateRetVoid(), llvm::MCContext::createTempSymbol(), dbgs(), llvm::N86::EAX, EAXThunkName, llvm::N86::ECX, ECXThunkName, llvm::N86::EDI, EDIThunkName, llvm::N86::EDX, EDXThunkName, llvm::MachineFunction::end(), llvm::MachineFunction::erase(), llvm::N86::ESP, F(), llvm::MachineFunction::front(), llvm::AttributeList::FunctionIndex, llvm::FunctionType::get(), llvm::MachineBasicBlock::getBasicBlock(), llvm::Module::getContext(), llvm::MachineFunction::getContext(), llvm::MachineFunction::getName(), llvm::Module::getOrInsertComdat(), llvm::MachineFunction::getProperties(), llvm::MachineFunction::getSubtarget(), llvm::MachineFunction::getTarget(), llvm::Type::getVoidTy(), llvm::GlobalValue::HiddenVisibility, llvm::MachineFunction::insert(), llvm::GlobalValue::LinkOnceODRLinkage, LLVM_DEBUG, llvm_unreachable, Name, llvm::MachineFunctionProperties::NoVRegs, llvm::MachineFunction::push_back(), Reg, llvm::MachineFunctionProperties::set(), llvm::MachineBasicBlock::setAlignment(), llvm::GlobalObject::setComdat(), llvm::MachineBasicBlock::setHasAddressTaken(), llvm::MachineInstr::setPreInstrSymbol(), llvm::GlobalValue::setVisibility(), llvm::MachineFunction::size(), llvm::StringRef::startswith(), TII, llvm::SystemZISD::TM, and llvm::Triple::x86_64.
Referenced by llvm::X86TargetMachine::createPassConfig().
| X86 speculative load false FunctionPass * llvm::createX86SpeculativeLoadHardeningPass | ( | ) |
Definition at line 2646 of file X86SpeculativeLoadHardening.cpp.
Referenced by llvm::X86TargetMachine::createPassConfig().
| FunctionPass * llvm::createX86WinAllocaExpander | ( | ) |
Return a pass that expands WinAlloca pseudo-instructions.
Definition at line 74 of file X86WinAllocaExpander.cpp.
Referenced by llvm::X86TargetMachine::createPassConfig().
| std::unique_ptr< MCObjectTargetWriter > llvm::createX86WinCOFFObjectWriter | ( | bool | Is64Bit | ) |
Construct an X86 Win COFF object writer.
Definition at line 111 of file X86WinCOFFObjectWriter.cpp.
Referenced by getFixupKindSize().
| MCStreamer * llvm::createX86WinCOFFStreamer | ( | MCContext & | C, |
| std::unique_ptr< MCAsmBackend > && | AB, | ||
| std::unique_ptr< MCObjectWriter > && | OW, | ||
| std::unique_ptr< MCCodeEmitter > && | CE, | ||
| bool | RelaxAll, | ||
| bool | IncrementalLinkerCompatible | ||
| ) |
Construct an X86 Windows COFF machine code streamer which will generate PE/COFF format object files.
Takes ownership of AB and CE.
Definition at line 63 of file X86WinCOFFStreamer.cpp.
Referenced by LLVMInitializeX86TargetMC().
| FunctionPass * llvm::createX86WinEHStatePass | ( | ) |
Return an IR pass that inserts EH registration stack objects and explicit EH state updates.
This pass must run after EH preparation, which does Windows-specific but architecture-neutral preparation.
Definition at line 114 of file X86WinEHState.cpp.
Referenced by llvm::X86TargetMachine::createPassConfig().
| std::unique_ptr< MCObjectWriter > llvm::createXCOFFObjectWriter | ( | std::unique_ptr< MCXCOFFObjectTargetWriter > | MOTW, |
| raw_pwrite_stream & | OS | ||
| ) |
Definition at line 686 of file XCOFFObjectWriter.cpp.
Referenced by llvm::MCAsmBackend::createObjectWriter(), and llvm::MCXCOFFObjectTargetWriter::is64Bit().
| MCStreamer * llvm::createXCOFFStreamer | ( | MCContext & | Ctx, |
| std::unique_ptr< MCAsmBackend > && | TAB, | ||
| std::unique_ptr< MCObjectWriter > && | OW, | ||
| std::unique_ptr< MCCodeEmitter > && | CE, | ||
| bool | RelaxAll | ||
| ) |
Definition at line 79 of file MCXCOFFStreamer.cpp.
References llvm::MCObjectStreamer::getAssembler(), llvm::MCXCOFFStreamer::MCXCOFFStreamer(), and llvm::MCAssembler::setRelaxAll().
Referenced by llvm::Target::createMCObjectStreamer().
| FunctionPass * llvm::createXCoreFrameToArgsOffsetEliminationPass | ( | ) |
createXCoreFrameToArgsOffsetEliminationPass - returns an instance of the Frame to args offset elimination pass
Definition at line 43 of file XCoreFrameToArgsOffsetElim.cpp.
References llvm::MachineBasicBlock::begin(), llvm::MachineFunction::begin(), E, llvm::MachineBasicBlock::end(), llvm::MachineFunction::end(), llvm::MachineInstr::eraseFromParent(), llvm::ISD::FRAME_TO_ARGS_OFFSET, llvm::MachineFunction::getFrameInfo(), llvm::TargetSubtargetInfo::getInstrInfo(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::MachineFrameInfo::getStackSize(), llvm::MachineFunction::getSubtarget(), llvm::XCoreInstrInfo::loadImmediate(), Reg, and TII.
Referenced by llvm::XCoreTargetMachine::createPassConfig().
| FunctionPass * llvm::createXCoreISelDag | ( | XCoreTargetMachine & | TM, |
| CodeGenOpt::Level | OptLevel | ||
| ) |
createXCoreISelDag - This pass converts a legalized DAG into a XCore-specific DAG, ready for instruction scheduling.
Definition at line 82 of file XCoreISelDAGToDAG.cpp.
References llvm::ISD::ADD, llvm::ISD::BRIND, llvm::ISD::Constant, llvm::InlineAsm::Constraint_m, countLeadingZeros(), llvm::HexagonISD::CP, llvm::XCoreISD::CPRelativeWrapper, llvm::XCoreISD::CRC8, llvm::XCoreISD::DPRelativeWrapper, dyn_cast(), llvm::ConstantInt::get(), llvm::MachinePointerInfo::getConstantPool(), llvm::FrameIndexSDNode::getIndex(), llvm::Type::getInt32Ty(), llvm::SDValue::getOpcode(), llvm::SDNode::getOpcode(), llvm::SDValue::getOperand(), llvm::SDNode::getOperand(), llvm::ConstantSDNode::getSExtValue(), llvm::MVT::i32, isUInt< 16 >(), llvm::XCoreISD::LADD, llvm::XCoreISD::LMUL, llvm::XCoreISD::LSUB, llvm::XCoreISD::MACCS, llvm::XCoreISD::MACCU, llvm::MachineMemOperand::MOLoad, N, llvm::MVT::Other, Reg, and llvm::MCID::Select.
Referenced by llvm::XCoreTargetMachine::createPassConfig().
| ModulePass* llvm::createXCoreLowerThreadLocalPass | ( | ) |
Referenced by llvm::XCoreTargetMachine::createPassConfig().
| llvm::SMTSolverRef llvm::CreateZ3Solver | ( | ) |
Convenience method to create and Z3Solver object.
Definition at line 887 of file Z3Solver.cpp.
References report_fatal_error().
|
inline |
Compile time Log2.
Valid only for positive powers of two.
Definition at line 565 of file MathExtras.h.
References isPowerOf2_64().
|
inline |
Definition at line 571 of file MathExtras.h.
| raw_ostream & llvm::dbgs | ( | ) |
dbgs() - This returns a reference to a raw_ostream for debugging messages.
dbgs - Return a circular-buffered debug stream.
If debugging is disabled it returns errs(). Use it like: dbgs() << "foo" << "bar";
Definition at line 132 of file Debug.cpp.
References llvm::sys::AddSignalHandler(), debug_user_sig_handler(), DebugFlag, EnableDebugBuffering, and errs().
Referenced by llvm::InstCombineWorklist::Add(), llvm::orc::CtorDtorRunner::add(), llvm::SSAUpdaterBulk::AddAvailableValue(), addData(), addDiscriminators(), addEdge(), addExclusiveRegPair(), addForcedAttributes(), llvm::ExecutionEngine::addGlobalMapping(), llvm::InstCombineWorklist::AddInitialGroup(), llvm::TargetPassConfig::addIRPasses(), llvm::TargetPassConfig::addISelPrepare(), llvm::PMDataManager::addLowerLevelRequiredPass(), llvm::TargetPassConfig::addMachinePasses(), llvm::orc::OrcMCJITReplacement::addModule(), addNonNullAttrs(), llvm::TargetPassConfig::addPrintPass(), AddReachableCodeToWorklist(), llvm::mca::RegisterFile::addRegisterWrite(), llvm::LoopAccessInfo::addRuntimeChecks(), addSegmentsWithValNo(), llvm::DIEHash::addSLEB128(), llvm::DIEHash::addULEB128(), llvm::SIScheduleBlock::addUnit(), llvm::SSAUpdaterBulk::AddUse(), llvm::IVUsers::AddUsersImpl(), llvm::SSAUpdaterBulk::AddVariable(), addVariantDeclaration(), adjCycles(), llvm::ARMBasicBlockUtils::adjustBBOffsetsAfter(), llvm::BlockFrequencyInfoImplBase::adjustLoopHeaderMass(), llvm::GCNSubtarget::adjustSchedDependency(), AdjustStackOffset(), llvm::HexagonHazardRecognizer::AdvanceCycle(), llvm::AggressiveAntiDepBreaker::AggressiveAntiDepBreaker(), llvm::RegAllocBase::allocatePhysRegs(), llvm::AllocationOrder::AllocationOrder(), llvm::LoopVectorizeHints::allowVectorization(), allPhiOperandsUndefined(), alwaysAvailable(), llvm::GISelCSEInfo::analyze(), llvm::CallLowering::analyzeArgInfo(), llvm::CCState::AnalyzeCallOperands(), llvm::CCState::AnalyzeCallResult(), llvm::InterleavedAccessInfo::analyzeInterleaving(), analyzeLoopUnrollCost(), analyzeParsePointLiveness(), annotateAllFunctions(), annotateAnyAllocSite(), appendEndToFunction(), appendFoldCandidate(), llvm::mca::Pipeline::appendStage(), llvm::A57ChainingConstraint::apply(), llvm::LegalizeRuleSet::apply(), llvm::CombinerHelper::applyCombineIndexedLoadStore(), llvm::RegisterBankInfo::applyDefaultMapping(), llvm::RuntimeDyldImpl::applyExternalSymbolRelocations(), llvm::MemorySSAUpdater::applyInsertUpdates(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::ApplyNextUpdate(), applyPPChighesta(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::ApplyUpdates(), llvm::MemoryDepChecker::areDepsSafe(), areOuterLoopExitPHIsSupported(), AreSequentialAccesses(), areStridedAccessesIndependent(), assertBranchOrSelectConditionHoisted(), llvm::LiveRegMatrix::assign(), llvm::ARCFrameLowering::assignCalleeSavedSpillSlots(), llvm::HexagonFrameLowering::assignCalleeSavedSpillSlots(), AssignProtectedObjSet(), atomicReadDroppedOnZero(), atomicSizeSupported(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::attachNewSubtree(), BadConditionCode(), BBIsJumpedOver(), bitTrackingDCE(), bothUsedInPHI(), llvm::BranchFolder::BranchFolder(), branchMaxOffsets(), BreakUpSubtract(), BUCompareLatency(), buildCallOperands(), llvm::CFGMST< Edge, BBInfo >::buildEdges(), buildExtractionBlockSet(), llvm::VPlanSlp::buildGraph(), llvm::VPlanHCFGBuilder::buildHierarchicalCFG(), buildMultiplyTree(), llvm::ScheduleDAGInstrs::buildSchedGraph(), llvm::SchedBoundary::bumpCycle(), llvm::SchedBoundary::bumpNode(), BURRSort(), CalcNodeSethiUllmanNumber(), llvm::MachineBlockFrequencyInfo::calculate(), llvm::BlockFrequencyInfo::calculate(), llvm::BranchProbabilityInfo::calculate(), llvm::BlockFrequencyInfoImpl< llvm::BitTracker >::calculate(), AAValueConstantRangeFloating::calculateCmpInst(), calculateCXXStateNumbers(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::CalculateFromScratch(), calculateOffsetDiff(), llvm::LiveRangeEdit::calculateRegClassAndHint(), llvm::LoopVectorizationCostModel::calculateRegisterUsage(), calculateSEHStateNumbers(), calculateSpillWeightsAndHints(), calculateUnswitchCostMultiplier(), llvm::DomTreeBuilder::CalculateWithUpdates(), callHasRegMask(), llvm::orc::remote::OrcRemoteTargetClient::callIntVoid(), llvm::orc::remote::OrcRemoteTargetClient::callMain(), llvm::orc::remote::OrcRemoteTargetClient::callVoidVoid(), callWaitsOnFunctionReturn(), canClobberPhysRegDefs(), canCreateAliasFor(), canCreateThunkFor(), canEnableCoalescing(), canFoldIVIncExpr(), CanGenerateTest(), llvm::slpvectorizer::BoUpSLP::canMapToVector(), llvm::RegBankSelect::EdgeInsertPoint::canMaterialize(), llvm::HexagonPacketizerList::canPromoteToDotCur(), CanPropagatePredecessorsForPHIs(), canRenameComdat(), canRenameUpToDef(), llvm::ResourceManager::canReserveResources(), canSafelyUnrollMultiExitLoop(), llvm::TailDuplicator::canTailDuplicate(), canTailPredicateLoop(), canTurnIntoCOPY(), llvm::LoopVectorizationLegality::canVectorize(), llvm::Evaluator::castCallResultIfNeeded(), CC_Lanai32_VarArg(), CC_MipsO32_FP64(), CC_RISCV(), llvm::RuntimeDyldCheckerImpl::check(), llvm::GenericScheduler::checkAcyclicLatency(), llvm::TargetRegisterInfo::checkAllSuperRegsMarked(), checkBiasedBranch(), checkBiasedSelect(), checkDependencies(), llvm::Attributor::checkForAllCallSites(), llvm::Attributor::checkForAllUses(), CheckForCanReleaseCFGHazard(), checkForCyclesHelper(), llvm::SchedBoundary::checkHazard(), checkHoistValue(), checkRegOnlyPHIInputs(), clampStackAlignment(), llvm::ModuloScheduleExpander::cleanup(), Cleanup(), llvm::HexagonPacketizerList::cleanUpDotCur(), llvm::SplitAnalysis::clear(), llvm::AnalysisManager< IRUnitT, ExtraArgTs >::clear(), llvm::objcarc::PtrState::ClearKnownPositiveRefCount(), cloneConstantExprWithNewAddressSpace(), llvm::FunctionComparator::cmpConstants(), llvm::rdf::DeadCodeElimination::collect(), collectBitParts(), collectCallSiteParameters(), llvm::sampleprof::SampleProfileReader::collectFuncsFrom(), collectFunctionUsers(), llvm::LoopVectorizationCostModel::collectInstsToScalarize(), llvm::ScalarEvolution::collectParametricTerms(), collectPHIs(), collectRegDefs(), colorEHFunclets(), combineInstructionsOverFunction(), llvm::Combiner::combineMachineInstrs(), CompareMBBNumbers(), llvm::LTOCodeGenerator::compile(), completeEphemeralValues(), llvm::HexagonEvaluator::composeWithSubRegIndex(), llvm::ObjectSizeOffsetVisitor::compute(), llvm::ObjectSizeOffsetEvaluator::compute(), llvm::ScalarEvolution::computeAccessFunctions(), llvm::ARMBasicBlockUtils::computeBlockSize(), computeBranchTargetAndInversion(), ComputeCrossModuleImport(), ComputeCrossModuleImportForModule(), llvm::ScheduleDAGMILive::computeCyclicCriticalPath(), llvm::HexagonBlockRanges::computeDeadMap(), computeDeadSymbols(), computeImportForFunction(), ComputeImportForModule(), computeImportForReferencedGlobals(), llvm::DivergencePropagator::computeJoinPoints(), llvm::GISelKnownBits::computeKnownBitsImpl(), llvm::safestack::StackLayout::computeLayout(), llvm::rdf::Liveness::computeLiveIns(), llvm::HexagonBlockRanges::computeLiveMap(), computeLiveOuts(), llvm::BlockFrequencyInfoImplBase::computeLoopScale(), llvm::LoopVectorizationCostModel::computeMaxVF(), computePeelCount(), llvm::rdf::Liveness::computePhiInfo(), ComputePostOrders(), llvm::mca::computeProcResourceMasks(), llvm::IndexedReference::computeRefCost(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::ComputeUnreachableDominators(), computeUnrollAndJamCount(), computeUnrollCount(), computeWeight(), ConstantBuildVector(), constrainSelectedInstRegOperands(), llvm::sys::UnicodeCharSet::contains(), containsNewBackedge(), ConvertDebugDeclareToDebugValue(), convertFloatingToInteger(), convertToDeclaration(), llvm::PPCInstrInfo::convertToImmediateForm(), ConvertToSInt(), copyDebugInfoToPredecessor(), copyDebugInfoToSuccessor(), llvm::HexagonInstrInfo::copyPhysReg(), llvm::X86InstrInfo::copyPhysReg(), llvm::SchedBoundary::countResource(), createAArch64ConditionOptimizerPass(), createAArch64StackTaggingPass(), createAMDGPUPrintfRuntimeBinding(), createAndInstr(), createBBSelectReg(), createBlockExtractorPass(), createBreakFalseDeps(), createCallInst(), createCast(), createCodeGenPreparePass(), createConstantHoistingPass(), createCopyConstrainDAGMutation(), llvm::AbstractDependenceGraphBuilder< DataDependenceGraph >::createDefUseEdges(), createFalkorMarkStridedAccessesPass(), createGCNDPPCombinePass(), createGenericSchedPostRA(), createGreedyRegisterAllocator(), createHexagonHardwareLoops(), createHWLoopAnalysis(), createIrreducibleLoop(), createLICMPass(), createLoopDeletionPass(), createMustBeExecutedContextPrinter(), createObjCARCOptPass(), llvm::OpenMPIRBuilder::CreateParallel(), createPGOIndirectCallPromotionLegacyPass(), llvm::AbstractDependenceGraphBuilder< DataDependenceGraph >::createPiBlocks(), createR600ISelDag(), createSIPreAllocateWWMRegsPass(), createSIWholeQuadModePass(), createUnreachableSwitchDefault(), createWrapper(), createX86CondBrFolding(), createX86FixupBWInsts(), createX86RetpolineThunksPass(), CriticalPathStep(), llvm::mca::ExecuteStage::cycleEnd(), debug_user_sig_handler(), debugAssign(), debugHWLoopFailure(), debugVectorizationFailure(), DecodeGPR32RegisterClass(), DecodeLdLImmInstruction(), DecodeLdRLImmInstruction(), DecodeMoveHRegInstruction(), decodeRVCInstrRdRs1Rs2(), DecodeStLImmInstruction(), llvm::orc::MaterializationResponsibility::defineMaterializing(), llvm::VPBlockBase::deleteCFG(), deleteDeadInstruction(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::DeleteEdge(), deleteIfDead(), deleteLoopIfDead(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::DeleteReachable(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::DeleteUnreachable(), llvm::ScalarEvolution::delinearize(), llvm::DependenceInfo::depends(), llvm::Constant::destroyConstant(), llvm::SIFrameLowering::determineCalleeSaves(), llvm::ARCFrameLowering::determineCalleeSaves(), llvm::ARMFrameLowering::determineCalleeSaves(), llvm::AArch64FrameLowering::determineCalleeSaves(), llvm::HexagonFrameLowering::determineCalleeSaves(), determineSVEStackObjectOffsets(), llvm::mca::Scheduler::dispatch(), llvm::mca::LSUnit::dispatch(), llvm::orc::ExecutionSession::dispatchMaterialization(), llvm::mca::DispatchStage::DispatchStage(), llvm::BlockFrequencyInfoImplBase::distributeMass(), llvm::LoopVectorizationRequirements::doesNotMeet(), llvm::CombinerHelper::dominates(), doPromotion(), llvm::SelectionDAGBuilder::dropDanglingDebugInfo(), llvm::MCLabel::dump(), llvm::Comdat::dump(), llvm::cfg::Update< NodePtr >::dump(), llvm::LiveDebugVariables::dump(), llvm::RegisterPressure::dump(), llvm::MCValue::dump(), llvm::ILPValue::dump(), llvm::MachineLoop::dump(), llvm::BranchProbability::dump(), llvm::RegisterBankInfo::PartialMapping::dump(), llvm::GCNRegPressure::dump(), llvm::RegisterBank::dump(), llvm::MCParsedAsmOperand::dump(), llvm::LatencyPriorityQueue::dump(), llvm::BaseIndexOffset::dump(), llvm::PHITransAddr::dump(), llvm::DbgValueHistoryMap::dump(), llvm::object::WasmSymbol::dump(), llvm::DbgValueLoc::dump(), llvm::mca::RetireControlUnit::dump(), llvm::Trace::dump(), llvm::CallGraph::dump(), llvm::LiveVariables::VarInfo::dump(), llvm::Metadata::dump(), llvm::WebAssemblyException::dump(), llvm::DominanceFrontierBase< BasicBlock, false >::dump(), llvm::Pass::dump(), llvm::LexicalScope::dump(), llvm::DebugCounter::dump(), llvm::DebugLoc::dump(), llvm::MachineJumpTableInfo::dump(), llvm::DIEAbbrev::dump(), llvm::Type::dump(), llvm::GVNExpression::Expression::dump(), llvm::PressureChange::dump(), llvm::MCAsmMacroParameter::dump(), llvm::opt::Arg::dump(), llvm::bfi_detail::BlockMass::dump(), llvm::ValueEnumerator::dump(), llvm::ModuloSchedule::dump(), llvm::PMStack::dump(), llvm::AccelTableBase::HashData::dump(), llvm::MCOperand::dump(), llvm::MCAsmMacro::dump(), llvm::GraphDiff< llvm::BasicBlock *, IsPostDom >::dump(), llvm::LivePhysRegs::dump(), llvm::MachineConstantPool::dump(), llvm::IVUsers::dump(), llvm::SCEV::dump(), llvm::SlotIndex::dump(), llvm::MemoryAccess::dump(), llvm::PressureDiff::dump(), llvm::DominanceFrontierWrapperPass::dump(), llvm::RegisterBankInfo::ValueMapping::dump(), llvm::VirtRegMap::dump(), llvm::sampleprof::LineLocation::dump(), llvm::AccelTableBase::dump(), llvm::LiveRange::Segment::dump(), llvm::SubtargetFeatures::dump(), llvm::MCInst::dump(), llvm::CallGraphNode::dump(), llvm::opt::Option::dump(), llvm::PredicateInfo::dump(), llvm::mca::WriteState::dump(), llvm::Value::dump(), llvm::mca::RegisterFile::dump(), llvm::AppleAccelTableData::Atom::dump(), llvm::AliasSet::dump(), llvm::SDep::dump(), llvm::DomTreeUpdater::dump(), llvm::GCOVFile::dump(), llvm::RegPressureDelta::dump(), llvm::mca::Scheduler::dump(), llvm::RegisterBankInfo::InstructionMapping::dump(), llvm::sampleprof::SampleRecord::dump(), llvm::mca::ResourceState::dump(), llvm::coverage::CounterMappingContext::dump(), llvm::GCOVFunction::dump(), llvm::AttributeSet::dump(), llvm::sampleprof::FunctionSamples::dump(), llvm::mca::LSUnitBase::dump(), llvm::MachineOperand::dump(), dump(), llvm::SlotIndexes::dump(), llvm::opt::ArgList::dump(), llvm::GCOVBlock::dump(), llvm::RegisterBankInfo::OperandsMapper::dump(), llvm::CallGraphWrapperPass::dump(), llvm::MCSymbol::dump(), llvm::NodeSet::dump(), llvm::ScaledNumberBase::dump(), llvm::AliasSetTracker::dump(), llvm::RegionBase< RegionTraits< Function > >::dump(), llvm::Twine::dump(), llvm::ScheduleDAGMILive::dump(), llvm::ConstantRange::dump(), llvm::DIEValue::dump(), llvm::PBQP::RegAlloc::PBQPRAGraph::dump(), llvm::SplitEditor::dump(), llvm::BlockFrequencyInfoImplBase::dump(), llvm::RegPressureTracker::dump(), llvm::ReadyQueue::dump(), llvm::SMSchedule::dump(), llvm::MachineFunction::dump(), llvm::mca::WriteRef::dump(), llvm::LiveRange::dump(), llvm::ScheduleDAGInstrs::Value2SUsMap::dump(), llvm::AttributeList::dump(), llvm::slpvectorizer::BoUpSLP::EdgeInfo::dump(), llvm::LiveInterval::SubRange::dump(), llvm::ConstantUniqueMap< llvm::ConstantExpr >::dump(), llvm::MemorySSA::dump(), llvm::vfs::RedirectingFileSystem::dump(), llvm::Module::dump(), llvm::MachineBasicBlock::dump(), llvm::MachineFrameInfo::dump(), llvm::RegionInfoBase< RegionTraits< Function > >::dump(), llvm::Loop::dump(), llvm::DIE::dump(), llvm::LiveInterval::dump(), llvm::SDNode::dump(), llvm::APFloat::dump(), llvm::slpvectorizer::BoUpSLP::VLOperands::dump(), llvm::ModuleSummaryIndex::dump(), llvm::NamedMDNode::dump(), llvm::VPlan::dump(), llvm::MachineInstr::dump(), llvm::AbstractAttribute::dump(), llvm::APInt::dump(), dump_registers(), llvm::PMTopLevelManager::dumpArguments(), llvm::SUnit::dumpAttributes(), llvm::SystemZHazardRecognizer::dumpCurrGroup(), dumpImportListForModule(), dumpIR(), llvm::PMDataManager::dumpLastUses(), dumpMachineInstrRangeWithSlotIndex(), llvm::slpvectorizer::BoUpSLP::VLOperands::dumpMode(), llvm::ScheduleDAGSDNodes::dumpNode(), llvm::ScheduleDAGInstrs::dumpNode(), llvm::ScheduleDAG::dumpNodeAll(), llvm::ScheduleDAG::dumpNodeName(), llvm::PMDataManager::dumpPassArguments(), llvm::PMDataManager::dumpPassInfo(), llvm::Pass::dumpPassStructure(), llvm::legacy::FunctionPassManagerImpl::dumpPassStructure(), llvm::FPPassManager::dumpPassStructure(), llvm::GenericScheduler::dumpPolicy(), llvm::SystemZHazardRecognizer::dumpProcResourceCounters(), llvm::TargetRegisterInfo::dumpReg(), dumpRegSetPressure(), llvm::RuntimeDyldMachO::dumpRelocationToResolve(), dumpRelocs(), llvm::Twine::dumpRepr(), llvm::ScheduleDAGSDNodes::dumpSchedule(), llvm::ScheduleDAGMI::dumpSchedule(), llvm::SchedBoundary::dumpScheduledState(), dumpScopes(), dumpSectionMemory(), dumpSmallBitVector(), llvm::SystemZHazardRecognizer::dumpState(), dumpSUList(), llvm::PMDataManager::dumpUsedSet(), llvm::Loop::dumpVerbose(), llvm::JumpThreadingPass::DuplicateCondBranchOnPHIIntoPred(), earlyExpandDIVFIX(), llvm::ARCFrameLowering::eliminateCallFramePseudoInstr(), eliminateDeadStores(), llvm::ARCRegisterInfo::eliminateFrameIndex(), eliminateNoopStore(), llvm::DIEAbbrev::Emit(), llvm::RuntimeDyldImpl::emitCommonSymbols(), llvm::ARCFrameLowering::emitEpilogue(), llvm::PPCDispatchGroupSBHazardRecognizer::EmitInstruction(), llvm::WebAssemblyAsmPrinter::EmitInstruction(), llvm::HexagonHazardRecognizer::EmitInstruction(), llvm::SystemZHazardRecognizer::EmitInstruction(), llvm::TargetLowering::EmitInstrWithCustomInserter(), llvm::ARCFrameLowering::emitPrologue(), llvm::RuntimeDyldImpl::emitSection(), llvm::LazyValueInfo::enableDT(), llvm::HexagonMCCodeEmitter::encodeInstruction(), llvm::HexagonMCCodeEmitter::EncodeSingleInstruction(), llvm::HexagonPacketizerList::endPacket(), llvm::VLIWPacketizerList::endPacket(), ensurePromotedGV(), llvm::SplitEditor::enterIntvAfter(), llvm::SplitEditor::enterIntvBefore(), llvm::SystemZPostRASchedStrategy::enterMBB(), llvm::rdf::DeadCodeElimination::erase(), eraseDeadBBsAndChildren(), llvm::InstCombiner::eraseInstFromFunction(), llvm::slpvectorizer::BoUpSLP::eraseInstructions(), llvm::LiveRangeEdit::eraseVirtReg(), llvm::BitTracker::MachineEvaluator::evaluate(), llvm::Evaluator::EvaluateBlock(), llvm::Evaluator::EvaluateFunction(), EvaluateStaticConstructor(), llvm::VPBasicBlock::execute(), llvm::VPRegionBlock::execute(), executeCmpInst(), llvm::orc::JITCompileCallbackManager::executeCompileCallback(), executeFAddInst(), executeFCMP_OEQ(), executeFCMP_OGE(), executeFCMP_OGT(), executeFCMP_OLE(), executeFCMP_OLT(), executeFCMP_ONE(), executeFDivInst(), executeFMulInst(), executeFRemInst(), executeFSubInst(), executeICMP_EQ(), executeICMP_NE(), executeICMP_SGE(), executeICMP_SGT(), executeICMP_SLE(), executeICMP_SLT(), executeICMP_UGE(), executeICMP_UGT(), executeICMP_ULE(), executeICMP_ULT(), llvm::InstructionSelector::executeMatchTable(), llvm::ModuloScheduleExpander::expand(), expandBounds(), llvm::ARMBaseInstrInfo::expandPostRAPseudo(), extractInteger(), extractVector(), llvm::orc::MaterializationResponsibility::failMaterialization(), fdbgs(), llvm::AccelTableBase::finalize(), llvm::SchedDFSImpl::finalize(), llvm::orc::remote::OrcRemoteTargetClient::RemoteRTDyldMemoryManager::finalizeMemory(), llvm::GCNScheduleDAGMILive::finalizeSchedule(), llvm::RuntimeDyldMachOI386::finalizeSection(), llvm::RuntimeDyldMachOARM::finalizeSection(), find_best(), llvm::CodeExtractor::findAllocas(), findArgumentCopyElisionCandidates(), llvm::ScalarEvolution::findArrayDimensions(), llvm::SSAUpdaterImpl< UpdaterT >::FindAvailableVals(), findBaseDefiningValueCached(), findBasePointer(), findCalledFunction(), llvm::MustBeExecutedContextExplorer::findForwardJoinPoint(), findGCD(), findGluedUser(), FindIDom(), findInnerReductionPhi(), llvm::CodeExtractor::findInputsOutputs(), findIrreducibleHeaders(), llvm::SchedBoundary::findMaxLatency(), findPartitions(), FindPredecessorAutoreleaseWithSafePath(), findProfitablePHIs(), findReturnsToZap(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::FindRoots(), findStartOfTree(), findUncondBrI(), llvm::RegScavenger::FindUnusedReg(), findVCMPToFoldIntoVPST(), FixedPointIntrinsicToOpcode(), fixupGlobalSaddr(), llvm::ScheduleDAGInstrs::fixupKills(), fixupReg(), fixupRegionExits(), llvm::AMDGPULibCalls::fold(), foldMaskedShiftToBEXTR(), llvm::X86InstrInfo::foldMemoryOperandImpl(), foldReturnAndProcessPred(), llvm::InstCombiner::FoldShiftByConstant(), FoldTwoEntryPHINode(), formDedicatedExitBlocks(), llvm::ARMTargetLowering::functionArgumentNeedsConsecutiveRegisters(), llvm::StackSafetyInfo::FunctionInfo::FunctionInfo(), fuseInstructionPair(), llvm::GCNScheduleDAGMILive::GCNScheduleDAGMILive(), llvm::HexagonInstrInfo::genAllInsnTimingClasses(), llvm::ARMAsmBackendDarwin::generateCompactUnwindEncoding(), generateLoopLatchCheck(), llvm::RuntimeDyldCOFFAArch64::generateRelocationStub(), llvm::RuntimeDyldCOFFX86_64::generateRelocationStub(), GenerateSignBits(), generateStackAdjustment(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::ChildrenGetter< Inverse >::Get(), llvm::LegalizerInfo::getAction(), llvm::LegalizerInfo::getActionDefinitionsIdx(), llvm::Localizer::getAnalysisUsage(), llvm::RegBankSelect::getAnalysisUsage(), llvm::IRTranslator::getAnalysisUsage(), llvm::FunctionLoweringInfo::getArgumentFrameIndex(), getAssignFnsForCC(), llvm::IRPosition::getAttrs(), getBlockName(), getBoundsCheckCond(), getBranchHint(), getBranchInsertPoint(), getBufferFormatWithCompCount(), llvm::CacheCost::getCacheCost(), llvm::HexagonRegisterInfo::getCallerSavedRegs(), getCallOpcode(), getChainID(), getCmpForPseudo(), getCombineLoadStoreParts(), getCombinerObjective(), getCompoundInsn(), getCondFromFCMOV(), getConstantPart(), llvm::coverage::CoverageMapping::getCoverageForExpansion(), llvm::coverage::CoverageMapping::getCoverageForFile(), llvm::coverage::CoverageMapping::getCoverageForFunction(), GetCtorAndDtorPriority(), getDIEStringAttr(), GetDSubRegs(), llvm::HexagonMCInstrInfo::getDuplexPossibilties(), getEdgeValueLocal(), getEquivalentCallShort(), getFalkorUnrollingPreferences(), getFilename(), llvm::StackMaps::getFnInfos(), llvm::Evaluator::getFormalParams(), GetFPLibCall(), getFPReg(), llvm::AArch64FrameLowering::getFrameIndexReferencePreferSP(), getFromRangeMetadata(), llvm::ExecutionEngine::getGlobalValueAtAddress(), llvm::HexagonHazardRecognizer::getHazardType(), llvm::ScoreboardHazardRecognizer::getHazardType(), getINCDECFromLEA(), getInductionVariable(), getInlineCost(), getInnermostLoopFor(), getInsertVecEltOpInfo(), getInstructionID(), getInstrVecReg(), getIPMConversion(), getLaneCopyOpcode(), getLAScore(), getLayoutSuccessorProbThreshold(), llvm::VNCoercion::getLoadValueForLoad(), GetLoopInvariantInsertPosition(), llvm::RegPressureTracker::getMaxUpwardPressureDelta(), getMemsetValue(), llvm::MustBeExecutedContextExplorer::getMustBeExecutedNextInstruction(), llvm::orc::IRMaterializationUnit::getName(), llvm::orc::ReExportsMaterializationUnit::getName(), getNegatibleInsts(), getNewAlignment(), getNewAlignmentDiff(), getNewSource(), getNewValueJumpOpcode(), getNumAllocatableRegsForConstraints(), getOffsetFromIndices(), getOModValue(), llvm::SchedBoundary::getOtherResourceCount(), getOutliningPenalty(), GetPointerOperand(), getPromotedVectorElementType(), GetPromotionOpcode(), getPtrStride(), GetQuadraticEquation(), getReassignedChan(), getRegClassForUnfoldedLoad(), getRegClassFromGRPhysReg(), llvm::CCState::getRemainingRegParmsForType(), getRetComponentType(), getSchedRegions(), getSelectsInScope(), getSignature(), GetSortedValueDataFromCallTargets(), llvm::slpvectorizer::BoUpSLP::getSpillCost(), llvm::DependenceInfo::getSplitIteration(), getStartOrEndSlot(), getStoreOffset(), getSubRegForClass(), getSuccState(), llvm::object::WasmObjectFile::getSymbolFlags(), getTag(), llvm::slpvectorizer::BoUpSLP::getTreeCost(), getTypePartition(), getUnconditionalBrDisp(), getUnderlyingObjects(), llvm::SelectionDAGISel::getUninvalidatedNodeId(), llvm::AMDGPUTTIImpl::getUnrollingPreferences(), llvm::ARMTTIImpl::getUnrollingPreferences(), llvm::MachineSSAUpdater::GetValueInMiddleOfBlock(), llvm::SSAUpdater::GetValueInMiddleOfBlock(), GetVBR(), getVectorSHLImm(), getVPTESTMOpc(), getWeightFromBranchProb(), giveUpWithRemarks(), greaterWithBias(), handleADRP(), llvm::CallLowering::handleAssignments(), handleEndBlock(), handleFree(), handleNormalInst(), llvm::objcarc::BottomUpPtrState::HandlePotentialAlterRefCount(), llvm::objcarc::TopDownPtrState::HandlePotentialAlterRefCount(), llvm::objcarc::BottomUpPtrState::HandlePotentialUse(), llvm::objcarc::TopDownPtrState::HandlePotentialUse(), llvm::GISelCSEInfo::handleRecordedInst(), llvm::VPRecipeBuilder::handleReplication(), hasArgumentDef(), hasAtLeastTwoBiasedBranches(), hasDataDependencyPred(), hasOneExitNode(), hasOneNonDBGUseInst(), hasOnlyUniformBranches(), hasOutsideLoopUser(), hasProfileData(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::HasProperSupport(), llvm::IndexedReference::hasSpacialReuse(), llvm::IndexedReference::hasTemporalReuse(), hasTiedDef(), hasUndefContents(), hasUsesOutsideLoop(), hasVRegCycleUse(), hasVulnerableLoad(), hasZeroSignBit(), HexagonMCShuffle(), hoist(), hoistAndMergeSGPRInits(), hoistRegion(), hoistValue(), llvm::ICallPromotionAnalysis::ICallPromotionAnalysis(), ignoreDependence(), llvm::FunctionImporter::importFunctions(), incorporateNewSCCRange(), llvm::IndexedReference::IndexedReference(), inferAttrsFromFunctionBodies(), llvm::objcarc::BottomUpPtrState::InitBottomUp(), llvm::GenericScheduler::initCandidate(), llvm::GCNMaxOccupancySchedStrategy::initialize(), AAValueConstantRangeFloating::initialize(), INITIALIZE_PASS(), INITIALIZE_PASS_END(), llvm::ExecutionEngine::InitializeMemory(), llvm::mca::initializeUsedResources(), llvm::AMDGPULibCalls::initNativeFuncs(), llvm::ResourceManager::initProcResourceVectors(), llvm::ScheduleDAGMILive::initRegPressure(), initVRegCycle(), inlineCallsImpl(), llvm::DivergenceAnalysis::inRegion(), llvm::SMSchedule::insert(), insertCopy(), insertDeleteInstructions(), llvm::po_iterator_storage< LoopBounds, true >::insertEdge(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::InsertEdge(), insertInteger(), insertNopBeforeInstruction(), InsertPreheaderForLoop(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::InsertReachable(), insertTrivialPHIs(), insertUniqueBackedgeBlock(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::InsertUnreachable(), insertVector(), InstructionStoresToFI(), instrumentMaskedLoadOrStore(), instrumentOneFunc(), llvm::InternalizePass::internalizeModule(), intersect(), llvm::MachineTraceMetrics::Ensemble::invalidate(), llvm::MachineTraceMetrics::invalidate(), llvm::AnalysisManager< IRUnitT, ExtraArgTs >::invalidate(), llvm::InterleavedAccessInfo::invalidateGroupsRequiringScalarEpilogue(), inversePermutation(), llvm::HexagonInstrInfo::invertAndChangeJumpTarget(), llvm::IRTranslator::IRTranslator(), isACalleeSavedRegister(), llvm::jitlink::MachOLinkGraphBuilder::isAltEntry(), llvm::LazyCallGraph::SCC::isAncestorOf(), isAtomic(), llvm::mca::RegisterFile::isAvailable(), isBackwardPropagatableCopy(), llvm::ARMBasicBlockUtils::isBBInRange(), isBitfieldExtractOpFromAnd(), isBitfieldExtractOpFromShr(), isBroadcastShuffle(), isCallableFunction(), isCallerPreservedOrConstPhysReg(), isCallInstruction(), isCallPromotable(), llvm::CoalescerPair::isCoalescable(), isCoalescable(), isCopyFeedingInvariantStore(), IsCPSRDead< MCInst >(), isCrossCopy(), isDataInvariant(), isDataInvariantLoad(), isDebug(), isDefInSubRange(), llvm::slpvectorizer::BoUpSLP::isDeleted(), isEFLAGSLive(), isEligibleForMerging(), llvm::AArch64CallLowering::isEligibleForTailCallOptimization(), isEmptyFunction(), isExplicitVecOuterLoop(), llvm::MemoryDepChecker::Dependence::isForward(), llvm::AArch64TargetLowering::isFPImmLegal(), isFpMulInstruction(), isFullCopyOf(), isFullUndefDef(), isFuncOrderCorrect(), llvm::HexagonTargetObjectFile::isGlobalInSmallSection(), isIdentityValue(), isIgnorableInst(), isIndirectBrTarget(), llvm::InductionDescriptor::isInductionPHI(), isInRage(), isInSymtab(), isIntegerLoopHeaderPHI(), isIntersect(), isKnownBaseResult(), isKnownTypeIdMember(), llvm::HexagonInstrInfo::isLateInstrFeedsEarlyInstr(), isLEA(), llvm::AArch64TargetLowering::isLegalAddImmediate(), isLegalArithImmed(), llvm::X86Subtarget::isLegalToCallImmediateAddr(), isLiveOut(), llvm::slpvectorizer::BoUpSLP::isLoadCombineReductionCandidate(), isLoadConditional(), isLoadStoreThatCanHandleDisplacement(), llvm::ScalarEvolution::isLoopBackedgeGuardedByCond(), llvm::ScalarEvolution::isLoopEntryGuardedByCond(), isLoopIncrement(), IsMasked(), isMergeableLdStUpdate(), isMinSize(), IsMovepDestinationRegPair(), isMustExecuteIn(), IsNonLocalValue(), isNopCopy(), isNoWrap(), isObjectDereferencedInBlock(), isOnlyReachableViaThisEdge(), isOperandOf(), isOverwrite(), isPCRel(), isPermutation(), isPHIRegionIndex(), isProfitableChain(), isProfitableForVectorization(), isPromotedInstructionLegal(), isPromotedResultSafe(), isPseudoCallIndirect(), isReassociableOp(), llvm::RecurrenceDescriptor::isReductionPHI(), isRegOtherThanSPAndFP(), isRegUsedByPhiNodes(), isReInterleaveMask(), isRemainderZero(), IsSafeAndProfitableToMove(), isSafeAndProfitableToSpeculateAroundPHI(), IsSafeToMove(), isSafeToPromoteArgument(), isSafeToSpeculatePHIUsers(), isSafeToUnrollAndJam(), llvm::FullDependence::isSplitable(), llvm::mca::Scheduler::issueInstruction(), isSupportedGuardInstruction(), isTargetConstant(), isTerminalReg(), isTrivialLoopExitBlock(), isUncheckedLoadOrStoreOpcode(), isUnconditionalBranch(), llvm::LoopVectorizationLegality::isUniform(), isUniformLoop(), llvm::GCNUpwardRPTracker::isValid(), isValidEncoding(), llvm::SMSchedule::isValidSchedule(), isVectorReductionOp(), isVirtualRegisterOperand(), isVRegCompatibleReg(), isWrapperOnlyCall(), iterativelySinkInstructions(), llvm::jitlink::jitLink_MachO(), KnuthDiv(), llvm::LazyCallGraph::LazyCallGraph(), llvm::SplitEditor::leaveIntvAfter(), llvm::SplitEditor::leaveIntvBefore(), llvm::SystemZPostRASchedStrategy::leaveMBB(), llvm::LegalizerHelper::legalizeInstrStep(), llvm::AArch64LegalizerInfo::legalizeIntrinsic(), llvm::Legalizer::legalizeMachineFunction(), llvm::AMDGPULegalizerInfo::legalizePreloadedArgIntrin(), llvm::LegalizerHelper::libcall(), LinearizeExprTree(), llvm::jitlink::JITLinker< MachOJITLinker_x86_64 >::link(), llvm::jitlink::JITLinkerBase::linkPhase2(), llvm_unreachable_internal(), llvm::coverage::CoverageMapping::load(), llvm::RuntimeDyldELF::loadObject(), llvm::ARCInstrInfo::loadRegFromStackSlot(), lookForCompound(), llvm::orc::ExecutionSession::lookup(), lookupCandidateBaseReg(), LoopIsOuterMostWithPredecessor(), llvm::LoopVectorizeHints::LoopVectorizeHints(), llvm::HexagonTargetLowering::LowerBITCAST(), llvm::AArch64CallLowering::lowerCall(), llvm::HexagonTargetLowering::LowerCall(), llvm::HexagonTargetLowering::LowerDYNAMIC_STACKALLOC(), llvm::ARMTargetLowering::LowerOperation(), llvm::AArch64TargetLowering::LowerOperation(), llvm::AArch64CallLowering::lowerReturn(), makeBitReverse(), makeCombineInst(), makeImplicit(), mapBinOpcode(), llvm::SparseSolver< LatticeKey, LatticeVal, KeyInfo >::MarkBlockExecutable(), MarkBlocksLiveIn(), markTails(), llvm::HexagonEvaluator::mask(), llvm::CombinerHelper::matchCombineExtendingLoads(), matchPassManager(), matchSwap(), llvm::gvn::AvailableValue::MaterializeAdjustedValue(), mayTailCallThisCC(), mayUseP9Setb(), mayUsePostIncMode(), llvm::LoopVectorizationCostModel::memoryInstructionCanBeWidened(), llvm::MemorySSAWalker::MemorySSAWalker(), MergeBlockIntoPredecessor(), mergeCleanupPad(), mergeConstants(), mergeInlinedArrayAllocas(), mergeOperations(), mightWriteIntoAllocaPtr(), minAPInt(), moveAndTeeForMultiUse(), moveForSingleUse(), moveLCSSAPhis(), llvm::object::MachORebaseEntry::moveNext(), llvm::object::MachOBindEntry::moveNext(), moveUp(), llvm::LegalizerHelper::narrowScalar(), nearest_common_dominator(), needsFP(), llvm::TargetRegisterInfo::needsStackRealignment(), NewSDValueDbgMsg(), node_eq(), normalizePBQPSpillWeight(), normalizePredicate(), llvm::orc::MaterializationResponsibility::notifyEmitted(), llvm::mca::ExecuteStage::notifyInstructionExecuted(), llvm::mca::ExecuteStage::notifyInstructionIssued(), llvm::mca::ExecuteStage::notifyInstructionPending(), llvm::mca::ExecuteStage::notifyInstructionReady(), llvm::mca::RetireStage::notifyInstructionRetired(), llvm::orc::remote::OrcRemoteTargetClient::RemoteRTDyldMemoryManager::notifyObjectLoaded(), llvm::orc::MaterializationResponsibility::notifyResolved(), llvm::mca::ExecuteStage::notifyResourceAvailable(), numVectorEltsOrZero(), llvm::AggressiveAntiDepBreaker::Observe(), okayForPHIOfOps(), llvm::mca::LSUnitBase::onInstructionRetired(), operator new(), llvm::jitlink::EHFrameSplitter::operator()(), llvm::jitlink::EHFrameEdgeFixer::operator()(), llvm::orc::DumpObjects::operator()(), false::IntervalSorter::operator()(), llvm::bfi_detail::BlockEdgesAdder< BT >::operator()(), llvm::Expected< T >::operator*(), operator<<(), operator<<(), llvm::LazyCallGraph::operator=(), llvm::OProfileWrapper::OProfileWrapper(), OptimizeAwayTrappingUsesOfLoads(), optimizeCall(), llvm::slpvectorizer::BoUpSLP::optimizeGatherSequence(), optimizeGlobalCtorsList(), llvm::MemorySSA::OptimizeUses::OptimizeUses(), optimizeVcndVcmpPair(), llvm::OptLevelChanger::OptLevelChanger(), llvm::BlockFrequencyInfoImplBase::packageLoop(), packCmovGroup(), llvm::VLIWPacketizerList::PacketizeMIs(), parseSymbolString(), patchAndReplaceAllUsesWith(), PeepholePPC64ZExtGather(), false::LibCallsShrinkWrap::perform(), performConcatVectorsCombine(), llvm::MipsSETargetLowering::PerformDAGCombine(), llvm::AArch64TargetLowering::PerformDAGCombine(), PerformHeapAllocSRoA(), performMaskedAtomicOp(), PerformSHLSimplify(), performSink(), llvm::GCNMaxOccupancySchedStrategy::pickNode(), llvm::R600SchedStrategy::pickNode(), llvm::SystemZPostRASchedStrategy::pickNode(), llvm::ConvergingVLIWScheduler::pickNode(), llvm::GenericScheduler::pickNode(), llvm::PostGenericScheduler::pickNode(), llvm::GenericScheduler::pickNodeBidirectional(), llvm::ConvergingVLIWScheduler::pickNodeBidrectional(), llvm::LoopVectorizationPlanner::plan(), llvm::LoopVectorizationPlanner::planInVPlanNativePath(), pointerInvalidatedByLoop(), populateDependencyMatrix(), llvm::RuntimeDyldMachO::populateIndirectSymbolPointersSection(), populateWorklist(), llvm::ARMTTIImpl::preferPredicateOverEpilogue(), llvm::LoopVectorizationLegality::prepareToFoldTailByMasking(), llvm::HexagonDAGToDAGISel::PreprocessISelDAG(), llvm::TimePassesHandler::print(), llvm::GISelCSEInfo::print(), llvm::MemoryDepChecker::Dependence::print(), llvm::LiveIntervals::print(), llvm::BitTracker::print_cells(), llvm::SIScheduleBlock::printDebug(), printLivesAt(), PrintOps(), llvm::AlignmentFromAssumptionsPass::processAssumption(), llvm::JumpThreadingPass::ProcessBlock(), processDbgDeclares(), llvm::ARCFrameLowering::processFunctionBeforeFrameFinalized(), processInternalGlobal(), llvm::LoopVectorizePass::processLoop(), processLoopInVPlanNativePath(), processPHI(), llvm::RuntimeDyldCOFFI386::processRelocationRef(), llvm::RuntimeDyldCOFFThumb::processRelocationRef(), llvm::RuntimeDyldCOFFAArch64::processRelocationRef(), llvm::RuntimeDyldELF::processRelocationRef(), llvm::RuntimeDyldCOFFX86_64::processRelocationRef(), ProfitableToMerge(), profitImm(), promoteArguments(), promoteIndirectCalls(), promoteLoopAccessesToScalars(), propagateMetadata(), llvm::jitlink::prune(), pruneCache(), llvm::rdf::DataFlowGraph::pushAllDefs(), pushDepHeight(), llvm::CFLAndersAAResult::query(), llvm::CFLSteensAAResult::query(), llvm::GVNHoist::rank(), llvm::sampleprof::SampleProfileReader::read(), readDisplacement(), readImmediate(), readInstruction32(), readMaskRegister(), readModRM(), readOpcode(), readOpcodeRegister(), readOperands(), readPrefixes(), readSection(), readSIB(), readVVVV(), llvm::ConvergingVLIWScheduler::readyQueueVerboseDump(), llvm::RuntimeDyldImpl::reassignSectionAddress(), llvm::AArch64TargetLowering::ReconstructShuffle(), llvm::GISelCSEInfo::recordNewInstruction(), llvm::StackMaps::recordStatepoint(), llvm::ScheduleDAGInstrs::reduceHugeMemNodeMaps(), RefineErrorLoc(), llvm::Attributor::registerFunctionSignatureRewrite(), llvm::GenericScheduler::registerRoots(), llvm::PostGenericScheduler::registerRoots(), regOverlapsSet(), llvm::R600SchedStrategy::releaseBottomNode(), llvm::ConvergingVLIWScheduler::releaseBottomNode(), llvm::LazyMachineBlockFrequencyInfoPass::releaseMemory(), llvm::DemandedBitsWrapperPass::releaseMemory(), llvm::ScheduleDAGMI::releasePred(), llvm::ScheduleDAGMI::releaseSucc(), llvm::R600SchedStrategy::releaseTopNode(), rematerializeCheapDef(), llvm::safestack::StackColoring::removeAllMarkers(), llvm::HexagonInstrInfo::removeBranch(), RemoveDeadAddBetweenLEAAndJT(), llvm::PMDataManager::removeDeadPasses(), removeExternalCFGEdges(), llvm::PMDataManager::removeNotPreservedAnalysis(), removeRedundantBlockingStores(), RemoveRedundantDbgInstrs(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::RemoveRedundantRoots(), llvm::SlotIndexes::removeSingleMachineInstrFromMaps(), removeUndefIntroducingPredecessor(), replace(), llvm::orc::MaterializationResponsibility::replace(), replaceAllPrepares(), llvm::SCEVExpander::replaceCongruentIVs(), replaceDominatedUses(), replaceDominatedUsesWith(), ReplaceFrameIndex(), llvm::InstCombiner::replaceInstUsesWith(), llvm::scc_iterator< GraphT, GT >::ReplaceNode(), llvm::X86TargetLowering::ReplaceNodeResults(), replaceSymbolicStrideSCEV(), ReplaceUsesOfWith(), reportInvalidCandidate(), reportLoadElim(), reportMayClobberedLoad(), reportMismatch(), rescheduleCanonically(), rescheduleLexographically(), llvm::GenericScheduler::reschedulePhysReg(), llvm::orc::remote::OrcRemoteTargetClient::RemoteRTDyldMemoryManager::reserveAllocationSpace(), llvm::VLIWResourceModel::reserveResources(), llvm::ResourceManager::reserveResources(), llvm::HexagonHazardRecognizer::Reset(), llvm::ScoreboardHazardRecognizer::Reset(), llvm::cl::ResetAllOptionOccurrences(), llvm::rdf::Liveness::resetKills(), llvm::objcarc::PtrState::ResetSequenceProgress(), llvm::MipsTargetMachine::resetSubtarget(), llvm::SelectionDAGBuilder::resolveDanglingDebugInfo(), llvm::RuntimeDyldImpl::resolveLocalRelocations(), llvm::RuntimeDyldELFMips::resolveMIPSO32Relocation(), llvm::RuntimeDyldELFMips::resolveRelocation(), llvm::RuntimeDyldCOFFI386::resolveRelocation(), llvm::RuntimeDyldCOFFThumb::resolveRelocation(), llvm::RuntimeDyldELF::resolveRelocation(), llvm::ARCFrameLowering::restoreCalleeSavedRegisters(), llvm::AArch64FrameLowering::restoreCalleeSavedRegisters(), RetagMask(), llvm::HexagonInstrInfo::reversePredSense(), llvm::SSAUpdaterBulk::RewriteAllUses(), rewriteDebugUsers(), rewriteP2Align(), llvm::IRCEPass::run(), llvm::MergeFunctionsPass::run(), llvm::LoopDataPrefetchPass::run(), llvm::LoopDeletionPass::run(), llvm::HWAddressSanitizerPass::run(), llvm::rdf::CopyPropagation::run(), llvm::BitTracker::run(), llvm::SimpleLoopUnswitchPass::run(), llvm::BitcodeWriterPass::run(), llvm::DeadArgumentEliminationPass::run(), llvm::ThinLTOCodeGenerator::run(), llvm::TruncInstCombine::run(), llvm::InlinerPass::run(), llvm::VerifierAnalysis::run(), llvm::Interpreter::run(), llvm::InstCombiner::run(), llvm::ModuleToPostOrderCGSCCPassAdaptor< CGSCCPassT >::run(), llvm::CGSCCToFunctionPassAdaptor< FunctionPassT >::run(), llvm::PassManager< Function >::run(), llvm::DevirtSCCRepeatedPass< PassT >::run(), llvm::Attributor::run(), runAttributorOnModule(), llvm::Float2IntPass::runImpl(), llvm::SpeculativeExecutionPass::runImpl(), llvm::SLPVectorizerPass::runImpl(), llvm::JumpThreadingPass::runImpl(), runIPSCCP(), runOnBasicBlock(), llvm::LegacyDivergenceAnalysis::runOnFunction(), llvm::RGPassManager::runOnFunction(), llvm::PredicateInfoPrinterLegacyPass::runOnFunction(), llvm::MemorySSAPrinterLegacyPass::runOnFunction(), llvm::InstructionSelect::runOnMachineFunction(), llvm::BreakFalseDeps::runOnMachineFunction(), llvm::Legalizer::runOnMachineFunction(), llvm::SelectionDAGISel::runOnMachineFunction(), llvm::RegisterClassInfo::runOnMachineFunction(), llvm::ReachingDefAnalysis::runOnMachineFunction(), llvm::MachinePipeliner::runOnMachineFunction(), llvm::Localizer::runOnMachineFunction(), llvm::WebAssemblyExceptionInfo::runOnMachineFunction(), llvm::ExecutionDomainFix::runOnMachineFunction(), llvm::SlotIndexes::runOnMachineFunction(), llvm::RegBankSelect::runOnMachineFunction(), runSCCP(), llvm::LoopVectorizationCostModel::runtimeChecksRequired(), llvm::SelectionDAG::salvageDebugInfo(), salvageDebugInfoForDbgValues(), salvageDebugInfoFromEmptyBlock(), llvm::SelectionDAGBuilder::salvageUnresolvedDbgValue(), llvm::sampleprof::SampleProfileReaderExtBinaryBase::SampleProfileReaderExtBinaryBase(), scaleCaseProbality(), scaleWeights(), scavengeFrameVirtualRegs(), llvm::RegScavenger::scavengeRegister(), llvm::RegScavenger::scavengeRegisterBackwards(), scavengeStackSlot(), llvm::R600SchedStrategy::schedNode(), llvm::SystemZPostRASchedStrategy::schedNode(), llvm::GCNIterativeScheduler::schedule(), llvm::VLIWMachineScheduler::schedule(), llvm::GCNScheduleDAGMILive::schedule(), llvm::SIScheduleBlock::schedule(), llvm::GCNIterativeScheduler::OverrideLegacyStrategy::schedule(), llvm::SwingSchedulerDAG::schedule(), llvm::ScheduleDAGMI::schedule(), llvm::SIScheduleDAGMI::schedule(), llvm::ScheduleDAGMILive::schedule(), llvm::GCNIterativeScheduler::scheduleILP(), llvm::GCNIterativeScheduler::scheduleLegacyMaxOccupancy(), llvm::ScheduleDAGMILive::scheduleMI(), llvm::GCNIterativeScheduler::scheduleMinReg(), llvm::PMTopLevelManager::schedulePass(), llvm::GCNIterativeScheduler::scheduleRegion(), llvm::SchedDFSResult::scheduleTree(), llvm::ConvergingVLIWScheduler::SchedulingCost(), llvm::ScoreboardHazardRecognizer::ScoreboardHazardRecognizer(), llvm::mca::Scheduler::select(), llvm::SelectionDAGISel::SelectCodeCommon(), selectCopy(), selectI64Imm(), llvm::LoopVectorizationCostModel::selectInterleaveCount(), llvm::FastISel::selectIntrinsicCall(), llvm::SplitEditor::selectIntv(), llvm::HvxSelector::selectShuffle(), llvm::LoopVectorizationCostModel::selectVectorizationFactor(), separateNestedLoop(), llvm::FaultMaps::serializeToFaultMapSection(), llvm::StackMaps::serializeToStackMapSection(), llvm::LoopVectorizationPlanner::setBestPlan(), llvm::BlockFrequencyInfoImpl< llvm::BitTracker >::setBlockFreq(), setBranchWeights(), llvm::InnerLoopVectorizer::setDebugLocFromInst(), llvm::BranchProbabilityInfo::setEdgeProbability(), setFastFlags(), llvm::SelectionDAG::setGraphColor(), llvm::objcarc::PtrState::SetKnownPositiveRefCount(), llvm::GenericSchedulerBase::setPolicy(), setProfMetadata(), llvm::objcarc::PtrState::SetSeq(), llvm::AMDGPUInstructionSelector::setupMF(), llvm::ARMBaseRegisterInfo::shouldCoalesce(), shouldConvert(), shouldFixMainFunction(), shouldInline(), shouldRotateLoopExitingLatch(), shouldSplit(), ShrinkLoadReplaceStoreWithStore(), llvm::LiveIntervals::shrinkToUses(), llvm::HexagonShuffler::shuffle(), simplifyAllocaArraySize(), SimplifyCondBranchToCondBranch(), SimplifyCondBranchToTwoReturns(), simplifyDivRem(), simplifyOneLoop(), sink(), sinkAndCmp0Expression(), SinkInstruction(), sinkInstruction(), sinkRegion(), llvm::SIScheduleBlockScheduler::SIScheduleBlockScheduler(), sizeToSubRegIndex(), llvm::FunctionPass::skipFunction(), llvm::LoopPass::skipLoop(), llvm::RegionPass::skipRegion(), AllocaSlices::SliceBuilder::SliceBuilder(), llvm::InstCombiner::SliceUpIllegalIntegerPHI(), llvm::SparseSolver< LatticeKey, LatticeVal, KeyInfo >::Solve(), SolveQuadraticAddRecExact(), SolveQuadraticAddRecRange(), llvm::APIntOps::SolveQuadraticEquationWrap(), sortBlocks(), speculatePHINodeLoads(), speculatePHIs(), speculateSelectInstLoads(), SpeculativelyExecuteBB(), llvm::ARCFrameLowering::spillCalleeSavedRegisters(), llvm::AArch64FrameLowering::spillCalleeSavedRegisters(), split(), splitCallSite(), llvm::MachineBasicBlock::SplitCriticalEdge(), splitMBB(), llvm::LiveIntervals::splitSeparateComponents(), SRAGlobal(), llvm::DbgValueHistoryMap::startDbgValue(), llvm::ARCInstrInfo::storeRegToStackSlot(), llvm::ExecutionEngine::StoreValueToMemory(), false::Chain::str(), subRangeLiveAt(), swapMIOperands(), llvm::TailDuplicator::tailDuplicateBlocks(), thinLTOResolvePrevailingInModule(), llvm::JumpThreadingPass::ThreadEdge(), llvm::JumpThreadingPass::ThreadGuard(), llvm::sampleprof::ProfileSymbolList::toCompress(), llvm::ConvergingVLIWScheduler::traceCandidate(), llvm::GenericSchedulerBase::traceCandidate(), tracePick(), truncateIVUse(), llvm::LegalizationArtifactCombiner::tryCombineAnyExt(), llvm::LegalizationArtifactCombiner::tryCombineInstruction(), llvm::LegalizationArtifactCombiner::tryCombineSExt(), llvm::LegalizationArtifactCombiner::tryCombineZExt(), llvm::HexagonMCInstrInfo::tryCompound(), llvm::mca::RegisterFile::tryEliminateMove(), llvm::LegalizationArtifactCombiner::tryFoldImplicitDef(), tryFoldInst(), tryLowerToSLI(), llvm::GCNIterativeScheduler::tryMaximizeOccupancy(), tryPromoteAllocaToVector(), llvm::JumpThreadingPass::TryThreadEdge(), tryToElideArgumentCopy(), tryToFindRegisterToRename(), tryToFoldACImm(), tryToRecognizePopCount(), tryToReplaceWithConstant(), tryToShorten(), TryToShrinkGlobalToBoolean(), TryToSimplifyUncondBranchFromEmptyBlock(), TryToSinkInstruction(), tryToSpeculatePHIs(), tryToUnrollAndJamLoop(), tryToUnrollLoop(), tryToVectorizeHorReductionOrInstOperands(), turnGuardIntoBranch(), TypeSizeToSizeIndex(), llvm::LiveRegMatrix::unassign(), UnrollAndJamLoop(), UnrollLoop(), UnrollRuntimeLoopRemainder(), unsupportedBinOp(), unswitchTrivialBranch(), unswitchTrivialSwitch(), unwrapLoop(), llvm::AbstractAttribute::update(), llvm::LiveIntervals::HMEditor::updateAllRanges(), updateDefinedRegisters(), llvm::MachineTraceMetrics::Ensemble::updateDepth(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::UpdateInsertion(), updateOperand(), updateOperandRegConstraints(), updatePredecessorProfileMetadata(), llvm::ScheduleDAGMILive::updatePressureDiffs(), llvm::CallInst::updateProfWeight(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::UpdateRootsAfterUpdate(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::UpdateRootsBeforeInsertion(), llvm::ScheduleDAGMILive::updateScheduledPressure(), llvm::JumpThreadingPass::UpdateSSA(), llvm::MipsSubtarget::useConstantIslands(), usedAsAddr(), llvm::AMDGPULibCalls::useNative(), validThroughout(), llvm::LoopVectorizeHints::vectorizeAnalysisPassName(), llvm::slpvectorizer::BoUpSLP::vectorizeTree(), Verify(), llvm::LegalizerInfo::verify(), llvm::ScalarEvolution::verify(), llvm::LoopInfoBase< BasicBlock, Loop >::verify(), verifyCTRBranch(), llvm::VPlanVerifier::verifyHierarchicalCFG(), llvm::LegalizeRuleSet::verifyImmIdxsCoverage(), llvm::LoopBase< BasicBlock, Loop >::verifyLoop(), llvm::misexpect::verifyMisExpect(), verifyModule(), llvm::mca::verifyOperands(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::verifyParentProperty(), VerifyPHIs(), llvm::ScheduleDAG::VerifyScheduledDAG(), VerifySDNode(), llvm::LegalizeRuleSet::verifyTypeIdxsCoverage(), llvm::sroa::AllocaSliceRewriter::visit(), llvm::Interpreter::visitAllocaInst(), llvm::InstCombiner::visitAllocaInst(), llvm::Interpreter::visitBinaryOperator(), llvm::Interpreter::visitExtractElementInst(), llvm::Interpreter::visitFCmpInst(), llvm::Interpreter::visitICmpInst(), llvm::Interpreter::visitInsertValueInst(), llvm::ObjectSizeOffsetVisitor::visitInstruction(), llvm::ObjectSizeOffsetEvaluator::visitInstruction(), visitIVCast(), llvm::Interpreter::visitLoadInst(), llvm::InstCombiner::visitSExt(), llvm::Interpreter::visitStoreInst(), llvm::InstCombiner::visitTrunc(), llvm::Interpreter::visitVAArgInst(), llvm::InstCombiner::visitZExt(), warnAboutLeftoverTransformations(), X86SelectAddress(), llvm::DebugCounter::~DebugCounter(), llvm::LiveDebugVariables::~LiveDebugVariables(), llvm::OptLevelChanger::~OptLevelChanger(), llvm::orc::remote::OrcRemoteTargetClient::RemoteRTDyldMemoryManager::~RemoteRTDyldMemoryManager(), llvm::Value::~Value(), and llvm::ValueSymbolTable::~ValueSymbolTable().
Definition at line 223 of file APFloat.cpp.
Referenced by interpretDecimal(), readExponent(), and totalExponent().
| FunctionCallee llvm::declareSanitizerInitFunction | ( | Module & | M, |
| StringRef | InitName, | ||
| ArrayRef< Type *> | InitArgTypes | ||
| ) |
Definition at line 111 of file ModuleUtils.cpp.
References assert(), llvm::StringRef::empty(), llvm::FunctionType::get(), llvm::Module::getContext(), llvm::Module::getOrInsertFunction(), and llvm::Type::getVoidTy().
Referenced by createSanitizerCtorAndInitFunctions(), getOrCreateSanitizerCtorAndInitFunctions(), instrumentMaskedLoadOrStore(), and llvm::ModuleSanitizerCoveragePass::run().
| void llvm::DecodeBLENDMask | ( | unsigned | NumElts, |
| unsigned | Imm, | ||
| SmallVectorImpl< int > & | ShuffleMask | ||
| ) |
Decode a BLEND immediate mask into a shuffle mask.
Definition at line 328 of file X86ShuffleDecode.cpp.
References llvm::tgtok::Bit, and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().
| void llvm::DecodeEXTRQIMask | ( | unsigned | NumElts, |
| unsigned | EltSize, | ||
| int | Len, | ||
| int | Idx, | ||
| SmallVectorImpl< int > & | ShuffleMask | ||
| ) |
Decode a SSE4A EXTRQ instruction as a shuffle mask.
Definition at line 415 of file X86ShuffleDecode.cpp.
References llvm::SmallVectorImpl< T >::append(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), SM_SentinelUndef, and SM_SentinelZero.
Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().
| void llvm::DecodeInsertElementMask | ( | unsigned | NumElts, |
| unsigned | Idx, | ||
| unsigned | Len, | ||
| SmallVectorImpl< int > & | ShuffleMask | ||
| ) |
Definition at line 46 of file X86ShuffleDecode.cpp.
References assert(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by EmitAnyX86InstComments().
| void llvm::DecodeINSERTPSMask | ( | unsigned | Imm, |
| SmallVectorImpl< int > & | ShuffleMask | ||
| ) |
Decode a 128-bit INSERTPS instruction as a v4f32 shuffle mask.
Definition at line 23 of file X86ShuffleDecode.cpp.
References llvm::SmallVectorTemplateBase< T, bool >::push_back(), and SM_SentinelZero.
Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().
| void llvm::DecodeINSERTQIMask | ( | unsigned | NumElts, |
| unsigned | EltSize, | ||
| int | Len, | ||
| int | Idx, | ||
| SmallVectorImpl< int > & | ShuffleMask | ||
| ) |
Decode a SSE4A INSERTQ instruction as a shuffle mask.
Definition at line 452 of file X86ShuffleDecode.cpp.
References llvm::SmallVectorImpl< T >::append(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and SM_SentinelUndef.
Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().
|
inline |
Dual operation of the encode function above.
Definition at line 239 of file Alignment.h.
References llvm::Align::MaybeAlign.
Referenced by llvm::LoadInst::getAlign(), llvm::StoreInst::getAlign(), llvm::GlobalObject::getAlignment(), llvm::AllocaInst::getAlignment(), getAttrFromCode(), llvm::ISD::ArgFlagsTy::getByValAlign(), and llvm::ISD::ArgFlagsTy::getOrigAlign().
| void llvm::DecodeMOVDDUPMask | ( | unsigned | NumElts, |
| SmallVectorImpl< int > & | ShuffleMask | ||
| ) |
Definition at line 88 of file X86ShuffleDecode.cpp.
References llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().
| void llvm::DecodeMOVHLPSMask | ( | unsigned | NElts, |
| SmallVectorImpl< int > & | ShuffleMask | ||
| ) |
Decode a MOVHLPS instruction as a v2f64/v4f32 shuffle mask.
i.e. <3,1> or <6,7,2,3>
Definition at line 57 of file X86ShuffleDecode.cpp.
References llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().
| void llvm::DecodeMOVLHPSMask | ( | unsigned | NElts, |
| SmallVectorImpl< int > & | ShuffleMask | ||
| ) |
Decode a MOVLHPS instruction as a v2f64/v4f32 shuffle mask.
i.e. <0,2> or <0,1,4,5>
Definition at line 66 of file X86ShuffleDecode.cpp.
References llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().
| void llvm::DecodeMOVSHDUPMask | ( | unsigned | NumElts, |
| SmallVectorImpl< int > & | ShuffleMask | ||
| ) |
Definition at line 81 of file X86ShuffleDecode.cpp.
References llvm::numbers::e, and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().
| void llvm::DecodeMOVSLDUPMask | ( | unsigned | NumElts, |
| SmallVectorImpl< int > & | ShuffleMask | ||
| ) |
Definition at line 74 of file X86ShuffleDecode.cpp.
References llvm::numbers::e, and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().
| void llvm::DecodePALIGNRMask | ( | unsigned | NumElts, |
| unsigned | Imm, | ||
| SmallVectorImpl< int > & | ShuffleMask | ||
| ) |
Definition at line 121 of file X86ShuffleDecode.cpp.
References llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by concatSubVector(), EmitAnyX86InstComments(), getTargetShuffleMask(), and group2Shuffle().
| void llvm::DecodePSHUFBMask | ( | const Constant * | C, |
| unsigned | Width, | ||
| SmallVectorImpl< int > & | ShuffleMask | ||
| ) |
Decode a PSHUFB mask from an IR-level vector constant.
Definition at line 114 of file X86ShuffleDecodeConstantPool.cpp.
References assert(), extractConstantMask(), llvm::Type::getPrimitiveSizeInBits(), llvm::Value::getType(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), SM_SentinelUndef, and SM_SentinelZero.
| void llvm::DecodePSHUFBMask | ( | ArrayRef< uint64_t > | RawMask, |
| const APInt & | UndefElts, | ||
| SmallVectorImpl< int > & | ShuffleMask | ||
| ) |
Decode a PSHUFB mask from a raw array of constants such as from BUILD_VECTOR.
Definition at line 306 of file X86ShuffleDecode.cpp.
References llvm::numbers::e, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::ArrayRef< T >::size(), SM_SentinelUndef, and SM_SentinelZero.
Referenced by llvm::X86AsmPrinter::EmitInstruction(), and getTargetShuffleMask().
| void llvm::DecodePSHUFHWMask | ( | unsigned | NumElts, |
| unsigned | Imm, | ||
| SmallVectorImpl< int > & | ShuffleMask | ||
| ) |
Decodes the shuffle masks for pshufhw.
VT indicates the type of the vector allowing it to handle different datatypes and vector widths.
Definition at line 163 of file X86ShuffleDecode.cpp.
References llvm::numbers::e, and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().
| void llvm::DecodePSHUFLWMask | ( | unsigned | NumElts, |
| unsigned | Imm, | ||
| SmallVectorImpl< int > & | ShuffleMask | ||
| ) |
Decodes the shuffle masks for pshuflw.
VT indicates the type of the vector allowing it to handle different datatypes and vector widths.
Definition at line 177 of file X86ShuffleDecode.cpp.
References llvm::numbers::e, and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().
| void llvm::DecodePSHUFMask | ( | unsigned | NumElts, |
| unsigned | ScalarBits, | ||
| unsigned | Imm, | ||
| SmallVectorImpl< int > & | ShuffleMask | ||
| ) |
DecodePSHUFMask - This decodes the shuffle masks for pshufw, pshufd, and vpermilp*.
Decodes the shuffle masks for pshufd/pshufw/vpermilpd/vpermilps.
VT indicates the type of the vector allowing it to handle different datatypes and vector widths.
Definition at line 147 of file X86ShuffleDecode.cpp.
References llvm::SmallVectorTemplateBase< T, bool >::push_back(), and Size.
Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().
| void llvm::DecodePSLLDQMask | ( | unsigned | NumElts, |
| unsigned | Imm, | ||
| SmallVectorImpl< int > & | ShuffleMask | ||
| ) |
Definition at line 96 of file X86ShuffleDecode.cpp.
References llvm::SmallVectorTemplateBase< T, bool >::push_back(), and SM_SentinelZero.
Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().
| void llvm::DecodePSRLDQMask | ( | unsigned | NumElts, |
| unsigned | Imm, | ||
| SmallVectorImpl< int > & | ShuffleMask | ||
| ) |
Definition at line 108 of file X86ShuffleDecode.cpp.
References llvm::SmallVectorTemplateBase< T, bool >::push_back(), and SM_SentinelZero.
Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().
| void llvm::DecodePSWAPMask | ( | unsigned | NumElts, |
| SmallVectorImpl< int > & | ShuffleMask | ||
| ) |
Decodes a PSWAPD 3DNow! instruction.
Definition at line 191 of file X86ShuffleDecode.cpp.
References llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by EmitAnyX86InstComments().
| void llvm::DecodeScalarMoveMask | ( | unsigned | NumElts, |
| bool | IsLoad, | ||
| SmallVectorImpl< int > & | Mask | ||
| ) |
Decode a scalar float move instruction as a shuffle mask.
Definition at line 406 of file X86ShuffleDecode.cpp.
References llvm::SmallVectorTemplateBase< T, bool >::push_back(), and SM_SentinelZero.
Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().
| void llvm::DecodeSHUFPMask | ( | unsigned | NumElts, |
| unsigned | ScalarBits, | ||
| unsigned | Imm, | ||
| SmallVectorImpl< int > & | ShuffleMask | ||
| ) |
DecodeSHUFPMask - This decodes the shuffle masks for shufp*.
Decodes the shuffle masks for shufp*.
VT indicates the type of the vector allowing it to handle different datatypes and vector widths.
Definition at line 203 of file X86ShuffleDecode.cpp.
References llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().
|
inline |
Utility function to decode a SLEB128 value.
Definition at line 161 of file LEB128.h.
References llvm::sys::path::end(), error, getSLEB128Size(), and getULEB128Size().
Referenced by getExpressionFrameOffset(), llvm::DataExtractor::getSLEB128(), llvm::object::MachOBindEntry::moveNext(), nextLEB(), and readLEB128().
| void llvm::DecodeSubVectorBroadcast | ( | unsigned | DstNumElts, |
| unsigned | SrcNumElts, | ||
| SmallVectorImpl< int > & | ShuffleMask | ||
| ) |
Decodes a broadcast of a subvector to a larger vector type.
Definition at line 265 of file X86ShuffleDecode.cpp.
References llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by EmitAnyX86InstComments().
|
inline |
Utility function to decode a ULEB128 value.
Definition at line 128 of file LEB128.h.
References llvm::sys::path::end(), and error.
Referenced by llvm::sampleprof::SampleProfileReaderRawBinary::hasFormat(), llvm::sampleprof::SampleProfileReaderExtBinary::hasFormat(), llvm::sampleprof::SampleProfileReaderCompactBinary::hasFormat(), loadTestingFormat(), llvm::object::MachORebaseEntry::moveNext(), llvm::object::MachOBindEntry::moveNext(), nextLEB(), llvm::sampleprof::SampleProfileReaderBinary::readNumber(), readPGOFuncNameStrings(), readULEB128(), and llvm::coverage::RawCoverageReader::readULEB128().
| void llvm::DecodeUNPCKHMask | ( | unsigned | NumElts, |
| unsigned | ScalarBits, | ||
| SmallVectorImpl< int > & | ShuffleMask | ||
| ) |
DecodeUNPCKHMask - This decodes the shuffle masks for unpckhps/unpckhpd and punpckh*.
Decodes the shuffle masks for unpckhps/unpckhpd and punpckh*.
VT indicates the type of the vector allowing it to handle different datatypes and vector widths.
Definition at line 223 of file X86ShuffleDecode.cpp.
References llvm::numbers::e, and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().
| void llvm::DecodeUNPCKLMask | ( | unsigned | NumElts, |
| unsigned | ScalarBits, | ||
| SmallVectorImpl< int > & | ShuffleMask | ||
| ) |
DecodeUNPCKLMask - This decodes the shuffle masks for unpcklps/unpcklpd and punpckl*.
Decodes the shuffle masks for unpcklps/unpcklpd and punpckl*.
VT indicates the type of the vector allowing it to handle different datatypes and vector widths.
Definition at line 242 of file X86ShuffleDecode.cpp.
References llvm::numbers::e, and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().
| void llvm::DecodeVALIGNMask | ( | unsigned | NumElts, |
| unsigned | Imm, | ||
| SmallVectorImpl< int > & | ShuffleMask | ||
| ) |
Definition at line 135 of file X86ShuffleDecode.cpp.
References assert(), isPowerOf2_32(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by EmitAnyX86InstComments().
| void llvm::DecodeVectorBroadcast | ( | unsigned | NumElts, |
| SmallVectorImpl< int > & | ShuffleMask | ||
| ) |
Decodes a broadcast of the first element of a vector.
Definition at line 259 of file X86ShuffleDecode.cpp.
References llvm::SmallVectorImpl< T >::append().
Referenced by getTargetShuffleMask().
| void llvm::DecodeVPERM2X128Mask | ( | unsigned | NumElts, |
| unsigned | Imm, | ||
| SmallVectorImpl< int > & | ShuffleMask | ||
| ) |
Definition at line 294 of file X86ShuffleDecode.cpp.
References llvm::numbers::e, llvm::SmallVectorTemplateBase< T, bool >::push_back(), and SM_SentinelZero.
Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().
| void llvm::DecodeVPERMIL2PMask | ( | const Constant * | C, |
| unsigned | M2Z, | ||
| unsigned | ElSize, | ||
| unsigned | Width, | ||
| SmallVectorImpl< int > & | ShuffleMask | ||
| ) |
Decode a VPERMILP2 variable mask from an IR-level vector constant.
Definition at line 187 of file X86ShuffleDecodeConstantPool.cpp.
References assert(), extractConstantMask(), llvm::Type::getPrimitiveSizeInBits(), llvm::Value::getType(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), SM_SentinelUndef, and SM_SentinelZero.
| void llvm::DecodeVPERMIL2PMask | ( | unsigned | NumElts, |
| unsigned | ScalarBits, | ||
| unsigned | M2Z, | ||
| ArrayRef< uint64_t > | RawMask, | ||
| const APInt & | UndefElts, | ||
| SmallVectorImpl< int > & | ShuffleMask | ||
| ) |
Decode a VPERMIL2PD/VPERMIL2PS variable mask from a raw array of constants.
Definition at line 514 of file X86ShuffleDecode.cpp.
References assert(), llvm::numbers::e, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::ArrayRef< T >::size(), SM_SentinelUndef, and SM_SentinelZero.
Referenced by llvm::X86AsmPrinter::EmitInstruction(), and getTargetShuffleMask().
| void llvm::DecodeVPERMILPMask | ( | const Constant * | C, |
| unsigned | ElSize, | ||
| unsigned | Width, | ||
| SmallVectorImpl< int > & | ShuffleMask | ||
| ) |
Decode a VPERMILP variable mask from an IR-level vector constant.
Definition at line 152 of file X86ShuffleDecodeConstantPool.cpp.
References assert(), extractConstantMask(), llvm::Type::getPrimitiveSizeInBits(), llvm::Value::getType(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and SM_SentinelUndef.
| void llvm::DecodeVPERMILPMask | ( | unsigned | NumElts, |
| unsigned | ScalarBits, | ||
| ArrayRef< uint64_t > | RawMask, | ||
| const APInt & | UndefElts, | ||
| SmallVectorImpl< int > & | ShuffleMask | ||
| ) |
Decode a VPERMILPD/VPERMILPS variable mask from a raw array of constants.
Definition at line 492 of file X86ShuffleDecode.cpp.
References assert(), llvm::numbers::e, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::ArrayRef< T >::size(), and SM_SentinelUndef.
Referenced by llvm::X86AsmPrinter::EmitInstruction(), and getTargetShuffleMask().
| void llvm::DecodeVPERMMask | ( | unsigned | NumElts, |
| unsigned | Imm, | ||
| SmallVectorImpl< int > & | ShuffleMask | ||
| ) |
DecodeVPERMMask - this decodes the shuffle masks for VPERMQ/VPERMPD.
Decodes the shuffle masks for VPERMQ/VPERMPD.
Definition at line 378 of file X86ShuffleDecode.cpp.
References llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by EmitAnyX86InstComments(), getTargetShuffleMask(), and llvm::X86TargetLowering::SimplifyDemandedVectorEltsForTargetNode().
| void llvm::DecodeVPERMV3Mask | ( | const Constant * | C, |
| unsigned | ElSize, | ||
| unsigned | Width, | ||
| SmallVectorImpl< int > & | ShuffleMask | ||
| ) |
Decode a VPERMT2 W/D/Q/PS/PD mask from an IR-level vector constant.
Definition at line 321 of file X86ShuffleDecodeConstantPool.cpp.
References assert(), extractConstantMask(), llvm::Type::getPrimitiveSizeInBits(), llvm::Value::getType(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and SM_SentinelUndef.
| void llvm::DecodeVPERMV3Mask | ( | ArrayRef< uint64_t > | RawMask, |
| const APInt & | UndefElts, | ||
| SmallVectorImpl< int > & | ShuffleMask | ||
| ) |
Decode a VPERMT2 W/D/Q/PS/PD mask from a raw array of constants.
Definition at line 574 of file X86ShuffleDecode.cpp.
References llvm::numbers::e, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::ArrayRef< T >::size(), and SM_SentinelUndef.
Referenced by getTargetShuffleMask().
| void llvm::DecodeVPERMVMask | ( | const Constant * | C, |
| unsigned | ElSize, | ||
| unsigned | Width, | ||
| SmallVectorImpl< int > & | ShuffleMask | ||
| ) |
Decode a VPERM W/D/Q/PS/PD mask from an IR-level vector constant.
Definition at line 295 of file X86ShuffleDecodeConstantPool.cpp.
References assert(), extractConstantMask(), llvm::Type::getPrimitiveSizeInBits(), llvm::Value::getType(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and SM_SentinelUndef.
| void llvm::DecodeVPERMVMask | ( | ArrayRef< uint64_t > | RawMask, |
| const APInt & | UndefElts, | ||
| SmallVectorImpl< int > & | ShuffleMask | ||
| ) |
Decode a VPERM W/D/Q/PS/PD mask from a raw array of constants.
Definition at line 560 of file X86ShuffleDecode.cpp.
References llvm::numbers::e, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::ArrayRef< T >::size(), and SM_SentinelUndef.
Referenced by getTargetShuffleMask().
| void llvm::DecodeVPPERMMask | ( | const Constant * | C, |
| unsigned | Width, | ||
| SmallVectorImpl< int > & | ShuffleMask | ||
| ) |
Decode a VPPERM variable mask from an IR-level vector constant.
Definition at line 243 of file X86ShuffleDecodeConstantPool.cpp.
References assert(), llvm::SmallVectorImpl< T >::clear(), extractConstantMask(), llvm::Type::getPrimitiveSizeInBits(), llvm::Value::getType(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), SM_SentinelUndef, and SM_SentinelZero.
| void llvm::DecodeVPPERMMask | ( | ArrayRef< uint64_t > | RawMask, |
| const APInt & | UndefElts, | ||
| SmallVectorImpl< int > & | ShuffleMask | ||
| ) |
Decode a VPPERM mask from a raw array of constants such as from BUILD_VECTOR.
This can only basic masks (permutes + zeros), not any of the other operations that VPPERM can perform.
Definition at line 338 of file X86ShuffleDecode.cpp.
References assert(), llvm::SmallVectorImpl< T >::clear(), llvm::numbers::e, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::ArrayRef< T >::size(), SM_SentinelUndef, and SM_SentinelZero.
Referenced by llvm::X86AsmPrinter::EmitInstruction(), and getTargetShuffleMask().
| void llvm::decodeVSHUF64x2FamilyMask | ( | unsigned | NumElts, |
| unsigned | ScalarSize, | ||
| unsigned | Imm, | ||
| SmallVectorImpl< int > & | ShuffleMask | ||
| ) |
Decode a shuffle packed values at 128-bit granularity (SHUFF32x4/SHUFF64x2/SHUFI32x4/SHUFI64x2) immediate mask into a shuffle mask.
Decode a shuffle packed values at 128-bit granularity immediate mask into a shuffle mask.
Definition at line 277 of file X86ShuffleDecode.cpp.
References llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().
| void llvm::DecodeZeroExtendMask | ( | unsigned | SrcScalarBits, |
| unsigned | DstScalarBits, | ||
| unsigned | NumDstElts, | ||
| bool | IsAnyExtend, | ||
| SmallVectorImpl< int > & | Mask | ||
| ) |
Decode a zero extension instruction as a shuffle mask.
Definition at line 385 of file X86ShuffleDecode.cpp.
References assert(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), SM_SentinelUndef, and SM_SentinelZero.
Referenced by EmitAnyX86InstComments(), and getFauxShuffleMask().
| void llvm::DecodeZeroMoveLowMask | ( | unsigned | NumElts, |
| SmallVectorImpl< int > & | ShuffleMask | ||
| ) |
Decode a move lower and zero upper instruction as a shuffle mask.
Definition at line 399 of file X86ShuffleDecode.cpp.
References llvm::SmallVectorTemplateBase< T, bool >::push_back(), and SM_SentinelZero.
Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().
| bool llvm::decomposeBitTestICmp | ( | Value * | LHS, |
| Value * | RHS, | ||
| CmpInst::Predicate & | Pred, | ||
| Value *& | X, | ||
| APInt & | Mask, | ||
| bool | LookThroughTrunc = true |
||
| ) |
Decompose an icmp into the form ((X & Mask) pred 0) if possible.
The returned predicate is either == or !=. Returns false if decomposition fails.
Definition at line 66 of file CmpInstAnalysis.cpp.
References C, llvm::APInt::getBitWidth(), llvm::Type::getScalarSizeInBits(), llvm::APInt::getSignMask(), llvm::Value::getType(), llvm::CmpInst::ICMP_EQ, llvm::CmpInst::ICMP_NE, llvm::CmpInst::ICMP_SGE, llvm::CmpInst::ICMP_SGT, llvm::CmpInst::ICMP_SLE, llvm::CmpInst::ICMP_SLT, llvm::CmpInst::ICMP_UGE, llvm::CmpInst::ICMP_UGT, llvm::CmpInst::ICMP_ULE, llvm::CmpInst::ICMP_ULT, llvm::APInt::isAllOnesValue(), llvm::APInt::isNullValue(), llvm::APInt::isPowerOf2(), llvm::PatternMatch::m_APInt(), llvm::PatternMatch::m_Trunc(), llvm::PatternMatch::m_Value(), llvm::PatternMatch::match(), and llvm::APInt::zext().
Referenced by decomposeBitTestICmp(), foldSelectICmpAnd(), foldSignedTruncationCheck(), getMaskedTypeForICmpPair(), and simplifySelectWithFakeICmpEq().
|
inline |
Definition at line 1298 of file MemorySSA.h.
References assert(), find(), and make_range().
| void llvm::DeleteContainerPointers | ( | Container & | C | ) |
For a container of pointers, deletes the pointers and then clears the container.
Definition at line 1145 of file STLExtras.h.
Referenced by createMustBeExecutedContextPrinter(), llvm::WebAssemblyExceptionInfo::releaseMemory(), llvm::Attributor::~Attributor(), and llvm::WebAssemblyException::~WebAssemblyException().
| void llvm::DeleteContainerSeconds | ( | Container & | C | ) |
In a container of pairs (usually a map) whose second element is a pointer, deletes the second elements and then clears the container.
Definition at line 1154 of file STLExtras.h.
Referenced by usedAsAddr(), and llvm::MustBeExecutedContextExplorer::~MustBeExecutedContextExplorer().
| void llvm::DeleteDeadBlock | ( | BasicBlock * | BB, |
| DomTreeUpdater * | DTU = nullptr, |
||
| bool | KeepOneInputPHIs = false |
||
| ) |
Delete the specified block, which must have no predecessors.
Definition at line 88 of file BasicBlockUtils.cpp.
References DeleteDeadBlocks().
Referenced by CloneAndPruneIntoFromInst(), createCodeGenPreparePass(), createLowerSwitchPass(), eraseDeadBBsAndChildren(), removeUndefIntroducingPredecessor(), and llvm::JumpThreadingPass::runImpl().
| void llvm::DeleteDeadBlocks | ( | ArrayRef< BasicBlock *> | BBs, |
| DomTreeUpdater * | DTU = nullptr, |
||
| bool | KeepOneInputPHIs = false |
||
| ) |
Delete the specified blocks from BB.
The set of deleted blocks must have no predecessors that are not being deleted themselves. BBs must have no duplicating blocks. If there are loops among this set of blocks, all relevant loop info updates should be done before this function is called. If KeepOneInputPHIs is true, one-input Phis in successors of blocks being deleted will be preserved.
Definition at line 93 of file BasicBlockUtils.cpp.
References llvm::DomTreeUpdater::applyUpdatesPermissive(), assert(), llvm::ArrayRef< T >::begin(), llvm::RegState::Dead, llvm::DomTreeUpdater::deleteBB(), DetatchDeadBlocks(), llvm::ArrayRef< T >::end(), predecessors(), and llvm::ArrayRef< T >::size().
Referenced by DeleteDeadBlock(), and EliminateUnreachableBlocks().
| void llvm::deleteDeadLoop | ( | Loop * | L, |
| DominatorTree * | DT = nullptr, |
||
| ScalarEvolution * | SE = nullptr, |
||
| LoopInfo * | LI = nullptr |
||
| ) |
This function deletes dead loops.
The caller of this function needs to guarantee that the loop is infact dead. The function requires a bunch or prerequisites to be present:
This also updates the relevant analysis information in DT, SE, and LI if pointers to those are provided. It also updates the loop PM if an updater struct is provided.
Definition at line 506 of file LoopUtils.cpp.
References llvm::DomTreeUpdater::applyUpdates(), assert(), llvm::LoopBase< BlockT, LoopT >::block_begin(), llvm::LoopBase< BlockT, LoopT >::block_end(), llvm::LoopBase< BlockT, LoopT >::blocks(), llvm::LoopBase< BlockT, LoopT >::contains(), llvm::DominatorTreeBase< BasicBlock, false >::Delete, dyn_cast(), llvm::numbers::e, E, llvm::DomTreeUpdater::Eager, llvm::detail::DenseSetImpl< ValueT, SmallDenseMap< ValueT, detail::DenseSetEmpty, InlineBuckets, ValueInfoT, detail::DenseSetPair< ValueT > >, ValueInfoT >::end(), llvm::detail::DenseSetImpl< ValueT, SmallDenseMap< ValueT, detail::DenseSetEmpty, InlineBuckets, ValueInfoT, detail::DenseSetPair< ValueT > >, ValueInfoT >::find(), find(), llvm::UndefValue::get(), llvm::LoopBase< BlockT, LoopT >::getHeader(), llvm::LoopBase< BlockT, LoopT >::getLoopPreheader(), llvm::LoopBase< BlockT, LoopT >::getParentLoop(), llvm::LoopBase< BlockT, LoopT >::getUniqueExitBlock(), llvm::Use::getUser(), llvm::LoopBase< BlockT, LoopT >::hasDedicatedExits(), I, llvm::detail::DenseSetImpl< ValueT, SmallDenseMap< ValueT, detail::DenseSetEmpty, InlineBuckets, ValueInfoT, detail::DenseSetPair< ValueT > >, ValueInfoT >::insert(), llvm::DominatorTreeBase< BasicBlock, false >::Insert, llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::Loop::isLCSSAForm(), P, llvm::SmallVectorTemplateBase< T >::push_back(), llvm::Use::set(), and llvm::RegState::Undef.
Referenced by deleteLoopIfDead().
| bool llvm::DeleteDeadPHIs | ( | BasicBlock * | BB, |
| const TargetLibraryInfo * | TLI = nullptr |
||
| ) |
Examine each PHI in the given block and delete it if it is dead.
Also recursively delete any operands that become dead as a result. This includes tracing the def-use list from the PHI to see if it is ultimately unused or if it reaches an unused cycle. Return true if any PHIs were deleted.
Definition at line 156 of file BasicBlockUtils.cpp.
References llvm::numbers::e, llvm::BasicBlock::phis(), llvm::SmallVectorTemplateBase< T >::push_back(), RecursivelyDeleteDeadPHINode(), and llvm::SmallVectorBase::size().
Referenced by Cleanup(), createHWLoopAnalysis(), getMaxBackedgeTakenCount(), GetPointerOperand(), and ReduceLoopStrength().
|
inline |
Definition at line 136 of file STLExtras.h.
| std::string llvm::demangle | ( | const std::string & | MangledName | ) |
Attempt to demangle a string using different demangling schemes.
The function uses heuristics to determine which demangling scheme to use.
| MangledName | - reference to string to demangle. |
Definition at line 22 of file Demangle.cpp.
References isItaniumEncoding(), itaniumDemangle(), microsoftDemangle(), and llvm::MipsISD::Ret.
| AllocaInst * llvm::DemotePHIToStack | ( | PHINode * | P, |
| Instruction * | AllocaPoint = nullptr |
||
| ) |
This function takes a virtual register computed by a phi node and replaces it with a slot in the stack frame, allocated via alloca.
DemotePHIToStack - This function takes a virtual register computed by a PHI node and replaces it with a slot in the stack frame allocated via alloca.
The phi node is deleted and it returns the pointer to the alloca inserted.
The PHI node is deleted. It returns the pointer to the alloca inserted.
Definition at line 110 of file DemoteRegToStack.cpp.
References assert(), llvm::numbers::e, llvm::Instruction::eraseFromParent(), F(), llvm::BasicBlock::front(), llvm::DataLayout::getAllocaAddrSpace(), llvm::Module::getDataLayout(), llvm::Function::getEntryBlock(), llvm::PHINode::getIncomingBlock(), llvm::PHINode::getIncomingValue(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::Instruction::getModule(), llvm::Value::getName(), llvm::PHINode::getNumIncomingValues(), llvm::Instruction::getParent(), llvm::BasicBlock::getParent(), llvm::BasicBlock::getTerminator(), llvm::Value::getType(), llvm::Value::replaceAllUsesWith(), and llvm::Value::use_empty().
Referenced by MarkBlocksLiveIn(), and llvm::SimplifyCFGOptions::setAssumptionCache().
| AllocaInst * llvm::DemoteRegToStack | ( | Instruction & | I, |
| bool | VolatileLoads = false, |
||
| Instruction * | AllocaPoint = nullptr |
||
| ) |
This function takes a virtual register computed by an Instruction and replaces it with a slot in the stack frame, allocated via alloca.
DemoteRegToStack - This function takes a virtual register computed by an Instruction and replaces it with a slot in the stack frame, allocated via alloca.
This allows the CFG to be changed around without fear of invalidating the SSA information for the value. It returns the pointer to the alloca inserted to create a stack slot for X.
This allows the CFG to be changed around without fear of invalidating the SSA information for the value. It returns the pointer to the alloca inserted to create a stack slot for I.
Definition at line 23 of file DemoteRegToStack.cpp.
References assert(), llvm::numbers::e, llvm::Instruction::eraseFromParent(), F(), llvm::BasicBlock::front(), llvm::DataLayout::getAllocaAddrSpace(), llvm::Module::getDataLayout(), llvm::Function::getEntryBlock(), llvm::BasicBlock::getFirstInsertionPt(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::Value::getName(), llvm::InvokeInst::getNormalDest(), llvm::Instruction::getParent(), llvm::BasicBlock::getParent(), llvm::GlobalValue::getParent(), GetSuccessorNumber(), llvm::Value::getType(), I, isCriticalEdge(), llvm::Instruction::isTerminator(), llvm::User::replaceUsesOfWith(), SplitCriticalEdge(), llvm::Value::use_empty(), and llvm::Instruction::user_back().
Referenced by MarkBlocksLiveIn(), and llvm::SimplifyCFGOptions::setAssumptionCache().
| const SCEV * llvm::denormalizeForPostIncUse | ( | const SCEV * | S, |
| const PostIncLoopSet & | Loops, | ||
| ScalarEvolution & | SE | ||
| ) |
Denormalize S to be post-increment for all loops present in Loops.
Definition at line 110 of file ScalarEvolutionNormalization.cpp.
References llvm::SmallPtrSetImpl< PtrType >::count(), Denormalize, and llvm::SCEVAddRecExpr::getLoop().
Referenced by llvm::IVUsers::AddUsersImpl(), and mayUsePostIncMode().
|
inline |
Return the name used for the denormal handling mode used by the the expected names from the denormal-fp-math attribute.
Definition at line 47 of file FloatingPointMode.h.
References IEEE, PositiveZero, and PreserveSign.
| iterator_range<df_iterator<T> > llvm::depth_first | ( | const T & | G | ) |
Definition at line 227 of file DepthFirstIterator.h.
References df_begin(), df_end(), and make_range().
Referenced by llvm::LoopVersioning::annotateInstWithNoAlias(), llvm::VPBlockBase::deleteCFG(), llvm::VPlan::dump(), eliminateLoadsAcrossLoops(), llvm::VPlan::execute(), llvm::IRPosition::getAttrs(), GetCtorAndDtorPriority(), getOModValue(), getStartOrEndSlot(), INITIALIZE_PASS(), isOnlyReachableViaThisEdge(), isUnconditionalBranch(), llvm::MemorySSA::OptimizeUses::optimizeUses(), llvm::LoopAccessLegacyAnalysis::print(), llvm::ScalarEvolution::print(), llvm::safestack::StackColoring::removeAllMarkers(), llvm::GVNHoist::run(), runImpl(), TypeSizeToSizeIndex(), and llvm::LoopBase< BasicBlock, Loop >::verifyLoop().
| iterator_range<df_ext_iterator<T, SetTy> > llvm::depth_first_ext | ( | const T & | G, |
| SetTy & | S | ||
| ) |
Definition at line 249 of file DepthFirstIterator.h.
References df_ext_begin(), df_ext_end(), make_range(), and T.
Referenced by llvm::AbstractDependenceGraphBuilder< DataDependenceGraph >::createAndConnectRootNode(), EliminateUnreachableBlocks(), getFPReg(), isUnconditionalBranch(), llvm::UnreachableBlockElimPass::run(), and llvm::LiveVariables::runOnMachineFunction().
| void llvm::describeFuzzerAggregateOps | ( | std::vector< fuzzerop::OpDescriptor > & | Ops | ) |
Definition at line 79 of file Operations.cpp.
References llvm::fuzzerop::extractValueDescriptor(), and llvm::fuzzerop::insertValueDescriptor().
Referenced by llvm::InjectorIRStrategy::getDefaultOps().
| void llvm::describeFuzzerControlFlowOps | ( | std::vector< fuzzerop::OpDescriptor > & | Ops | ) |
Definition at line 70 of file Operations.cpp.
References llvm::fuzzerop::splitBlockDescriptor().
Referenced by llvm::InjectorIRStrategy::getDefaultOps().
| void llvm::describeFuzzerFloatOps | ( | std::vector< fuzzerop::OpDescriptor > & | Ops | ) |
Definition at line 45 of file Operations.cpp.
References llvm::fuzzerop::binOpDescriptor(), llvm::fuzzerop::cmpOpDescriptor(), llvm::CmpInst::FCMP_FALSE, llvm::CmpInst::FCMP_OEQ, llvm::CmpInst::FCMP_OGE, llvm::CmpInst::FCMP_OGT, llvm::CmpInst::FCMP_OLE, llvm::CmpInst::FCMP_OLT, llvm::CmpInst::FCMP_ONE, llvm::CmpInst::FCMP_ORD, llvm::CmpInst::FCMP_TRUE, llvm::CmpInst::FCMP_UEQ, llvm::CmpInst::FCMP_UGE, llvm::CmpInst::FCMP_UGT, llvm::CmpInst::FCMP_ULE, llvm::CmpInst::FCMP_ULT, llvm::CmpInst::FCMP_UNE, and llvm::CmpInst::FCMP_UNO.
Referenced by llvm::InjectorIRStrategy::getDefaultOps().
| void llvm::describeFuzzerIntOps | ( | std::vector< fuzzerop::OpDescriptor > & | Ops | ) |
Getters for the default sets of operations, per general category.
Definition at line 18 of file Operations.cpp.
References llvm::MCID::Add, llvm::fuzzerop::binOpDescriptor(), llvm::fuzzerop::cmpOpDescriptor(), llvm::CmpInst::ICMP_EQ, llvm::CmpInst::ICMP_NE, llvm::CmpInst::ICMP_SGE, llvm::CmpInst::ICMP_SGT, llvm::CmpInst::ICMP_SLE, llvm::CmpInst::ICMP_SLT, llvm::CmpInst::ICMP_UGE, llvm::CmpInst::ICMP_UGT, llvm::CmpInst::ICMP_ULE, and llvm::CmpInst::ICMP_ULT.
Referenced by llvm::InjectorIRStrategy::getDefaultOps().
| void llvm::describeFuzzerPointerOps | ( | std::vector< fuzzerop::OpDescriptor > & | Ops | ) |
Definition at line 75 of file Operations.cpp.
References llvm::fuzzerop::gepDescriptor().
Referenced by llvm::InjectorIRStrategy::getDefaultOps().
| void llvm::describeFuzzerVectorOps | ( | std::vector< fuzzerop::OpDescriptor > & | Ops | ) |
Definition at line 85 of file Operations.cpp.
References llvm::fuzzerop::extractElementDescriptor(), llvm::fuzzerop::insertElementDescriptor(), and llvm::fuzzerop::shuffleVectorDescriptor().
Referenced by llvm::InjectorIRStrategy::getDefaultOps().
| void llvm::DetatchDeadBlocks | ( | ArrayRef< BasicBlock *> | BBs, |
| SmallVectorImpl< DominatorTree::UpdateType > * | Updates, | ||
| bool | KeepOneInputPHIs = false |
||
| ) |
Replace contents of every block in BBs with single unreachable instruction.
If Updates is specified, collect all necessary DT updates into this vector. If KeepOneInputPHIs is true, one-input Phis in successors of blocks being deleted will be preserved.
Definition at line 54 of file BasicBlockUtils.cpp.
References assert(), llvm::UndefValue::get(), llvm::Value::getType(), I, llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::Value::replaceAllUsesWith(), successors(), and llvm::Value::use_empty().
Referenced by DeleteDeadBlocks(), getInnermostLoopFor(), and llvm::Attributor::run().
| df_iterator<T> llvm::df_begin | ( | const T & | G | ) |
Definition at line 216 of file DepthFirstIterator.h.
References llvm::df_iterator< GraphT, SetType, ExtStorage, GT >::begin().
Referenced by createFalkorMarkStridedAccessesPass(), depth_first(), GetPointerOperand(), getTag(), isSupportedGuardInstruction(), llvm::GraphTraits< PostDominatorTree * >::nodes_begin(), llvm::DomTreeGraphTraitsBase< const VPDomTreeNode, VPDomTreeNode::const_iterator >::nodes_begin(), llvm::GraphTraits< DominatorTree * >::nodes_begin(), and llvm::LoopDataPrefetchPass::run().
| df_iterator<T> llvm::df_end | ( | const T & | G | ) |
Definition at line 221 of file DepthFirstIterator.h.
References llvm::df_iterator< GraphT, SetType, ExtStorage, GT >::end().
Referenced by createFalkorMarkStridedAccessesPass(), depth_first(), GetPointerOperand(), getTag(), isSupportedGuardInstruction(), llvm::GraphTraits< PostDominatorTree * >::nodes_begin(), llvm::GraphTraits< PostDominatorTree * >::nodes_end(), llvm::DomTreeGraphTraitsBase< const VPDomTreeNode, VPDomTreeNode::const_iterator >::nodes_end(), llvm::GraphTraits< DominatorTree * >::nodes_end(), and llvm::LoopDataPrefetchPass::run().
| df_ext_iterator<T, SetTy> llvm::df_ext_begin | ( | const T & | G, |
| SetTy & | S | ||
| ) |
Definition at line 239 of file DepthFirstIterator.h.
References llvm::df_iterator< T, SetTy, true >::begin().
Referenced by AssignProtectedObjSet(), depth_first_ext(), llvm::LiveIntervals::pruneValue(), and llvm::LoopBase< BasicBlock, Loop >::verifyLoop().
| df_ext_iterator<T, SetTy> llvm::df_ext_end | ( | const T & | G, |
| SetTy & | S | ||
| ) |
Definition at line 244 of file DepthFirstIterator.h.
References llvm::df_iterator< T, SetTy, true >::end().
Referenced by AssignProtectedObjSet(), depth_first_ext(), llvm::LiveIntervals::pruneValue(), and llvm::LoopBase< BasicBlock, Loop >::verifyLoop().
| int llvm::DiffFilesWithTolerance | ( | StringRef | NameA, |
| StringRef | NameB, | ||
| double | AbsTol, | ||
| double | RelTol, | ||
| std::string * | Error = nullptr |
||
| ) |
DiffFilesWithTolerance - Compare the two files specified, returning 0 if the files match, 1 if they are different, and 2 if there is a file error.
This function allows you to specify an absolute and relative FP error that is allowed to exist. If you specify a string to fill in for the error option, it will set the string to an error message if an error occurs, or if the files are different.
This function differs from DiffFiles in that you can specify an absolete and relative FP error that is allowed to exist. If you specify a string to fill in for the error option, it will set the string to an error message if an error occurs, allowing the caller to distinguish between a failed diff and a file system error.
Definition at line 179 of file FileUtilities.cpp.
References BackupNumber(), CompareNumbers(), llvm::ErrorOr< T >::get(), llvm::MemoryBuffer::getBufferEnd(), llvm::MemoryBuffer::getBufferSize(), llvm::MemoryBuffer::getBufferStart(), llvm::ErrorOr< T >::getError(), llvm::MemoryBuffer::getFile(), isNumberChar(), and memcmp.
|
static |
Stable LoopInfo Analysis - Build a loop tree using stable iterators so the result does / not depend on use list (block predecessor) order.
Discover a subloop with the specified backedges such that: All blocks within this loop are mapped to this loop or a subloop. And all subloops within this loop have their parent loop set to this loop or a subloop.
Definition at line 418 of file LoopInfoImpl.h.
References llvm::ArrayRef< T >::begin(), llvm::LoopInfoBase< BlockT, LoopT >::changeLoopFor(), children(), llvm::ArrayRef< T >::end(), llvm::LoopInfoBase< BlockT, LoopT >::getLoopFor(), and llvm::DominatorTreeBase< NodeT, IsPostDom >::isReachableFromEntry().
Referenced by llvm::LoopInfoBase< BasicBlock, Loop >::analyze().
| bool llvm::DisplayGraph | ( | StringRef | Filename, |
| bool | wait = true, |
||
| GraphProgram::Name | program = GraphProgram::DOT |
||
| ) |
Definition at line 148 of file GraphWriter.cpp.
References errs(), ExecGraphViewer(), getProgramName(), llvm_unreachable, OutputFilename, and ViewBackground.
Referenced by ViewGraph().
|
static |
Helper function that distributes live range value numbers and the corresponding segments of a master live range LR to a list of newly created live ranges SplitLRs.
VNIClasses maps each value number in LR to 0 meaning it should stay or to 1..N meaning it should go to a specific live range in the SplitLRs array.
Definition at line 26 of file LiveRangeUtils.h.
References assert(), llvm::numbers::e, E, empty(), I, and llvm::VNInfo::id.
Referenced by llvm::ConnectedVNInfoEqClasses::Distribute().
|
inline |
Returns the integer ceil(Numerator / Denominator).
Definition at line 731 of file MathExtras.h.
References alignTo().
Referenced by llvm::msf::bytesToBlocks(), llvm::ARMBaseInstrInfo::extraSizeToPredicateInstructions(), getDepthOfOptCmov(), llvm::msf::getFpmStreamLayout(), llvm::X86TTIImpl::getIntImmCostInst(), and llvm::msf::getNumFpmIntervals().
|
inline |
Returns the integer nearest(Numerator / Denominator).
Definition at line 736 of file MathExtras.h.
Referenced by getLoopEstimatedTripCount().
The Bernstein hash function used by the DWARF accelerator tables.
Definition at line 21 of file DJB.h.
References llvm::StringRef::bytes(), C, caseFoldingDjbHash(), and H.
Referenced by caseFoldingDjbHash(), llvm::AppleAcceleratorTable::equal_range(), llvm::StringMapImpl::FindKey(), llvm::AppleAccelTableData::hash(), and llvm::StringMapImpl::LookupBucketFor().
| int llvm::dlltoolDriverMain | ( | llvm::ArrayRef< const char *> | ArgsArr | ) |
Definition at line 77 of file DlltoolDriver.cpp.
References llvm::object::COFFShortExport::AliasTarget, Arg, llvm::AMDGPU::HSAMD::Kernel::Key::Args, llvm::tgtok::Def, E, errorToErrorCode(), errs(), llvm::object::COFFShortExport::ExtName, llvm::opt::ArgList::filtered(), llvm::opt::InputArgList::getArgString(), getEmulation(), llvm::opt::ArgList::getLastArg(), llvm::opt::ArgList::getLastArgValue(), llvm::opt::Arg::getValue(), llvm::opt::ArgList::hasArg(), llvm::opt::ArgList::hasArgNoClaim(), llvm::COFF::IMAGE_FILE_MACHINE_I386, llvm::COFF::IMAGE_FILE_MACHINE_UNKNOWN, Machine, llvm::object::COFFShortExport::Name, openFile(), outs(), llvm::object::parseCOFFModuleDefinition(), llvm::ArrayRef< T >::slice(), llvm::object::COFFShortExport::SymbolName, llvm::Expected< T >::takeError(), and llvm::object::writeImportLibrary().
|
inline |
This function takes a double and returns the bit equivalent 64-bit integer.
Note that copying doubles around changes the bits of NaNs on some hosts, notably x86, so this routine cannot be used if these bits are needed.
Definition at line 642 of file MathExtras.h.
References llvm::tgtok::Bits.
Referenced by llvm::APInt::doubleToBits(), getInlineImmVal64(), getLit64Encoding(), llvm::AMDGPU::isInlinableLiteral64(), llvm::AMDGPUInstPrinter::printRegOperand(), and llvm::support::endian::write< double >().
| auto llvm::drop_begin | ( | T && | RangeOrContainer, |
| size_t | N | ||
| ) | -> iterator_range<decltype(adl_begin(RangeOrContainer))> |
Return a range covering RangeOrContainer with the first N elements excluded.
Definition at line 199 of file STLExtras.h.
References adl_begin(), adl_end(), make_range(), and N.
Referenced by llvm::Loop::isAnnotatedParallel(), makeFollowupLoopID(), moveAndTeeForMultiUse(), and moveLCSSAPhis().
| void llvm::dropDebugUsers | ( | Instruction & | I | ) |
Remove the debug intrinsic instructions for the given instruction.
Definition at line 2601 of file Local.cpp.
References findDbgUsers().
Referenced by getKnownAlignment(), and hoistAllInstructionsInto().
| void llvm::dump | ( | const SparseBitVector< ElementSize > & | LHS, |
| raw_ostream & | out | ||
| ) |
Definition at line 876 of file SparseBitVector.h.
References llvm::SparseBitVector< ElementSize >::begin(), and llvm::SparseBitVector< ElementSize >::end().
Referenced by llvm::DIE::addChildFront(), llvm::MCAssembler::addFileName(), llvm::DIEAbbrev::AddImplicitConstAttribute(), llvm::GCOVFunction::blocks(), llvm::coro::buildCoroutineFrame(), llvm::pdb::PDBContext::classof(), llvm::DWARFContext::classof(), llvm::ModuleSummaryIndex::collectDefinedGVSummariesPerModule(), llvm::sampleprof::SampleProfileReader::collectFuncsFrom(), computeBranchTargetAndInversion(), llvm::SelectionDAG::DbgLabelEnd(), DeleteTriviallyDeadInstructions(), despeculateCountZeros(), llvm::DWARFUnit::dies(), llvm::orc::ExecutionSession::dispatchMaterialization(), llvm::GCOVBlock::dsts(), llvm::Metadata::dump(), llvm::DWARFContext::dump(), llvm::DWARFDie::dump(), llvm::coverage::CounterMappingContext::dump(), llvm::PBQP::RegAlloc::PBQPRAGraph::dump(), llvm::vfs::RedirectingFileSystem::dump(), llvm::DWARFDebugLoc::DWARFDebugLoc(), llvm::LatencyPriorityQueue::empty(), llvm::PMStack::empty(), llvm::PressureDiff::end(), llvm::MCSection::end(), llvm::AttributeListImpl::end(), llvm::ScheduleDAGInstrs::finalizeSchedule(), llvm::LiveRange::findIndexesLiveAt(), llvm::MemoryAccess::getBlock(), llvm::GCOVFile::getChecksum(), llvm::MachineConstantPool::getConstants(), llvm::sroa::AllocaSlices::getDeadOperands(), llvm::LiveRangeUpdater::getDest(), llvm::orc::JITDylib::getExecutionSession(), llvm::SubtargetFeatures::getFeatures(), llvm::DWARFDebugLine::LineTable::getFileNameByIndex(), llvm::DWARFListTableBase< DWARFDebugRnglist >::getFormat(), llvm::DWARFListTableHeader::getHeaderSize(), getInnermostLoopFor(), llvm::DWARFDebugLine::Prologue::getMaxLineIncrementForSpecialOpcode(), llvm::MemorySSA::getMemoryAccess(), llvm::MachineFunction::getNumBlockIDs(), llvm::MachineRegionInfoPass::getRegionInfo(), llvm::RegionInfoPass::getRegionInfo(), llvm::SDValue::getScalarValueSizeInBits(), llvm::ScheduleDAGMILive::getScheduledTrees(), getStartOrEndSlot(), llvm::VPlan::getVPLoopInfo(), llvm::mca::Scheduler::hadTokenStall(), llvm::DWARFVerifier::handleDebugInfo(), llvm::RegPressureTracker::hasUntiedDef(), INITIALIZE_PASS(), llvm::slpvectorizer::BoUpSLP::isDeleted(), llvm::AttributeList::isEmpty(), llvm::SubMultiClassReference::isInvalid(), llvm::IVUsers::isIVUserOrOperand(), isKnownBaseResult(), isRegOtherThanSPAndFP(), llvm::Loop::isRotatedForm(), isTerminalReg(), llvm::sampleprof::LineLocation::LineLocation(), llvm::opt::ArgList::MakeArgString(), mayUsePostIncMode(), llvm::sampleprof::SampleRecord::merge(), llvm::mca::LSUnitBase::onInstructionIssued(), llvm::SlotIndex::operator bool(), llvm::LiveRange::Segment::operator!=(), llvm::RegPressureDelta::operator!=(), false::IntervalSorter::operator()(), llvm::LiveInterval::operator<(), llvm::PressureChange::operator==(), llvm::mca::WriteRef::operator==(), llvm::OverlapStats::OverlapStats(), llvm::PBQP::RegAlloc::PBQPRAGraph::PBQPRAGraph(), llvm::ARMConstantPoolValue::print(), llvm::mca::ResourceState::releaseBuffer(), llvm::ReadyQueue::remove(), llvm::jitlink::LinkGraph::removeBlock(), llvm::MachineJumpTableInfo::RemoveJumpTable(), llvm::VLIWResourceModel::reserveResources(), llvm::VLIWMachineScheduler::schedule(), llvm::ScheduleDAGMI::schedule(), llvm::ScheduleDAGMILive::schedule(), llvm::coverage::CounterMappingContext::setCounts(), llvm::mca::WriteState::setPRF(), llvm::MachineFrameInfo::setRestorePoint(), llvm::LiveInterval::SubRange::SubRange(), llvm::APInt::tcDecrement(), llvm::sampleprof::ProfileSymbolList::toCompress(), llvm::APFloat::toString(), and llvm::SDNode::value_end().
| void llvm::dumpAmdKernelCode | ( | const amd_kernel_code_t * | C, |
| raw_ostream & | OS, | ||
| const char * | tab | ||
| ) |
Definition at line 106 of file AMDKernelCodeTUtils.cpp.
References printAmdKernelCodeField(), and Size.
Referenced by llvm::AMDGPUTargetAsmStreamer::EmitAMDKernelCodeT().
| void llvm::dumpBytes | ( | ArrayRef< uint8_t > | Bytes, |
| raw_ostream & | OS | ||
| ) |
Convert `Bytes' to a hex string and output to `OS'.
Definition at line 24 of file MCInstPrinter.cpp.
References llvm::MCInstPrinter::~MCInstPrinter().
| LLVM_DUMP_METHOD void llvm::dumpRegSetPressure | ( | ArrayRef< unsigned > | SetPressure, |
| const TargetRegisterInfo * | TRI | ||
| ) |
Definition at line 81 of file RegisterPressure.cpp.
References dbgs(), llvm::numbers::e, llvm::TargetRegisterInfo::getRegPressureSetName(), LLVM_DUMP_METHOD, and llvm::ArrayRef< T >::size().
Referenced by llvm::RegisterPressure::dump(), llvm::RegPressureTracker::dump(), llvm::RegPressureTracker::hasUntiedDef(), llvm::ScheduleDAGMILive::initRegPressure(), and llvm::ScheduleDAGMILive::scheduleMI().
|
static |
Definition at line 83 of file RuntimeDyld.cpp.
References dbgs(), format(), llvm::SectionEntry::getAddress(), llvm::SectionEntry::getLoadAddress(), llvm::SectionEntry::getName(), and llvm::SectionEntry::getSize().
Referenced by llvm::RuntimeDyldImpl::resolveRelocations().
| BasicBlock * llvm::DuplicateInstructionsInSplitBetween | ( | BasicBlock * | BB, |
| BasicBlock * | PredBB, | ||
| Instruction * | StopAt, | ||
| ValueToValueMapTy & | ValueMapping, | ||
| DomTreeUpdater & | DTU | ||
| ) |
Split edge between BB and PredBB and duplicate all non-Phi instructions from BB between its beginning and the StopAt instruction into the split block.
Duplicate non-Phi instructions from the beginning of block up to StopAt instruction into a split block between BB and its predecessor.
Phi nodes are not duplicated, but their uses are handled correctly: we replace them with the uses of corresponding Phi inputs. ValueMapping is used to map the original instructions from BB to their newly-created copies. Returns the split block.
Definition at line 835 of file CloneFunction.cpp.
References llvm::DomTreeUpdater::applyUpdates(), assert(), llvm::BasicBlock::begin(), count(), llvm::DominatorTreeBase< BasicBlock, false >::Delete, dyn_cast(), llvm::numbers::e, llvm::ValueMap< KeyT, ValueT, Config >::end(), llvm::ValueMap< KeyT, ValueT, Config >::find(), llvm::PHINode::getIncomingValueForBlock(), llvm::Value::getName(), llvm::User::getNumOperands(), llvm::User::getOperand(), llvm::BasicBlock::getTerminator(), I, llvm::DominatorTreeBase< BasicBlock, false >::Insert, llvm::Instruction::insertBefore(), llvm::Value::setName(), llvm::User::setOperand(), SplitEdge(), and successors().
Referenced by llvm::InlineFunctionInfo::reset(), splitCallSite(), and llvm::JumpThreadingPass::ThreadGuard().
|
inline |
Definition at line 332 of file Casting.h.
Referenced by llvm::GEPOperator::accumulateConstantOffset(), llvm::GVN::ValueTable::add(), AddAliasScopeMetadata(), addArgumentAttrsFromCallsites(), AddCalls(), AddCombineBUILD_VECTORToVPADDL(), llvm::ConstantPool::addEntry(), addIntrinsicToSummary(), llvm::DataDependenceGraph::addNode(), addNoRecurseAttrsTopDown(), AddRuntimeUnrollDisableMetaData(), llvm::DivergenceAnalysis::addUniformOverride(), addVCallToSet(), adjustForFNeg(), llvm::X86FrameLowering::adjustForHiPEPrologue(), adjustForLTGFR(), adjustForRedundantAnd(), adjustForTestUnderMask(), adjustZeroCmp(), llvm::GlobalsAAResult::alias(), llvm::AliasSet::aliasesUnknownInst(), aliasSameBasePointerGEPs(), allSameBlock(), allUsersAreInFunction(), alwaysAvailable(), llvm::InterleavedAccessInfo::analyzeInterleaving(), llvm::VNCoercion::analyzeLoadFromClobberingMemInst(), llvm::VNCoercion::analyzeLoadFromClobberingStore(), analyzeLoopUnrollCost(), annotateAnyAllocSite(), annotateNonNullAndDereferenceable(), appendSpeculatableOperands(), ApplyX86MaskOn1BitsVec(), areInnerLoopExitPHIsSupported(), llvm::SelectInst::areInvalidOperands(), llvm::SIInstrInfo::areLoadsFromSameBasePtr(), llvm::X86InstrInfo::areLoadsFromSameBasePtr(), areLoopExitPHIsLoopInvariant(), areOuterLoopExitPHIsSupported(), AreSequentialAccesses(), areStridedAccessesIndependent(), llvm::Value::assertModuleIsMaterializedImpl(), atomicSizeSupported(), AVRDAGToDAGISel::select< ISD::STORE >(), llvm::DwarfCFIException::beginFragment(), llvm::WinException::beginFunction(), llvm::BTFDebug::beginFunctionImpl(), llvm::LoopVectorizationLegality::blockNeedsPredication(), llvm::LoopVectorizationCostModel::blockNeedsPredication(), BrPHIToSelect(), llvm::BTFDebug::BTFDebug(), BuildConstantFromSCEV(), llvm::X86TargetLowering::BuildFILD(), llvm::coro::Shape::buildFrom(), BuildSubAggregate(), cacheAnnotationFromMD(), calcArraySize(), calculateByteProvider(), llvm::LoopVectorizationCostModel::calculateRegisterUsage(), calculateSEHStateNumbers(), calculateStateNumbersForInvokes(), llvm::AAResults::callCapturesBefore(), callingConvSupported(), callsShareTOCBase(), llvm::EHStreamer::callToNoUnwindFunction(), canBeCheaplyTransformed(), canEvaluateShifted(), canEvaluateShuffled(), canExpand(), canFoldInAddressingMode(), canFoldIVIncExpr(), llvm::slpvectorizer::BoUpSLP::canMapToVector(), canNarrowShiftAmt(), CannotBeNegativeZero(), cannotBeOrderedLessThanZeroImpl(), canonicalizeBitCastExtElt(), canonicalizeCmpWithConstant(), canonicalizeMetadataForValue(), canonicalizeSaturatedAdd(), canPeel(), CanPropagatePredecessorsForPHIs(), CanProveNotTakenFirstIteration(), canRenameComdat(), canSinkInstructions(), canTrapImpl(), canTRE(), llvm::Evaluator::castCallResultIfNeeded(), llvm::CastInst::castIsValid(), castRequiresQueuePtr(), castToIncrementInst(), CC_Lanai32_VarArg(), CC_MipsO32_FP64(), chainLoadsAndStoresForMemcpy(), cheapToScalarize(), CheckAndImm(), checkBoolTestSetCCCombine(), checkForMustTailInVarArgFn(), CheckInteger(), CheckOrImm(), checkWFAlloc(), checkWFDealloc(), checkWFRetconPrototype(), classifyEHPersonality(), llvm::AArch64Subtarget::classifyGlobalFunctionReference(), llvm::WasmYAML::DylinkSection::classof(), llvm::WasmYAML::NameSection::classof(), llvm::WasmYAML::LinkingSection::classof(), llvm::WasmYAML::ProducersSection::classof(), llvm::WasmYAML::TargetFeaturesSection::classof(), Cleanup(), CleanupPointerRootUsers(), clearAssumptionsOfUsers(), ClearSubclassDataAfterReassociation(), CloneAliasScopeMetadata(), CloneAndPruneIntoFromInst(), cloneConstantExprWithNewAddressSpace(), llvm::JumpThreadingPass::CloneInstructions(), cloneLoopBlocks(), CloneNodeWithValues(), cloneOrBuildODR(), llvm::DILocation::cloneWithDiscriminator(), llvm::FunctionComparator::cmpConstants(), llvm::FunctionComparator::cmpTypes(), llvm::FunctionComparator::cmpValues(), llvm::CodeExtractorAnalysisCache::CodeExtractorAnalysisCache(), CollectAddOperandsWithScales(), collectCallSiteParameters(), collectHomogenousInstGraphLoopInvariants(), collectInsertionElements(), llvm::LoopVectorizationPlanner::collectTriviallyDeadInstructions(), collectValuesToDemote(), combineAddOrSubToADCOrSBB(), combineADDToADDZE(), CombineANDShift(), CombineBaseUpdate(), combineBVOfConsecutiveLoads(), combineBVOfVecSExt(), combineCCMask(), combineConcatVectorOfExtracts(), combineExtractVectorElt(), combineFAndFNotToFAndn(), combineLoadToOperationType(), combineMul(), combineOrShiftToFunnelShift(), combineSetCCAtomicArith(), combineShiftAnd1ToBitTest(), combineShiftLeft(), combineShiftOfShiftedLogic(), combineShiftRightLogical(), combineShuffleOfScalars(), combineShuffleOfSplatVal(), CombineVMOVDRRCandidateWithVecOp(), llvm::InstCombiner::commonCastTransforms(), llvm::DivergenceAnalysis::compute(), computeBytesPoppedByCalleeForSRet(), computeFunctionSummary(), ComputeImportForModule(), llvm::SelectionDAG::computeKnownBits(), llvm::AMDGPUTargetLowering::computeKnownBitsForTargetNode(), computeKnownBitsFromAssume(), computeKnownBitsFromOperator(), computeLiveOutSeed(), llvm::slpvectorizer::BoUpSLP::computeMinimumValueSizes(), ComputeMultiple(), llvm::SelectionDAG::ComputeNumSignBits(), llvm::AMDGPUTargetLowering::ComputeNumSignBitsForTargetNode(), computeNumSignBitsVectorConstant(), computePointerICmp(), llvm::IndexedReference::computeRefCost(), computeUnlikelySuccessors(), computeUnsignedMinMaxValuesFromKnownBits(), llvm::JumpThreadingPass::ComputeValueKnownInPredecessorsImpl(), concatenateTwoVectors(), ConnectEpilog(), ConstantBuildVector(), ConstantFoldExtractElementInstruction(), ConstantFoldGetElementPtr(), ConstantFoldInsertElementInstruction(), ConstantFoldInstruction(), ConstantFoldLoadFromConstPtr(), ConstantFoldLoadThroughBitcast(), ConstHasGlobalValuePredicate(), contains(), containsUndefs(), convert_i1_to_i8(), ConvertDoubleToBytes(), llvm::TypedInit::convertInitializerBitRange(), llvm::TypedInit::convertInitListSlice(), llvm::ScalarEvolution::convertSCEVToAddRecWithPredicates(), ConvertToSInt(), llvm::GlobalObject::copyMetadata(), copyMustTailReturn(), countToEliminateCompares(), createAMDGPUFunctionInliningPass(), createAMDGPUPrintfRuntimeBinding(), createARCISelDag(), createCallInst(), createCloneDeclaration(), createCodeGenPreparePass(), createDeadArgHackingPass(), llvm::AbstractDependenceGraphBuilder< DataDependenceGraph >::createDefUseEdges(), createDwarfEHPass(), llvm::VPRecipeBuilder::createEdgeMask(), createFalkorMarkStridedAccessesPass(), createFFSIntrinsic(), createGlobalFwdRef(), createLoopDataPrefetchPass(), createMemCpyLoopUnknownSize(), createObjCARCOptPass(), llvm::OpenMPIRBuilder::CreateParallel(), createPowWithIntegerExponent(), createPPCMCAsmInfo(), CreatePrologue(), createR600ISelDag(), createReplacementInstr(), createRISCVMCCodeEmitter(), createSampleProfileLoaderPass(), createScalarizerPass(), createSeparateConstOffsetFromGEPPass(), createShadowStackGCLoweringPass(), llvm::IRBuilder< TargetFolder >::CreateUnreachable(), createXCoreISelDag(), DecodeFixedType(), decomposeSimpleLinearExpr(), deleteDeadLoop(), dependencies(), despeculateCountZeros(), detectAVGPattern(), detectPMADDUBSW(), detectPopcountIdiom(), detectShiftUntilZeroIdiom(), llvm::HexagonDAGToDAGISel::DetectUseSxtw(), llvm::ModuleSummaryIndex::discoverNodes(), llvm::NVPTXAsmPrinter::doFinalization(), llvm::AsmPrinter::doFinalization(), DoInitialMatch(), llvm::DominatorTree::dominates(), DominatesMergePoint(), llvm::Value::DoPHITranslation(), doPromotion(), llvm::GVNExpression::Expression::dump(), llvm::vfs::RedirectingFileSystem::dumpEntry(), dumpUUID(), llvm::JumpThreadingPass::DuplicateCondBranchOnPHIIntoPred(), DuplicateInstructionsInSplitBetween(), llvm::mdconst::dyn_extract(), llvm::mdconst::dyn_extract_or_null(), eliminateDeadStores(), EliminateDuplicatePHINodes(), eliminateNoopStore(), eliminateSwiftError(), EmitCmp(), llvm::WebAssemblyAsmPrinter::EmitEndOfAsmFile(), llvm::XCoreTargetLowering::EmitInstrWithCustomInserter(), llvm::AsmPrinter::EmitSpecialLLVMGlobal(), llvm::BPFSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::HexagonSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::LanaiSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::ARMSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::AArch64SelectionDAGInfo::EmitTargetCodeForMemset(), llvm::SystemZSelectionDAGInfo::EmitTargetCodeForMemset(), llvm::X86SelectionDAGInfo::EmitTargetCodeForMemset(), EmitVectorComparison(), llvm::AsmPrinter::emitXRayTable(), llvm::ARMAsmPrinter::EmitXXStructor(), llvm::BTFDebug::endFunctionImpl(), ensurePromotedGV(), EqualityPropUnSafe(), llvm::slpvectorizer::BoUpSLP::eraseInstructions(), llvm::SetTheory::evaluate(), EvaluateConstantChrecAtConstant(), EvaluateExpression(), evaluateFCmpRelation(), llvm::Evaluator::EvaluateFunction(), evaluateGEPOffsetExpression(), evaluateICmpRelation(), Expand64BitShift(), expandBounds(), expandDivision(), llvm::ARMTargetLowering::ExpandInlineAsm(), llvm::X86TargetLowering::ExpandInlineAsm(), expandRemainder(), llvm::SCEVExpander::expandUnionPredicate(), ExposePointerBase(), llvm::AlignmentFromAssumptionsPass::extractAlignmentInfo(), extractBooleanFlip(), ExtractConstantBytes(), ExtractEquivalentCondition(), extractMallocCall(), llvm::Instruction::extractProfMetadata(), llvm::Instruction::extractProfTotalWeight(), ExtractTypeInfo(), extractValues(), llvm::MachObjectWriter::findAliasedSymbol(), FindAllMemoryUses(), findArgumentCopyElisionCandidates(), findDemandedEltsBySingleUser(), findDevirtualizableCallsForTypeCheckedLoad(), findFuncPointers(), findIBRPredecessor(), findInitTrampoline(), findInitTrampolineFromAlloca(), findInnerReductionPhi(), llvm::CodeExtractor::findInputsOutputs(), findMemSDNode(), findOptionMDForLoopID(), llvm::CodeExtractor::findOrCreateBlockForHoisting(), FindPHIForConditionForwarding(), FindPredecessorAutoreleaseWithSafePath(), findProfitablePHIs(), findRefEdges(), findSafeStoreForStoreStrongContraction(), findTRECandidate(), llvm::DwarfCompileUnit::finishEntityDefinition(), FixedPointIntrinsicToOpcode(), llvm::AMDGPULibCalls::fold(), llvm::BinOpInit::Fold(), llvm::TernOpInit::Fold(), foldAddSubBoolOfMaskedVal(), foldAddSubMasked1(), foldAndOrOfEqualityCmpsWithConstants(), FoldCondBranchOnPHI(), llvm::SelectionDAG::FoldConstantArithmetic(), llvm::SelectionDAG::foldConstantFPMath(), foldConstantInsEltIntoShuffle(), llvm::SelectionDAG::FoldConstantVectorArithmetic(), foldCtpop(), foldCttzCtlz(), foldICmpBitCast(), foldICmpWithLowBitMaskedVal(), foldICmpWithZextOrSext(), foldIdentityPaddedShuffles(), foldInsEltIntoIdentityShuffle(), foldInsEltIntoSplat(), foldInsSequenceIntoSplat(), FoldIntToFPToInt(), foldLogicCastConstant(), foldLogOpOfMaskedICmps(), foldLogOpOfMaskedICmps_NotAllZeros_BMask_Mixed(), foldMaskedShiftToBEXTR(), foldOperationIntoPhiValue(), foldOperationIntoSelectOperand(), llvm::InstCombiner::FoldShiftByConstant(), foldShiftIntoShiftInAnotherHandOfAndInICmp(), foldShiftOfShiftedLogic(), llvm::SelectionDAG::FoldSymbolOffset(), FoldTwoEntryPHINode(), foldUnsignedUnderflowCheck(), foldVectorXorShiftIntoCmp(), followLCSSA(), forceRenaming(), forEachUser(), llvm::ScalarEvolution::forgetValue(), llvm::StackSafetyInfo::FunctionInfo::FunctionInfo(), generateLoopLatchCheck(), GenerateSignBits(), GEPToVectorIndex(), llvm::GlobalValue::getAbsoluteSymbolRange(), getAddressAccessSCEV(), getAL(), getAllocaSizeInBytes(), llvm::AllocaInst::getAllocationSizeInBits(), llvm::IRTranslator::getAnalysisUsage(), getARClassRegisterMask(), getArrayElements(), getAsNonOpaqueConstant(), getAssociatedSymbol(), llvm::IRPosition::getAttrs(), getAVX2GatherNode(), llvm::GlobalIndirectSymbol::getBaseObject(), llvm::DebugHandlerBase::getBaseTypeSize(), getBinOpsForFactorization(), getBlockName(), getBoundsCheckCond(), getBranchCondString(), getBranchInsertPoint(), llvm::InnerLoopVectorizer::getBroadcastInstrs(), getBuildPairElt(), llvm::CallSiteBase< Function, BasicBlock, Value, User, Use, Instruction, CallInst, InvokeInst, CallBrInst, User::op_iterator >::getCalledFunction(), llvm::StatepointBase< Function, Instruction, Value, CallBase >::getCalledFunction(), getCalledFunction(), llvm::AbstractCallSite::getCalledFunction(), llvm::Evaluator::getCalleeWithFormalArgs(), llvm::Loop::LoopBounds::getCanonicalPredicate(), getCastsForInductionPHI(), getChainID(), getCommonReturnValue(), getComparePred(), getConstantAt(), getConstantDataArrayInfo(), getConstantEvolvingPHI(), getConstantEvolvingPHIOperands(), GetConstantInt(), getConstantPart(), llvm::TargetTransformInfoImplBase::getConstantStrideStep(), llvm::ExecutionEngine::getConstantValue(), llvm::InductionDescriptor::getConstIntStepValue(), getContiguousRangeOfSetBits(), llvm::ScalarEvolution::getCouldNotCompute(), GetCtorAndDtorPriority(), llvm::ListInit::getElementAsRecord(), getExactSDiv(), llvm::TargetLoweringObjectFileELF::getExplicitSectionGlobal(), getExtendTypeForNode(), getExtractIndex(), getFalkorUnrollingPreferences(), getFlippedStrictnessPredicateAndConstant(), getFromRangeMetadata(), getGatherNode(), llvm::X86TTIImpl::getGatherScatterOpCost(), llvm::TargetTransformInfoImplCRTPBase< AMDGPUTTIImpl >::getGEPCost(), getGEPSmallConstantIntOffsetV(), getGlobalVariableI32(), GetIfCondition(), getIndexedTypeInternal(), getInductionVariable(), llvm::Loop::getInductionVariable(), llvm::CoroIdInst::getInfo(), getInitializer(), getInsertPointForUses(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getInterleavedMemoryOpCost(), getIntOperandFromRegisterString(), getIntToFPVal(), llvm::MemoryDependenceResults::getInvariantGroupPointerDependency(), getIPMConversion(), llvm::SCEVExpander::getIVIncOperand(), getKnownConstant(), getKnownUndefForVectorBinop(), llvm::BasicBlock::getLandingPadInst(), getLit64Encoding(), getLoopEstimatedTripCount(), llvm::Loop::getLoopGuardBranch(), getLoopPhiForCounter(), llvm::HexagonTargetObjectFile::getLutUsedFunction(), getMaskedICmpType(), llvm::X86TTIImpl::getMaskedMemoryOpCost(), getMaxBackedgeTakenCount(), getMaxPointerSize(), llvm::lto::LTO::getMaxTasks(), getMemCmpLoad(), llvm::SelectionDAG::getMemcpy(), llvm::ARMTTIImpl::getMemcpyCost(), getMemcpyLoadsAndStores(), llvm::SelectionDAG::getMemmove(), getMemmoveLoadsAndStores(), llvm::SystemZTTIImpl::getMemoryOpCost(), llvm::SelectionDAG::getMemset(), getMemSetPatternValue(), getMemsetStores(), getMetadataTypeOrder(), getMinFromExprs(), getMinVisibility(), getMOVL(), llvm::ScalarEvolution::getMulExpr(), llvm::Mangler::getNameWithPrefix(), getNaturalGEPRecursively(), getNegatibleInsts(), getNegativeIsTrueBoolVec(), llvm::SelectionDAG::getNode(), llvm::DDGBuilder::getNodesInPiBlock(), getNoopInput(), getNormalLoadInput(), getOffsetFromIndex(), getOffsetFromIndices(), getOneTrueElt(), getOpenCLAlignment(), llvm::DwarfCompileUnit::getOrCreateGlobalVariableDIE(), llvm::AArch64TTIImpl::getOrCreateResultFromMemIntrinsic(), getOtherIncomingValue(), llvm::AArch64InstrInfo::getOutliningType(), getParentPad(), getPermuteMask(), llvm::memoryaccess_def_iterator_base< MemoryAccess >::getPhiArgBlock(), GetPointerOperand(), llvm::HexagonTargetLowering::getPostIndexedAddressParts(), llvm::ARMTargetLowering::getPostIndexedAddressParts(), getPowerOf2Factor(), getPredicateResult(), getPrefetchNode(), getPrefixes(), llvm::NVPTXTargetLowering::getPrototype(), getPtrStride(), GetQuadraticEquation(), getQualifiedNameComponents(), getRangeForAffineARHelper(), getRecurrenceVar(), getRelevantOperands(), llvm::StatepointBase< Function, Instruction, Value, CallBase >::getRelocates(), llvm::objcarc::getreturnRVOperand(), getScalarIntrinsicDeclaration(), getScatterNode(), getShuffleAndOtherOprd(), getSignature(), llvm::MemoryDependenceResults::getSimplePointerDependencyFrom(), llvm::ScalarEvolution::getSmallConstantMaxTripCount(), llvm::ScalarEvolution::getSmallConstantTripCount(), llvm::ScalarEvolution::getSmallConstantTripMultiple(), getSPDenormModeValue(), llvm::slpvectorizer::BoUpSLP::getSpillCost(), getStrideFromPointer(), getSubVectorSrc(), getSuccPad(), getSummaryFromMD(), getSymbolValue(), getTargetConstantBitsFromNode(), getTargetConstantFromNode(), llvm::HexagonTargetLowering::getTargetNodeName(), llvm::BasicBlock::getTerminatingDeoptimizeCall(), llvm::BasicBlock::getTerminatingMustTailCall(), getTestBitOperand(), llvm::GCNTTIImpl::getTgtMemIntrinsic(), llvm::SITargetLowering::getTgtMemIntrinsic(), getTrueOrFalseValue(), getTypePartition(), llvm::ScalarEvolution::getUDivExactExpr(), llvm::ScalarEvolution::getUDivExpr(), getUnderlyingArgRegs(), getUniformBase(), getUniqueCastUse(), llvm::AMDGPUTTIImpl::getUnrollingPreferences(), GetUnrollMetadata(), getUnwindDestToken(), getUnwindDestTokenHelper(), llvm::PPCTTIImpl::getUserCost(), llvm::HexagonTTIImpl::getUserCost(), llvm::X86TTIImpl::getUserCost(), llvm::GCNTTIImpl::getUserCost(), getVal(), getValidMaximumShiftAmountConstant(), getValidMinimumShiftAmountConstant(), getValueFromConditionImpl(), getVCmpInst(), getVectorCompareInfo(), getVectorType(), getVFSEntries(), getVPTESTMOpc(), getVShiftImm(), llvm::ScalarEvolution::getWrapPredicate(), llvm::GlobalsMetadata::GlobalsMetadata(), GlobalWasGeneratedByCompiler(), handleBrSelExpect(), HandleCallsInBlockInlinedThroughInvoke(), HandleInlinedEHPad(), handlePhiDef(), handleSwitchExpect(), llvm::Function::hasAddressTaken(), HasAnyUnrollPragma(), hasChangeableCC(), hasComputableBounds(), hasConcreteDefImpl(), hasConflictingReferenceFlags(), llvm::AMDGPUTargetLowering::hasDefinedInitializer(), hasNoSignedWrap(), hasNoUnsignedWrap(), hasOnlyOneNonZeroIndex(), hasOnlyUniformBranches(), hasProfileData(), hasReturnsTwiceAttr(), hasSameExtUse(), llvm::ARMConstantPoolConstant::hasSameValue(), llvm::ARMConstantPoolSymbol::hasSameValue(), llvm::ARMConstantPoolMBB::hasSameValue(), hasSingleUsesFromRoot(), llvm::IndexedReference::hasSpacialReuse(), hasStoreUsersOnly(), llvm::FastISel::hasTrivialKill(), hasUndefContents(), hasUsesOutsideLoop(), hasZeroSignBit(), hoistInsEltConst(), HoistThenElseCodeToIf(), llvm::SCEVEqualPredicate::implies(), llvm::SCEVWrapPredicate::implies(), incDecVectorConstant(), incrementLoc(), llvm::CompositeType::indexValid(), INITIALIZE_PASS(), InlineFunction(), llvm::DivergenceAnalysis::inRegion(), llvm::RuntimePointerChecking::insert(), InsertBitToMaskVector(), insertDAGNode(), insertLifetimeMarkersSurroundingCall(), insertNoDuplicates(), insertParsePoints(), insertRelocationStores(), InsertRootInitializers(), insertSinCosCall(), insertVector(), llvm::BTFDebug::InstLower(), llvm::SSAUpdaterTraits< SSAUpdater >::InstrIsPHI(), instructionClobbersQuery(), InstructionDereferencesPointer(), instrumentMaskedLoadOrStore(), llvm::orc::IRMaterializationUnit::IRMaterializationUnit(), llvm::GlobalValue::isAbsoluteSymbolRef(), isAddOfNonZero(), isAllConstantBuildVector(), isAllOnesConstant(), isAnyConstantBuildVector(), isBLACompatibleAddress(), isBSwapHWordElement(), isBytewiseValue(), isCalleeLoad(), isCallPromotable(), IsCallReturnTwice(), llvm::LoopVectorizationLegality::isCastedInductionVariable(), isChainSelectCmpBranch(), isClampZeroToOne(), llvm::RecurrenceDescriptor::isConditionalRdxPattern(), isConstant(), isConstantIntVector(), IsConstantOffsetFromGlobal(), IsConstantOne(), isConstantOrConstantVector(), llvm::ISD::isConstantSplatVector(), llvm::Constant::isConstantUsed(), llvm::TargetLowering::isConstFalseVal(), isContiguous(), IsCPSRDead< MCInst >(), IsDecrement(), llvm::slpvectorizer::BoUpSLP::isDeleted(), isDereferenceableAndAlignedInLoop(), llvm::RISCVTargetLowering::isDesirableToCommuteWithShift(), isDirectCall(), isEmptyFunction(), isEmptyXXStructor(), llvm::DenseMapInfo< VTableSlotSummary >::isEqual(), isEqualImpl(), isExtendedBUILD_VECTOR(), llvm::RecurrenceDescriptor::isFirstOrderRecurrence(), isFormingBranchFromSelectProfitable(), llvm::InductionDescriptor::isFPInductionPHI(), isFreeCall(), isFuncOrArgAttr(), isGEPBasedOnPointerToString(), llvm::ConstantExpr::isGEPWithNoNotionalOverIndexing(), llvm::HexagonTargetObjectFile::isGlobalInSmallSection(), llvm::RISCVELFTargetObjectFile::isGlobalInSmallSection(), llvm::LanaiTargetObjectFile::isGlobalInSmallSection(), llvm::MipsTargetObjectFile::IsGlobalInSmallSection(), isHighCostExpansion(), isIFunc(), isIgnorableInst(), isImageOrSamplerVal(), llvm::X86Operand::isImmSExti16i8(), llvm::X86Operand::isImmSExti32i8(), llvm::X86Operand::isImmSExti64i32(), llvm::X86Operand::isImmSExti64i8(), llvm::X86Operand::isImmUnsignedi4(), llvm::X86Operand::isImmUnsignedi8(), isImpliedCondition(), IsIncrementNUW(), llvm::InductionDescriptor::isInductionPHI(), isInlineViable(), isInTailCallPosition(), isIntegerLoopHeaderPHI(), isIntrinsicCall(), isKeyValuePair(), isKnownNeverInfinity(), isKnownNeverNaN(), isKnownNonZeroFromAssume(), isKnownPredicateExtendIdiom(), IsKnownPredicateViaAddRecStart(), isKnownTypeIdMember(), isLegalMaskCompare(), llvm::Instruction::isLifetimeStartOrEnd(), isLoadConditional(), isLoadInvariantInLoop(), isLoadOrStore(), isLocallyOpenedFile(), llvm::ScalarEvolution::isLoopBackedgeGuardedByCond(), isLoopCounter(), llvm::ScalarEvolution::isLoopEntryGuardedByCond(), isLoopExitTestBasedOn(), isLoopIncrement(), llvm::ScalarEvolution::isLoopInvariantPredicate(), isLowerSaturatingConditional(), llvm::AArch64TargetLowering::isMaskAndCmp0FoldingBeneficial(), IsMasked(), isMatchingOrAlias(), isMathLibCallNoop(), isMemOPCandidate(), IsMinMaxConsistingOf(), llvm::RecurrenceDescriptor::isMinMaxSelectCmpPattern(), isMulPowOf2(), isNaturalMemoryOperand(), llvm::SCEV::isNonConstantNegative(), isNonEscapingGlobalNoAliasWithLoad(), llvm::DataLayout::isNonIntegralPointerType(), llvm::ISD::isNormalLoad(), llvm::ISD::isNormalStore(), isNoWrapAddRec(), isNullConstant(), isNullFPConstant(), isObjectDereferencedInBlock(), isObjectSizeLessThanOrEq(), isOneConstant(), isOneDimensionalArray(), isOneOf(), isOnlyCopiedFromConstantGlobal(), isOnlyReachableViaThisEdge(), llvm::LoopVectorizationCostModel::isOptimizableIVTruncate(), llvm::SelectionDAGISel::isOrEquivalentToAdd(), isPCRel32Branch(), isPerfectIncrement(), isPointerBitcastEqualTo(), isPointerOffset(), isPointerValueDeadOnEntryToFunction(), llvm::PHITransAddr::IsPotentiallyPHITranslatable(), llvm::objcarc::IsPotentialRetainableObjPtr(), isPowerOf2Constant(), isProfitableChain(), isProfitableForVectorization(), isPromotedInstructionLegal(), isPromotedResultSafe(), llvm::DominatorTree::isReachableFromEntry(), isReassociableOp(), isReInterleaveMask(), isRelocScattered(), isRemainderZero(), isReportingError(), isReturnNonNull(), isSafeAndProfitableToSinkLoad(), isSafeAndProfitableToSpeculateAroundPHI(), isSafePHIToSpeculate(), isSafeSelectToSpeculate(), isSafeSROAElementUse(), isSafeSROAGEP(), isSafeToExecuteUnconditionally(), isSafeToMoveBefore(), isSafeToSpeculatePHIUsers(), isSafeToSpeculateStore(), isSafeToSpeculativelyExecute(), isSafeToTruncateWideIVType(), isSameCompare(), isSameUnderlyingObjectInLoop(), isSetCC(), isSExtLoad(), isShuffle(), isShuffleEquivalent(), llvm::PPCInstrInfo::isSignOrZeroExtended(), isSimpleCastedPHI(), isSimpleEnoughPointerToCommit(), isSimpleIVUser(), isSimpleShift(), llvm::SelectionDAG::isSplatValue(), llvm::FullDependence::isSplitable(), isStackPtrRelative(), isStrideMul(), isSupportedGuardInstruction(), llvm::Value::isSwiftError(), isTargetConstant(), isTypeCongruent(), isUnconditionalBranch(), isUndefShift(), llvm::LoopVectorizationLegality::isUniform(), isUniformLoop(), llvm::AMDGPUInstrInfo::isUniformMMO(), llvm::Value::isUsedInBasicBlock(), llvm::Instruction::isUsedOutsideOfBlock(), llvm::ShuffleVectorInst::isValidOperands(), isVectorAllOnes(), isVectorReductionOp(), isVeryLikelyToDeopt(), llvm::symbolize::SymbolizableObjectFile::isWin32Module(), isWorthFoldingADDlow(), isWorthFoldingSHL(), isZero(), isZeroLengthArray(), IVUseShouldUsePostIncValue(), llvm::LibCallSimplifier::LibCallSimplifier(), likeBitCastFromVector(), LLVMIsATerminatorInst(), localAllocaNeedsStackSave(), llvm::PredicateInfoClasses::ValueDFS_Compare::localComesBefore(), log2(), lookThroughCast(), lowerAddrSpaceCast(), llvm::AVRTargetLowering::LowerAsmOperandForConstraint(), llvm::ARMTargetLowering::LowerAsmOperandForConstraint(), llvm::PPCTargetLowering::LowerAsmOperandForConstraint(), llvm::HexagonTargetLowering::LowerBITCAST(), llvm::HexagonTargetLowering::LowerBUILD_VECTOR(), LowerBUILD_VECTOR_i1(), LowerBUILD_VECTORAsVariablePermute(), llvm::NVPTXTargetLowering::LowerCall(), llvm::AsmPrinter::lowerConstant(), lowerConstantIntrinsics(), llvm::HexagonTargetLowering::LowerDYNAMIC_STACKALLOC(), lowerExpectIntrinsic(), LowerF128Load(), LowerF128Store(), llvm::SITargetLowering::LowerFormalArguments(), LowerINTRINSIC_W_CHAIN(), lowerLoadRelative(), llvm::LanaiTargetLowering::LowerMUL(), LowerMUL(), llvm::HexagonTargetLowering::LowerSETCC(), LowerShift(), lowerShuffleAsBroadcast(), llvm::IntrinsicLowering::LowerToByteSwap(), llvm::HexagonTargetLowering::LowerUAddSubO(), LowerXOR(), maintainNoSignedWrap(), makeBitReverse(), llvm::LTOModule::makeBuffer(), makePostTransformationMetadata(), mapBinOpcode(), MarkBlocksLiveIn(), MarkEHGuard(), MarkEHRegistrationNode(), markTails(), maskIsAllOneOrUndef(), maskIsAllZeroOrUndef(), maskMatters(), llvm::PatternMatch::cst_pred_ty< Predicate >::match(), llvm::PatternMatch::cstfp_pred_ty< Predicate >::match(), llvm::PatternMatch::is_zero::match(), llvm::PatternMatch::specific_intval::match(), llvm::PatternMatch::specific_bbval::match(), llvm::PatternMatch::FNeg_match< Op_t >::match(), llvm::PatternMatch::MaxMin_match< CmpInst_t, LHS_t, RHS_t, Pred_t, Commutable >::match(), MatchBinaryOp(), llvm::ISD::matchBinaryPredicate(), llvm::SelectionDAG::matchBinOpReduction(), MatchCoprocessorOperandName(), MatchingStackOffset(), matchIntrinsicType(), MatchNotExpr(), matchPairwiseReduction(), matchPairwiseReductionAtLevel(), matchPMADDWD(), matchPMADDWD_2(), matchRegisterNameHelper(), matchSelectPattern(), matchSVEPredicateVectorRegName(), llvm::ISD::matchUnaryPredicate(), matchVectorSplittingReduction(), llvm::gvn::AvailableValueInBlock::MaterializeAdjustedValue(), maybeSetDSOLocal(), mayDivideByZero(), mayLoopAccessLocation(), mayTailCallThisCC(), llvm::WebAssembly::mayThrow(), mayUseP9Setb(), mayUsePostIncMode(), llvm::LoopVectorizationCostModel::memoryInstructionCanBeWidened(), llvm::MemorySSAWalker::MemorySSAWalker(), MergeAliasResults(), MergeBlockIntoPredecessor(), mergeCleanupPad(), mergeEmptyReturnBlocks(), mergeInlinedArrayAllocas(), MergeInputChains(), minAPInt(), minMaxOpcToMin3Max3Opc(), moveLCSSAPhis(), llvm::LoopInfo::movementPreservesLCSSAForm(), moveUp(), narrowExtractedVectorBinOp(), narrowExtractedVectorLoad(), llvm::Constant::needsRelocation(), false::next_type(), normalizePredicate(), numVectorEltsOrZero(), okayForPHIOfOps(), omitCheckForZeroBeforeMulWithOverflowInternal(), onlyUsedByLifetimeMarkers(), llvm::vfs::RedirectingFileSystem::openFileForRead(), llvm::orc::CtorDtorIterator::operator*(), llvm::generic_gep_type_iterator< ItTy >::operator++(), llvm::BasicBlock::phi_iterator_impl< PHINodeT, BBIteratorT >::operator++(), llvm::LibCallSimplifier::optimizeCall(), optimizeDoubleFP(), OptimizeEmptyGlobalCXXDtors(), llvm::slpvectorizer::BoUpSLP::optimizeGatherSequence(), OptimizeGlobalAddressOfMalloc(), OptimizeGlobalAliases(), optimizeMemCmpConstantSize(), llvm::MemorySSA::OptimizeUses::OptimizeUses(), llvm::SymbolRewriter::RewriteMapParser::parse(), llvm::vfs::RedirectingFileSystemParser::parse(), llvm::TargetLowering::ParseConstraints(), parseGlobalValue(), parsePredicateConstraint(), llvm::remarks::YAMLRemarkParser::parseRemark(), parseWidenableBranch(), passingValueIsAlwaysUndefined(), patchAndReplaceAllUsesWith(), patchReplacementInstruction(), peelLoop(), performANDCombine(), PerformANDCombine(), PerformBFICombine(), llvm::ARMTargetLowering::PerformBRCONDCombine(), llvm::ARMTargetLowering::PerformCMOVCombine(), performCMovFPCombine(), llvm::ARMTargetLowering::PerformCMOVToBFICombine(), llvm::R600TargetLowering::PerformDAGCombine(), llvm::AMDGPUTargetLowering::PerformDAGCombine(), performDSPShiftCombine(), performGlobalAddressCombine(), performMaskedAtomicOp(), PerformMULCombine(), PerformORCombine(), PerformORCombineToBFI(), performPostLD1Combine(), llvm::AMDGPUTargetLowering::performRcpCombine(), performSELECTCombine(), PerformShiftCombine(), llvm::AMDGPUTargetLowering::performShlCombine(), PerformSHLSimplify(), llvm::AMDGPUTargetLowering::performSraCombine(), performSRACombine(), llvm::AMDGPUTargetLowering::performSrlCombine(), PerformVDUPCombine(), llvm::BasicBlock::phis(), llvm::GVN::ValueTable::phiTranslate(), llvm::PHITransAddr::PHITranslateWithInsertion(), pickOpcodeForVT(), PointerMayBeCaptured(), possiblyDemandedEltsInMask(), postDominates(), llvm::MemoryDepChecker::Dependence::print(), llvm::MachineInstr::print(), llvm::PredicatedScalarEvolution::print(), llvm::AArch64InstPrinter::printAlignedLabel(), printExpr(), printMetadataImpl(), llvm::X86InstPrinterCommon::printPCRelImm(), processAnd(), llvm::JumpThreadingPass::ProcessBlock(), processCallSite(), processCmp(), processDbgDeclares(), llvm::DebugInfoFinder::processDeclare(), processGlobal(), llvm::JumpThreadingPass::ProcessImpliedCondition(), processPHI(), processSelect(), processUGT_ADDCST_ADD(), processUMulZExtIdiom(), llvm::DebugInfoFinder::processValue(), promoteExtBeforeAdd(), promoteLoopAccessesToScalars(), promoteSingleBlockAlloca(), promoteToConstantPool(), PropagateConstantReturn(), propagateIRFlags(), propagateMetadata(), PropagateParallelLoopAccessMetadata(), PushArgMD(), PushDefUseChildren(), QualifiedNameOfImplicitName(), llvm::AMDGPUPALMetadata::readFromIR(), recognizeBSwapOrBitReverseIdiom(), recordCondition(), recoverFramePointer(), RecursivelyDeleteTriviallyDeadInstructions(), RefineErrorLoc(), llvm::DemandedBitsWrapperPass::releaseMemory(), rematerializeLiveValues(), llvm::safestack::StackColoring::removeAllMarkers(), removeBitcastsFromLoadStoreOnMinMax(), llvm::Constant::removeDeadConstantUsers(), removeDeadUsersOfConstant(), removeEmptyCleanup(), RemoveInstInputs(), llvm::BasicBlock::removePredecessor(), ReorganizeVector(), replaceAllUsesOfWithIn(), replaceConditionalBranchesOnConstant(), llvm::SCEVExpander::replaceCongruentIVs(), replaceConstantExprOp(), replaceCreatedSSACopys(), replaceExtractElements(), replaceLoopInvariantUses(), llvm::LoopInfo::replacementPreservesLCSSAForm(), llvm::XCoreTargetLowering::ReplaceNodeResults(), llvm::BasicBlock::replacePhiUsesWith(), replacePrepare(), replaceShuffleOfInsert(), replaceSplatVectorStore(), ReplaceUsesOfWith(), llvm::Value::replaceUsesOutsideBlock(), llvm::ReplaceableMetadataImpl::resolveAllUses(), reuseTableCompare(), rewriteNonInstructionUses(), rewritePHIs(), RewriteUsesOfClonedInstructions(), llvm::LoopPredicationPass::run(), llvm::LoopDataPrefetchPass::run(), llvm::ModuleSanitizerCoveragePass::run(), llvm::InstrProfiling::run(), llvm::SpeculativeExecutionPass::runImpl(), llvm::SLPVectorizerPass::runImpl(), llvm::JumpThreadingPass::runImpl(), runIPSCCP(), llvm::StackProtector::runOnFunction(), llvm::MachinePipeliner::runOnMachineFunction(), runPartiallyInlineLibCalls(), llvm::ExecutionEngine::runStaticConstructorsDestructors(), llvm::HexagonMCInstrInfo::s27_2_reloc(), safeCxtI(), salvageDebugInfoImpl(), scalarizeBinOpOfSplats(), scalarizeExtractedBinop(), scalarizeMaskedCompressStore(), SDValueToConstBool(), SearchLoopIntrinsic(), llvm::FastISel::selectExtractValue(), selectI64Imm(), llvm::AVRDAGToDAGISel::SelectInlineAsmMemoryOperand(), llvm::FastISel::selectIntrinsicCall(), selectSGPRVectorRegClassID(), llvm::LoopVectorizationCostModel::setCostBasedWideningDecision(), setDeducedOverflowingFlags(), setFastFlags(), setRequiredFeatureString(), shouldAlwaysEmitCompleteClassType(), shouldBeSls(), shouldConvertUse(), llvm::SITargetLowering::shouldEmitPCReloc(), shouldEmitUdt(), shouldFixMainFunction(), shouldKeepFDivF32(), llvm::HexagonTargetObjectFile::shouldPutJumpTableInFunctionSection(), llvm::AArch64TargetLowering::shouldReduceLoadWidth(), shouldRotateLoopExitingLatch(), shouldSwapCmpOperands(), shouldUseZeroOffsetLdSt(), ShrinkDemandedConstant(), llvm::TargetLowering::ShrinkDemandedConstant(), shrinkFPConstantVector(), shrinkInsertElt(), ShrinkLoadReplaceStoreWithStore(), shrinkSplatShuffle(), simplifyAllocaArraySize(), simplifyAndOrOfCmps(), simplifyAssocCastAssoc(), SimplifyAssociativeBinOp(), SimplifyCall(), llvm::TargetLowering::SimplifyDemandedBits(), llvm::X86TargetLowering::SimplifyDemandedBitsForTargetNode(), llvm::TargetLowering::SimplifyDemandedVectorElts(), simplifyDivRem(), llvm::InstCombiner::simplifyDivRemOfSelectWithZeroOp(), SimplifyExtractValueInst(), simplifyICmpWithBinOp(), SimplifyIndirectBrOnSelect(), SimplifyInsertElementInst(), llvm::TargetLowering::SimplifyMultipleUseDemandedBits(), llvm::X86TargetLowering::SimplifyMultipleUseDemandedBitsForTargetNode(), simplifyNeonTbl1(), simplifyNeonVld1(), llvm::InstCombiner::simplifyRangeCheck(), SimplifyRelativeLoad(), simplifyRelocatesOffABase(), simplifyShuffleOfShuffle(), SimplifyShuffleVectorInst(), simplifySuspendPoint(), SimplifySwitchOnSelect(), simplifyValueKnownNonZero(), SimplifyWithOpReplaced(), simplifyX86extrq(), simplifyX86immShift(), simplifyX86insertps(), simplifyX86MaskedLoad(), simplifyX86MaskedStore(), simplifyX86pshufb(), simplifyX86varShift(), simplifyX86vpermilvar(), simplifyX86vpermv(), sinkAndCmp0Expression(), sinkLastInstruction(), llvm::InnerLoopVectorizer::sinkScalarOperands(), sinkSelectOperand(), AllocaSlices::SliceBuilder::SliceBuilder(), llvm::InstCombiner::SliceUpIllegalIntegerPHI(), SolveQuadraticAddRecRange(), sortPtrAccesses(), speculatePHIs(), SpeculativelyExecuteBB(), splitAddExpr(), splitAndLowerShuffle(), SplitCriticalSideEffectEdges(), splitGlobal(), SplitIndirectBrCriticalEdges(), splitMergedValStore(), stripGetElementPtr(), stripModuloOnShift(), stripTruncAndExt(), llvm::AArch64TargetLowering::targetShrinkDemandedConstant(), llvm::ARMTargetLowering::targetShrinkDemandedConstant(), llvm::X86TargetLowering::targetShrinkDemandedConstant(), ThreadBinOpOverSelect(), transformCallee(), truncateIVUse(), truncateScalarIntegerArg(), llvm::InnerLoopVectorizer::truncateToMinimalBitwidths(), tryBitfieldInsertOpFromOr(), tryCombineCRC32(), tryCombineToBSL(), tryLowerToSLI(), TryMULWIDECombine(), tryPromoteAllocaToVector(), llvm::VPRecipeBuilder::tryToBlend(), llvm::VPRecipeBuilder::tryToCreateRecipe(), tryToElideArgumentCopy(), tryToFoldExtOfMaskedLoad(), TryToMergeLandingPad(), tryToMoveFreeBeforeNullTest(), tryToOptimizeStoreOfMallocToGlobal(), tryToReplaceWithConstant(), TryToShrinkGlobalToBoolean(), llvm::JumpThreadingPass::TryToUnfoldSelect(), llvm::JumpThreadingPass::TryToUnfoldSelectInCurrBB(), tryToVectorizeHorReductionOrInstOperands(), tryUnmergingGEPsAcrossIndirectBr(), llvm::RecordRecTy::typeIsConvertibleTo(), TypeSizeToSizeIndex(), llvm::JumpThreadingPass::UnfoldSelectInstr(), UnrollAndJamLoop(), UnrollLoop(), unrollVectorShift(), unswitchAllTrivialConditions(), unswitchNontrivialInvariants(), UpdateCallGraphAfterInlining(), updateForIncomingValueLocation(), AAValueConstantRangeFloating::updateImpl(), updateIndexWPDForExports(), UpdatePDTWorklist(), updatePredecessorProfileMetadata(), llvm::CallInst::updateProfWeight(), UpgradeARCRuntime(), UpgradeGlobalVariable(), upgradeInstructionLoopAttachment(), UpgradeIntrinsicFunction1(), usePartialVectorLoads(), valueDominatesPHI(), llvm::ValueEnumerator::ValueEnumerator(), llvm::SSAUpdaterTraits< SSAUpdater >::ValueIsPHI(), vectorEltWillFoldAway(), llvm::LoopVectorizeHints::vectorizeAnalysisPassName(), llvm::InnerLoopVectorizer::vectorizeMemoryInstruction(), llvm::InlineAsm::Verify(), llvm::misexpect::verifyMisExpect(), VerifySubExpr(), llvm::LoopVersioning::versionLoop(), llvm::InstCombiner::visitAdd(), llvm::InstCombiner::visitAllocaInst(), llvm::InstCombiner::visitAnd(), llvm::SelectionDAGBuilder::visitBitTestCase(), llvm::InstCombiner::visitCallInst(), llvm::ObjectSizeOffsetVisitor::visitCallSite(), llvm::InstCombiner::visitExtractElementInst(), llvm::InstCombiner::visitFPToSI(), llvm::InstCombiner::visitFPToUI(), llvm::InstCombiner::visitFPTrunc(), llvm::InstCombiner::visitGetElementPtrInst(), llvm::Interpreter::visitIndirectBrInst(), llvm::InstCombiner::visitInsertElementInst(), llvm::InstCombiner::visitInsertValueInst(), visitIVCast(), llvm::InstCombiner::visitLandingPadInst(), llvm::InstCombiner::visitLShr(), llvm::InstCombiner::visitMul(), llvm::InstCombiner::visitOr(), visitORCommutative(), llvm::InstCombiner::visitPHINode(), visitPHIUsersAndDepsInPostOrder(), llvm::InstCombiner::visitShuffleVectorInst(), llvm::InstCombiner::visitStoreInst(), llvm::InstCombiner::visitXor(), llvm::InstCombiner::visitZExt(), widenCtPop(), willNotOverflow(), X86ChooseCmpImmediateOpcode(), and llvm::reassociate::XorOpnd::XorOpnd().
|
inline |
|
inline |
Definition at line 342 of file Casting.h.
References LLVM_NODISCARD.
|
inline |
Definition at line 353 of file Casting.h.
References LLVM_NODISCARD.
|
inline |
Definition at line 361 of file Casting.h.
References LLVM_NODISCARD.
|
inline |
| bool llvm::EliminateDuplicatePHINodes | ( | BasicBlock * | BB | ) |
Check for and eliminate duplicate PHI nodes in this block.
This doesn't try to be clever about PHI nodes which differ only in the order of the incoming values, but instcombine orders them so it usually won't matter.
Definition at line 1076 of file Local.cpp.
References llvm::BasicBlock::begin(), llvm::PHINode::block_begin(), llvm::PHINode::block_end(), llvm::detail::DenseSetImpl< ValueT, DenseMap< ValueT, detail::DenseSetEmpty, ValueInfoT, detail::DenseSetPair< ValueT > >, ValueInfoT >::clear(), dyn_cast(), llvm::Instruction::eraseFromParent(), hash_combine(), hash_combine_range(), I, llvm::detail::DenseSetImpl< ValueT, DenseMap< ValueT, detail::DenseSetEmpty, ValueInfoT, detail::DenseSetPair< ValueT > >, ValueInfoT >::insert(), isEqual(), llvm::Instruction::isIdenticalTo(), llvm::Value::replaceAllUsesWith(), llvm::User::value_op_begin(), and llvm::User::value_op_end().
Referenced by removeUndefIntroducingPredecessor(), and llvm::SimplifyCFGOptions::setAssumptionCache().
| bool llvm::EliminateUnreachableBlocks | ( | Function & | F, |
| DomTreeUpdater * | DTU = nullptr, |
||
| bool | KeepOneInputPHIs = false |
||
| ) |
Delete all basic blocks from F that are not reachable from its entry node.
If KeepOneInputPHIs is true, one-input Phis in successors of blocks being deleted will be preserved.
Definition at line 117 of file BasicBlockUtils.cpp.
References llvm::Function::begin(), llvm::SmallPtrSetImpl< NodeRef >::count(), DeleteDeadBlocks(), depth_first_ext(), E, llvm::Function::end(), and I.
Referenced by llvm::UnreachableBlockElimPass::run().
| void llvm::EmbedBitcodeInModule | ( | llvm::Module & | M, |
| llvm::MemoryBufferRef | Buf, | ||
| bool | EmbedBitcode, | ||
| bool | EmbedMarker, | ||
| const std::vector< uint8_t > * | CmdArgs | ||
| ) |
Save a copy of the llvm IR as data in the __LLVM,__bitcode section.
Definition at line 4714 of file BitcodeWriter.cpp.
References llvm::GlobalValue::AppendingLinkage, assert(), collectUsedGlobalVariables(), Data, llvm::SmallVectorBase::empty(), llvm::GlobalVariable::eraseFromParent(), llvm::ArrayType::get(), llvm::ConstantArray::get(), llvm::ConstantDataArray::get(), llvm::MemoryBufferRef::getBufferEnd(), llvm::MemoryBufferRef::getBufferSize(), llvm::MemoryBufferRef::getBufferStart(), llvm::Module::getContext(), llvm::Module::getGlobalVariable(), llvm::Type::getInt8Ty(), llvm::ConstantExpr::getPointerBitCastOrAddrSpaceCast(), getSectionNameForBitcode(), getSectionNameForCommandline(), llvm::Module::getTargetTriple(), isBitcode(), llvm::GlobalValue::PrivateLinkage, llvm::SmallVectorTemplateBase< T >::push_back(), llvm::GlobalObject::setSection(), llvm::SmallVectorBase::size(), llvm::raw_string_ostream::str(), T, and WriteBitcodeToFile().
| bool llvm::EmitAnyX86InstComments | ( | const MCInst * | MI, |
| raw_ostream & | OS, | ||
| const MCInstrInfo & | MCII | ||
| ) |
EmitAnyX86InstComments - This function decodes x86 instructions and prints newline terminated strings to the specified string if desired.
This information is shown in disassembly dumps when verbose assembly is enabled.
Definition at line 499 of file X86InstComments.cpp.
References CASE_AVX512_INS_COMMON, CASE_MOVDUP, CASE_PMOVZX, CASE_SHUF, CASE_UNPCK, CASE_VPERM, CASE_VPERMILPI, CASE_VSHUF, DecodeBLENDMask(), DecodeEXTRQIMask(), DecodeInsertElementMask(), DecodeINSERTPSMask(), DecodeINSERTQIMask(), DecodeMOVDDUPMask(), DecodeMOVHLPSMask(), DecodeMOVLHPSMask(), DecodeMOVSHDUPMask(), DecodeMOVSLDUPMask(), DecodePALIGNRMask(), DecodePSHUFHWMask(), DecodePSHUFLWMask(), DecodePSHUFMask(), DecodePSLLDQMask(), DecodePSRLDQMask(), DecodePSWAPMask(), DecodeScalarMoveMask(), DecodeSHUFPMask(), DecodeSubVectorBroadcast(), DecodeUNPCKHMask(), DecodeUNPCKLMask(), DecodeVALIGNMask(), DecodeVPERM2X128Mask(), DecodeVPERMMask(), decodeVSHUF64x2FamilyMask(), DecodeZeroExtendMask(), DecodeZeroMoveLowMask(), llvm::numbers::e, llvm::SmallVectorBase::empty(), llvm::X86ISD::EXTRQI, llvm::MCOperand::getImm(), llvm::MCInst::getNumOperands(), llvm::MCInst::getOpcode(), llvm::MCInst::getOperand(), llvm::MCOperand::getReg(), getRegName(), getRegOperandNumElts(), llvm::X86ISD::INSERTQI, llvm::MCOperand::isImm(), LLVM_FALLTHROUGH, llvm::X86ISD::MOVDDUP, llvm::X86ISD::MOVSHDUP, llvm::X86ISD::MOVSLDUP, llvm::X86ISD::PALIGNR, printFMA3Comments(), printMasking(), llvm::X86ISD::PSHUFD, llvm::X86ISD::PSHUFHW, llvm::X86ISD::PSHUFLW, llvm::SmallVectorBase::size(), SM_SentinelUndef, and SM_SentinelZero.
Referenced by llvm::X86ATTInstPrinter::printInst(), and llvm::X86IntelInstPrinter::printInst().
| void llvm::emitAppleAccelTable | ( | AsmPrinter * | Asm, |
| AccelTable< DataT > & | Contents, | ||
| StringRef | Prefix, | ||
| const MCSymbol * | SecBegin | ||
| ) |
Emit an Apple Accelerator Table consisting of entries in the specified AccelTable.
The DataT template parameter should be derived from AppleAccelTableData.
Definition at line 302 of file AccelTable.h.
References emitAppleAccelTableImpl(), and emitDWARF5AccelTable().
Referenced by llvm::DwarfDebug::endFunctionImpl().
| void llvm::emitAppleAccelTableImpl | ( | AsmPrinter * | Asm, |
| AccelTableBase & | Contents, | ||
| StringRef | Prefix, | ||
| const MCSymbol * | SecBegin, | ||
| ArrayRef< AppleAccelTableData::Atom > | Atoms | ||
| ) |
Definition at line 544 of file AccelTable.cpp.
References llvm::AccelTableBase::finalize().
Referenced by emitAppleAccelTable(), and llvm::DWARF5AccelTableStaticData::order().
| void llvm::emitARMRegPlusImmediate | ( | MachineBasicBlock & | MBB, |
| MachineBasicBlock::iterator & | MBBI, | ||
| const DebugLoc & | dl, | ||
| unsigned | DestReg, | ||
| unsigned | BaseReg, | ||
| int | NumBytes, | ||
| ARMCC::CondCodes | Pred, | ||
| unsigned | PredReg, | ||
| const ARMBaseInstrInfo & | TII, | ||
| unsigned | MIFlags = 0 |
||
| ) |
emitARMRegPlusImmediate / emitT2RegPlusImmediate - Emits a series of instructions to materializea destreg = basereg + immediate in ARM / Thumb2 code.
Definition at line 2354 of file ARMBaseInstrInfo.cpp.
References llvm::MachineInstrBuilder::add(), llvm::MachineInstrBuilder::addImm(), assert(), BuildMI(), condCodeOp(), llvm::ARM_AM::getSOImmVal(), llvm::ARM_AM::getSOImmValRotate(), llvm::RegState::Kill, predOps(), llvm::ARM_AM::rotr32(), and llvm::MachineInstrBuilder::setMIFlags().
Referenced by addExclusiveRegPair(), llvm::ARMBaseRegisterInfo::eliminateFrameIndex(), llvm::ARMFrameLowering::emitEpilogue(), emitRegPlusImmediate(), and isValidCoprocessorNumber().
| Value * llvm::emitBCmp | ( | Value * | Ptr1, |
| Value * | Ptr2, | ||
| Value * | Len, | ||
| IRBuilder<> & | B, | ||
| const DataLayout & | DL, | ||
| const TargetLibraryInfo * | TLI | ||
| ) |
Emit a call to the bcmp function.
Definition at line 947 of file BuildLibCalls.cpp.
References B, castToCStr(), Context, emitLibCall(), llvm::BasicBlock::getContext(), llvm::IRBuilderBase::GetInsertBlock(), llvm::IRBuilderBase::getInt32Ty(), llvm::IRBuilderBase::getInt8PtrTy(), and llvm::DataLayout::getIntPtrType().
Referenced by optimizeMemCmpConstantSize().
| Value * llvm::emitBinaryFloatFnCall | ( | Value * | Op1, |
| Value * | Op2, | ||
| StringRef | Name, | ||
| IRBuilder<> & | B, | ||
| const AttributeList & | Attrs | ||
| ) |
Emit a call to the binary function named 'Name' (e.g.
'fmin'). This function is known to take type matching 'Op1' and 'Op2' and return one value with the same type. If 'Op1/Op2' are long double, 'l' is added as the suffix of name, if 'Op1/Op2' are float, we add a 'f' suffix.
Definition at line 1107 of file BuildLibCalls.cpp.
References appendTypeSuffix(), assert(), and emitBinaryFloatFnCallHelper().
Referenced by createPowWithIntegerExponent(), getIntToFPVal(), and optimizeDoubleFP().
| Value * llvm::emitBinaryFloatFnCall | ( | Value * | Op1, |
| Value * | Op2, | ||
| const TargetLibraryInfo * | TLI, | ||
| LibFunc | DoubleFn, | ||
| LibFunc | FloatFn, | ||
| LibFunc | LongDoubleFn, | ||
| IRBuilder<> & | B, | ||
| const AttributeList & | Attrs | ||
| ) |
Emit a call to the binary function DoubleFn, FloatFn or LongDoubleFn, depending of the type of Op1.
Definition at line 1117 of file BuildLibCalls.cpp.
References emitBinaryFloatFnCallHelper(), getFloatFnName(), llvm::Value::getType(), and Name.
| Value * llvm::emitCalloc | ( | Value * | Num, |
| Value * | Size, | ||
| const AttributeList & | Attrs, | ||
| IRBuilder<> & | B, | ||
| const TargetLibraryInfo & | TLI | ||
| ) |
Emit a call to the calloc function.
Definition at line 1292 of file BuildLibCalls.cpp.
References llvm::IRBuilder< T, Inserter >::CreateCall(), F(), llvm::FunctionCallee::getCallee(), llvm::BasicBlock::getContext(), llvm::Module::getDataLayout(), llvm::IRBuilderBase::GetInsertBlock(), llvm::IRBuilderBase::getInt8PtrTy(), llvm::DataLayout::getIntPtrType(), llvm::BasicBlock::getModule(), llvm::TargetLibraryInfo::getName(), llvm::Module::getOrInsertFunction(), llvm::TargetLibraryInfo::has(), inferLibFuncAttributes(), llvm::CallBase::setCallingConv(), and llvm::Value::stripPointerCasts().
Referenced by optimizeMemCmpConstantSize().
| void llvm::emitDWARF5AccelTable | ( | AsmPrinter * | Asm, |
| AccelTable< DWARF5AccelTableData > & | Contents, | ||
| const DwarfDebug & | DD, | ||
| ArrayRef< std::unique_ptr< DwarfCompileUnit >> | CUs | ||
| ) |
Definition at line 551 of file AccelTable.cpp.
References llvm::HexStyle::Asm, assert(), llvm::DICompileUnit::Default, enumerate(), llvm::AccelTableBase::finalize(), llvm::MCObjectFileInfo::getDwarfDebugNamesSection(), llvm::AsmPrinter::getObjFileLowering(), llvm::AsmPrinter::OutStreamer, and llvm::DwarfDebug::useSplitDwarf().
Referenced by emitAppleAccelTable(), and llvm::DwarfDebug::endFunctionImpl().
| void llvm::emitDWARF5AccelTable | ( | AsmPrinter * | Asm, |
| AccelTable< DWARF5AccelTableStaticData > & | Contents, | ||
| ArrayRef< MCSymbol *> | CUs, | ||
| llvm::function_ref< unsigned(const DWARF5AccelTableStaticData &)> | getCUIndexForEntry | ||
| ) |
Definition at line 584 of file AccelTable.cpp.
References llvm::HexStyle::Asm, and llvm::AccelTableBase::finalize().
| Value * llvm::emitFGetCUnlocked | ( | Value * | File, |
| IRBuilder<> & | B, | ||
| const TargetLibraryInfo * | TLI | ||
| ) |
Emit a call to the fgetc_unlocked function. File is a pointer to FILE.
Definition at line 1336 of file BuildLibCalls.cpp.
References llvm::IRBuilder< T, Inserter >::CreateCall(), F(), llvm::FunctionCallee::getCallee(), llvm::IRBuilderBase::GetInsertBlock(), llvm::IRBuilderBase::getInt32Ty(), llvm::BasicBlock::getModule(), llvm::TargetLibraryInfo::getName(), llvm::Module::getOrInsertFunction(), llvm::Value::getType(), llvm::TargetLibraryInfo::has(), inferLibFuncAttributes(), llvm::Type::isPointerTy(), llvm::CallBase::setCallingConv(), and llvm::Value::stripPointerCasts().
Referenced by isReportingError().
| Value * llvm::emitFGetSUnlocked | ( | Value * | Str, |
| Value * | Size, | ||
| Value * | File, | ||
| IRBuilder<> & | B, | ||
| const TargetLibraryInfo * | TLI | ||
| ) |
Emit a call to the fgets_unlocked function.
Str is required to be a pointer, Size is an i32 and File is a pointer to FILE.
Definition at line 1355 of file BuildLibCalls.cpp.
References castToCStr(), llvm::IRBuilder< T, Inserter >::CreateCall(), F(), llvm::FunctionCallee::getCallee(), llvm::IRBuilderBase::GetInsertBlock(), llvm::IRBuilderBase::getInt32Ty(), llvm::IRBuilderBase::getInt8PtrTy(), llvm::BasicBlock::getModule(), llvm::TargetLibraryInfo::getName(), llvm::Module::getOrInsertFunction(), llvm::Value::getType(), llvm::TargetLibraryInfo::has(), inferLibFuncAttributes(), llvm::CallBase::setCallingConv(), Size, and llvm::Value::stripPointerCasts().
Referenced by isReportingError().
| Value * llvm::emitFPutC | ( | Value * | Char, |
| Value * | File, | ||
| IRBuilder<> & | B, | ||
| const TargetLibraryInfo * | TLI | ||
| ) |
Emit a call to the fputc function.
This assumes that Char is an i32, and File is a pointer to FILE.
Definition at line 1169 of file BuildLibCalls.cpp.
References llvm::IRBuilder< T, Inserter >::CreateCall(), llvm::IRBuilder< T, Inserter >::CreateIntCast(), F(), llvm::FunctionCallee::getCallee(), llvm::IRBuilderBase::GetInsertBlock(), llvm::IRBuilderBase::getInt32Ty(), llvm::BasicBlock::getModule(), llvm::TargetLibraryInfo::getName(), llvm::Module::getOrInsertFunction(), llvm::Value::getType(), llvm::TargetLibraryInfo::has(), inferLibFuncAttributes(), llvm::Type::isPointerTy(), llvm::CallBase::setCallingConv(), and llvm::Value::stripPointerCasts().
Referenced by isReportingError().
| Value * llvm::emitFPutCUnlocked | ( | Value * | Char, |
| Value * | File, | ||
| IRBuilder<> & | B, | ||
| const TargetLibraryInfo * | TLI | ||
| ) |
Emit a call to the fputc_unlocked function.
This assumes that Char is an i32, and File is a pointer to FILE.
Definition at line 1190 of file BuildLibCalls.cpp.
References llvm::IRBuilder< T, Inserter >::CreateCall(), llvm::IRBuilder< T, Inserter >::CreateIntCast(), F(), llvm::FunctionCallee::getCallee(), llvm::IRBuilderBase::GetInsertBlock(), llvm::IRBuilderBase::getInt32Ty(), llvm::BasicBlock::getModule(), llvm::TargetLibraryInfo::getName(), llvm::Module::getOrInsertFunction(), llvm::Value::getType(), llvm::TargetLibraryInfo::has(), inferLibFuncAttributes(), llvm::Type::isPointerTy(), llvm::CallBase::setCallingConv(), and llvm::Value::stripPointerCasts().
Referenced by isReportingError().
| Value * llvm::emitFPutS | ( | Value * | Str, |
| Value * | File, | ||
| IRBuilder<> & | B, | ||
| const TargetLibraryInfo * | TLI | ||
| ) |
Emit a call to the fputs function.
Str is required to be a pointer and File is a pointer to FILE.
Definition at line 1210 of file BuildLibCalls.cpp.
References castToCStr(), llvm::IRBuilder< T, Inserter >::CreateCall(), F(), llvm::FunctionCallee::getCallee(), llvm::IRBuilderBase::GetInsertBlock(), llvm::IRBuilderBase::getInt32Ty(), llvm::IRBuilderBase::getInt8PtrTy(), llvm::BasicBlock::getModule(), llvm::TargetLibraryInfo::getName(), llvm::Module::getOrInsertFunction(), llvm::Value::getType(), llvm::TargetLibraryInfo::has(), inferLibFuncAttributes(), llvm::Type::isPointerTy(), llvm::CallBase::setCallingConv(), and llvm::Value::stripPointerCasts().
Referenced by isReportingError().
| Value * llvm::emitFPutSUnlocked | ( | Value * | Str, |
| Value * | File, | ||
| IRBuilder<> & | B, | ||
| const TargetLibraryInfo * | TLI | ||
| ) |
Emit a call to the fputs_unlocked function.
Str is required to be a pointer and File is a pointer to FILE.
Definition at line 1229 of file BuildLibCalls.cpp.
References castToCStr(), llvm::IRBuilder< T, Inserter >::CreateCall(), F(), llvm::FunctionCallee::getCallee(), llvm::IRBuilderBase::GetInsertBlock(), llvm::IRBuilderBase::getInt32Ty(), llvm::IRBuilderBase::getInt8PtrTy(), llvm::BasicBlock::getModule(), llvm::TargetLibraryInfo::getName(), llvm::Module::getOrInsertFunction(), llvm::Value::getType(), llvm::TargetLibraryInfo::has(), inferLibFuncAttributes(), llvm::Type::isPointerTy(), llvm::CallBase::setCallingConv(), and llvm::Value::stripPointerCasts().
Referenced by isReportingError().
| void llvm::emitFrameOffset | ( | MachineBasicBlock & | MBB, |
| MachineBasicBlock::iterator | MBBI, | ||
| const DebugLoc & | DL, | ||
| unsigned | DestReg, | ||
| unsigned | SrcReg, | ||
| StackOffset | Offset, | ||
| const TargetInstrInfo * | TII, | ||
| MachineInstr::MIFlag | Flag = MachineInstr::NoFlags, |
||
| bool | SetNZCV = false, |
||
| bool | NeedsWinCFI = false, |
||
| bool * | HasWinCFI = nullptr |
||
| ) |
emitFrameOffset - Emit instructions as needed to set DestReg to SrcReg plus Offset.
This is intended to be used from within the prolog/epilog insertion (PEI) pass, where a virtual scratch register may be allocated if necessary, to be replaced by the scavenger at the end of PEI.
Definition at line 3198 of file AArch64InstrInfo.cpp.
References assert(), emitFrameOffsetAdj(), and llvm::StackOffset::getForFrameOffset().
Referenced by llvm::AArch64FrameLowering::eliminateCallFramePseudoInstr(), llvm::AArch64RegisterInfo::eliminateFrameIndex(), llvm::AArch64FrameLowering::emitEpilogue(), llvm::AArch64FrameLowering::emitPrologue(), for(), and rewriteAArch64FrameIndex().
| Value * llvm::emitFReadUnlocked | ( | Value * | Ptr, |
| Value * | Size, | ||
| Value * | N, | ||
| Value * | File, | ||
| IRBuilder<> & | B, | ||
| const DataLayout & | DL, | ||
| const TargetLibraryInfo * | TLI | ||
| ) |
Emit a call to the fread_unlocked function.
This assumes that Ptr is a pointer, Size is an 'intptr_t', N is nmemb and File is a pointer to FILE.
Definition at line 1375 of file BuildLibCalls.cpp.
References castToCStr(), Context, llvm::IRBuilder< T, Inserter >::CreateCall(), F(), llvm::FunctionCallee::getCallee(), llvm::BasicBlock::getContext(), llvm::IRBuilderBase::GetInsertBlock(), llvm::IRBuilderBase::getInt8PtrTy(), llvm::DataLayout::getIntPtrType(), llvm::BasicBlock::getModule(), llvm::TargetLibraryInfo::getName(), llvm::Module::getOrInsertFunction(), llvm::Value::getType(), llvm::TargetLibraryInfo::has(), inferLibFuncAttributes(), llvm::Type::isPointerTy(), N, llvm::CallBase::setCallingConv(), Size, and llvm::Value::stripPointerCasts().
Referenced by isReportingError().
| Value * llvm::emitFWrite | ( | Value * | Ptr, |
| Value * | Size, | ||
| Value * | File, | ||
| IRBuilder<> & | B, | ||
| const DataLayout & | DL, | ||
| const TargetLibraryInfo * | TLI | ||
| ) |
Emit a call to the fwrite function.
This assumes that Ptr is a pointer, Size is an 'intptr_t', and File is a pointer to FILE.
Definition at line 1248 of file BuildLibCalls.cpp.
References castToCStr(), Context, llvm::IRBuilder< T, Inserter >::CreateCall(), F(), llvm::ConstantInt::get(), llvm::FunctionCallee::getCallee(), llvm::BasicBlock::getContext(), llvm::IRBuilderBase::GetInsertBlock(), llvm::IRBuilderBase::getInt8PtrTy(), llvm::DataLayout::getIntPtrType(), llvm::BasicBlock::getModule(), llvm::TargetLibraryInfo::getName(), llvm::Module::getOrInsertFunction(), llvm::Value::getType(), llvm::TargetLibraryInfo::has(), inferLibFuncAttributes(), llvm::Type::isPointerTy(), llvm::CallBase::setCallingConv(), Size, and llvm::Value::stripPointerCasts().
Referenced by isReportingError().
| Value * llvm::emitFWriteUnlocked | ( | Value * | Ptr, |
| Value * | Size, | ||
| Value * | N, | ||
| Value * | File, | ||
| IRBuilder<> & | B, | ||
| const DataLayout & | DL, | ||
| const TargetLibraryInfo * | TLI | ||
| ) |
Emit a call to the fwrite_unlocked function.
This assumes that Ptr is a pointer, Size is an 'intptr_t', N is nmemb and File is a pointer to FILE.
Definition at line 1313 of file BuildLibCalls.cpp.
References castToCStr(), Context, llvm::IRBuilder< T, Inserter >::CreateCall(), F(), llvm::FunctionCallee::getCallee(), llvm::BasicBlock::getContext(), llvm::IRBuilderBase::GetInsertBlock(), llvm::IRBuilderBase::getInt8PtrTy(), llvm::DataLayout::getIntPtrType(), llvm::BasicBlock::getModule(), llvm::TargetLibraryInfo::getName(), llvm::Module::getOrInsertFunction(), llvm::Value::getType(), llvm::TargetLibraryInfo::has(), inferLibFuncAttributes(), llvm::Type::isPointerTy(), N, llvm::CallBase::setCallingConv(), Size, and llvm::Value::stripPointerCasts().
Referenced by isReportingError().
| Value* llvm::EmitGEPOffset | ( | IRBuilderTy * | Builder, |
| const DataLayout & | DL, | ||
| User * | GEP, | ||
| bool | NoAssumptions = false |
||
| ) |
Given a getelementptr instruction/constantexpr, emit the code necessary to compute the offset from the base pointer (without adding in the base pointer).
Return the result as a signed integer of intptr size. When NoAssumptions is true, no assumptions about index computation not overflowing is made.
Definition at line 29 of file Local.h.
References llvm::numbers::e, GEP, gep_type_begin(), llvm::ConstantInt::get(), llvm::StructLayout::getElementOffset(), llvm::generic_gep_type_iterator< ItTy >::getIndexedType(), llvm::DataLayout::getIndexType(), llvm::ConstantExpr::getIntegerCast(), llvm::ConstantExpr::getMul(), llvm::Value::getName(), llvm::Constant::getNullValue(), llvm::ConstantVector::getSplat(), llvm::DataLayout::getStructLayout(), llvm::generic_gep_type_iterator< ItTy >::getStructTypeOrNull(), llvm::Value::getType(), llvm::DataLayout::getTypeAllocSize(), llvm::GEPOperator::isInBounds(), llvm::Type::isVectorTy(), max(), llvm::SystemZISD::OC, llvm::User::op_begin(), llvm::User::op_end(), and Size.
Referenced by llvm::InstCombiner::OptimizePointerDifference(), llvm::ObjectSizeOffsetEvaluator::visitGEPOperator(), and llvm::InstCombiner::visitInstruction().
| std::error_code llvm::EmitImportsFiles | ( | StringRef | ModulePath, |
| StringRef | OutputFilename, | ||
| const std::map< std::string, GVSummaryMapTy > & | ModuleToSummariesForIndex | ||
| ) |
Emit into OutputFilename the files module ModulePath will import from.
Emit the files ModulePath will import from into OutputFilename.
Definition at line 933 of file FunctionImport.cpp.
References llvm::sys::fs::OF_None.
Referenced by llvm::ThinLTOCodeGenerator::emitImports(), and llvm::lto::getThinLTOOutputFile().
| void llvm::EmitJSON | ( | RecordKeeper & | RK, |
| raw_ostream & | OS | ||
| ) |
Definition at line 187 of file JSONBackend.cpp.
Referenced by llvm::HasReferenceResolver::found().
| void llvm::emitLinkerFlagsForGlobalCOFF | ( | raw_ostream & | OS, |
| const GlobalValue * | GV, | ||
| const Triple & | TT, | ||
| Mangler & | Mangler | ||
| ) |
Definition at line 184 of file Mangler.cpp.
References llvm::raw_ostream::flush(), llvm::Module::getDataLayout(), llvm::DataLayout::getGlobalPrefix(), llvm::Mangler::getNameWithPrefix(), llvm::GlobalValue::getParent(), llvm::GlobalValue::getValueType(), llvm::GlobalValue::hasDLLExportStorageClass(), llvm::GlobalValue::isDeclaration(), llvm::Type::isFunctionTy(), llvm::Triple::isWindowsCygwinEnvironment(), llvm::Triple::isWindowsGNUEnvironment(), and llvm::Triple::isWindowsMSVCEnvironment().
Referenced by llvm::TargetLoweringObjectFileCOFF::emitLinkerFlagsForGlobal(), and llvm::LTOModule::makeBuffer().
| void llvm::emitLinkerFlagsForUsedCOFF | ( | raw_ostream & | OS, |
| const GlobalValue * | GV, | ||
| const Triple & | T, | ||
| Mangler & | M | ||
| ) |
Definition at line 215 of file Mangler.cpp.
References llvm::Mangler::getNameWithPrefix(), and llvm::Triple::isWindowsMSVCEnvironment().
Referenced by llvm::TargetLoweringObjectFileCOFF::emitLinkerFlagsForUsed().
| Value * llvm::emitMalloc | ( | Value * | Num, |
| IRBuilder<> & | B, | ||
| const DataLayout & | DL, | ||
| const TargetLibraryInfo * | TLI | ||
| ) |
Emit a call to the malloc function.
Definition at line 1272 of file BuildLibCalls.cpp.
References Context, llvm::IRBuilder< T, Inserter >::CreateCall(), F(), llvm::FunctionCallee::getCallee(), llvm::BasicBlock::getContext(), llvm::IRBuilderBase::GetInsertBlock(), llvm::IRBuilderBase::getInt8PtrTy(), llvm::DataLayout::getIntPtrType(), llvm::BasicBlock::getModule(), llvm::TargetLibraryInfo::getName(), llvm::Module::getOrInsertFunction(), llvm::TargetLibraryInfo::has(), inferLibFuncAttributes(), llvm::CallBase::setCallingConv(), and llvm::Value::stripPointerCasts().
Referenced by optimizeMemCmpConstantSize().
| Value * llvm::emitMemCCpy | ( | Value * | Ptr1, |
| Value * | Ptr2, | ||
| Value * | Val, | ||
| Value * | Len, | ||
| IRBuilder<> & | B, | ||
| const TargetLibraryInfo * | TLI | ||
| ) |
Emit a call to the memccpy function.
Definition at line 956 of file BuildLibCalls.cpp.
References B, emitLibCall(), llvm::IRBuilderBase::getInt32Ty(), llvm::IRBuilderBase::getInt8PtrTy(), and llvm::Value::getType().
Referenced by llvm::LibCallSimplifier::LibCallSimplifier().
| Value * llvm::emitMemChr | ( | Value * | Ptr, |
| Value * | Val, | ||
| Value * | Len, | ||
| IRBuilder<> & | B, | ||
| const DataLayout & | DL, | ||
| const TargetLibraryInfo * | TLI | ||
| ) |
Emit a call to the memchr function.
This assumes that Ptr is a pointer, Val is an i32 value, and Len is an 'intptr_t' value.
Definition at line 929 of file BuildLibCalls.cpp.
References B, castToCStr(), Context, emitLibCall(), llvm::BasicBlock::getContext(), llvm::IRBuilderBase::GetInsertBlock(), llvm::IRBuilderBase::getInt32Ty(), llvm::IRBuilderBase::getInt8PtrTy(), and llvm::DataLayout::getIntPtrType().
Referenced by annotateNonNullAndDereferenceable().
| Value * llvm::emitMemCmp | ( | Value * | Ptr1, |
| Value * | Ptr2, | ||
| Value * | Len, | ||
| IRBuilder<> & | B, | ||
| const DataLayout & | DL, | ||
| const TargetLibraryInfo * | TLI | ||
| ) |
Emit a call to the memcmp function.
Definition at line 938 of file BuildLibCalls.cpp.
References B, castToCStr(), Context, emitLibCall(), llvm::BasicBlock::getContext(), llvm::IRBuilderBase::GetInsertBlock(), llvm::IRBuilderBase::getInt32Ty(), llvm::IRBuilderBase::getInt8PtrTy(), and llvm::DataLayout::getIntPtrType().
Referenced by annotateNonNullAndDereferenceable().
| Value * llvm::emitMemCpyChk | ( | Value * | Dst, |
| Value * | Src, | ||
| Value * | Len, | ||
| Value * | ObjSize, | ||
| IRBuilder<> & | B, | ||
| const DataLayout & | DL, | ||
| const TargetLibraryInfo * | TLI | ||
| ) |
Emit a call to the __memcpy_chk function to the builder.
This expects that the Len and ObjSize have type 'intptr_t' and Dst/Src are pointers.
Definition at line 905 of file BuildLibCalls.cpp.
References castToCStr(), Context, llvm::IRBuilder< T, Inserter >::CreateCall(), F(), llvm::AttributeList::FunctionIndex, llvm::AttributeList::get(), llvm::FunctionCallee::getCallee(), llvm::BasicBlock::getContext(), llvm::Module::getContext(), llvm::IRBuilderBase::GetInsertBlock(), llvm::IRBuilderBase::getInt8PtrTy(), llvm::DataLayout::getIntPtrType(), llvm::BasicBlock::getModule(), llvm::Module::getOrInsertFunction(), llvm::TargetLibraryInfo::has(), llvm::CallBase::setCallingConv(), and llvm::Value::stripPointerCasts().
Referenced by llvm::LibCallSimplifier::LibCallSimplifier().
| Value * llvm::emitPutChar | ( | Value * | Char, |
| IRBuilder<> & | B, | ||
| const TargetLibraryInfo * | TLI | ||
| ) |
Emit a call to the putchar function. This assumes that Char is an integer.
Definition at line 1129 of file BuildLibCalls.cpp.
References llvm::IRBuilder< T, Inserter >::CreateCall(), llvm::IRBuilder< T, Inserter >::CreateIntCast(), F(), llvm::FunctionCallee::getCallee(), llvm::IRBuilderBase::GetInsertBlock(), llvm::IRBuilderBase::getInt32Ty(), llvm::BasicBlock::getModule(), llvm::TargetLibraryInfo::getName(), llvm::Module::getOrInsertFunction(), llvm::TargetLibraryInfo::has(), inferLibFuncAttributes(), llvm::CallBase::setCallingConv(), and llvm::Value::stripPointerCasts().
Referenced by isReportingError().
| Value * llvm::emitPutS | ( | Value * | Str, |
| IRBuilder<> & | B, | ||
| const TargetLibraryInfo * | TLI | ||
| ) |
Emit a call to the puts function. This assumes that Str is some pointer.
Definition at line 1152 of file BuildLibCalls.cpp.
References castToCStr(), llvm::IRBuilder< T, Inserter >::CreateCall(), F(), llvm::FunctionCallee::getCallee(), llvm::IRBuilderBase::GetInsertBlock(), llvm::IRBuilderBase::getInt32Ty(), llvm::IRBuilderBase::getInt8PtrTy(), llvm::BasicBlock::getModule(), llvm::TargetLibraryInfo::getName(), llvm::Module::getOrInsertFunction(), llvm::TargetLibraryInfo::has(), inferLibFuncAttributes(), llvm::CallBase::setCallingConv(), and llvm::Value::stripPointerCasts().
Referenced by isReportingError().
| Value * llvm::emitSNPrintf | ( | Value * | Dest, |
| Value * | Size, | ||
| Value * | Fmt, | ||
| ArrayRef< Value *> | Args, | ||
| IRBuilder<> & | B, | ||
| const TargetLibraryInfo * | TLI | ||
| ) |
Emit a call to the snprintf function.
Definition at line 964 of file BuildLibCalls.cpp.
References llvm::AMDGPU::HSAMD::Kernel::Key::Args, B, llvm::ArrayRef< T >::begin(), castToCStr(), emitLibCall(), llvm::ArrayRef< T >::end(), llvm::IRBuilderBase::getInt32Ty(), llvm::IRBuilderBase::getInt8PtrTy(), llvm::Value::getType(), and Size.
Referenced by llvm::LibCallSimplifier::LibCallSimplifier().
| void llvm::emitSourceFileHeader | ( | StringRef | Desc, |
| raw_ostream & | OS | ||
| ) |
emitSourceFileHeader - Output an LLVM style file header to the specified raw_ostream.
Definition at line 33 of file TableGenBackend.cpp.
References assert(), MAX_LINE_LEN, llvm::cl::Prefix, printLine(), llvm::StringRef::size(), and llvm::StringRef::substr().
| Value * llvm::emitSPrintf | ( | Value * | Dest, |
| Value * | Fmt, | ||
| ArrayRef< Value *> | VariadicArgs, | ||
| IRBuilder<> & | B, | ||
| const TargetLibraryInfo * | TLI | ||
| ) |
Emit a call to the sprintf function.
Definition at line 974 of file BuildLibCalls.cpp.
References llvm::AMDGPU::HSAMD::Kernel::Key::Args, B, llvm::ArrayRef< T >::begin(), castToCStr(), emitLibCall(), llvm::ArrayRef< T >::end(), llvm::IRBuilderBase::getInt32Ty(), and llvm::IRBuilderBase::getInt8PtrTy().
Referenced by llvm::LibCallSimplifier::LibCallSimplifier().
| Value * llvm::emitStpCpy | ( | Value * | Dst, |
| Value * | Src, | ||
| IRBuilder<> & | B, | ||
| const TargetLibraryInfo * | TLI | ||
| ) |
Emit a call to the stpcpy function to the builder, for the specified pointer arguments.
Definition at line 884 of file BuildLibCalls.cpp.
References B, castToCStr(), emitLibCall(), and llvm::IRBuilderBase::getInt8PtrTy().
Referenced by llvm::LibCallSimplifier::LibCallSimplifier().
| Value * llvm::emitStpNCpy | ( | Value * | Dst, |
| Value * | Src, | ||
| Value * | Len, | ||
| IRBuilder<> & | B, | ||
| const TargetLibraryInfo * | TLI | ||
| ) |
Emit a call to the stpncpy function to the builder, for the specified pointer arguments and length.
Definition at line 898 of file BuildLibCalls.cpp.
References B, castToCStr(), emitLibCall(), llvm::IRBuilderBase::getInt8PtrTy(), and llvm::Value::getType().
Referenced by llvm::LibCallSimplifier::LibCallSimplifier().
| Value * llvm::emitStrCat | ( | Value * | Dest, |
| Value * | Src, | ||
| IRBuilder<> & | B, | ||
| const TargetLibraryInfo * | TLI | ||
| ) |
Emit a call to the strcat function.
Definition at line 984 of file BuildLibCalls.cpp.
References B, castToCStr(), emitLibCall(), and llvm::IRBuilderBase::getInt8PtrTy().
Referenced by llvm::LibCallSimplifier::LibCallSimplifier().
Emit a call to the strchr function to the builder, for the specified pointer and character.
Ptr is required to be some pointer type, and the return value has 'i8*' type.
Definition at line 860 of file BuildLibCalls.cpp.
References B, castToCStr(), emitLibCall(), llvm::ConstantInt::get(), llvm::IRBuilderBase::getInt32Ty(), and llvm::IRBuilderBase::getInt8PtrTy().
Referenced by annotateNonNullAndDereferenceable().
| Value * llvm::emitStrCpy | ( | Value * | Dst, |
| Value * | Src, | ||
| IRBuilder<> & | B, | ||
| const TargetLibraryInfo * | TLI | ||
| ) |
Emit a call to the strcpy function to the builder, for the specified pointer arguments.
Definition at line 877 of file BuildLibCalls.cpp.
References B, castToCStr(), emitLibCall(), and llvm::IRBuilderBase::getInt8PtrTy().
Referenced by llvm::LibCallSimplifier::LibCallSimplifier().
| Value * llvm::emitStrDup | ( | Value * | Ptr, |
| IRBuilder<> & | B, | ||
| const TargetLibraryInfo * | TLI | ||
| ) |
Emit a call to the strdup function to the builder, for the specified pointer.
Ptr is required to be some pointer type, and the return value has 'i8*' type.
Definition at line 854 of file BuildLibCalls.cpp.
References B, castToCStr(), emitLibCall(), and llvm::IRBuilderBase::getInt8PtrTy().
Referenced by annotateNonNullAndDereferenceable().
| Value * llvm::emitStrLCat | ( | Value * | Dest, |
| Value * | Src, | ||
| Value * | Size, | ||
| IRBuilder<> & | B, | ||
| const TargetLibraryInfo * | TLI | ||
| ) |
Emit a call to the strlcat function.
Definition at line 998 of file BuildLibCalls.cpp.
References B, castToCStr(), emitLibCall(), llvm::IRBuilderBase::getInt8PtrTy(), and llvm::Value::getType().
Referenced by llvm::LibCallSimplifier::LibCallSimplifier().
| Value * llvm::emitStrLCpy | ( | Value * | Dest, |
| Value * | Src, | ||
| Value * | Size, | ||
| IRBuilder<> & | B, | ||
| const TargetLibraryInfo * | TLI | ||
| ) |
Emit a call to the strlcpy function.
Definition at line 991 of file BuildLibCalls.cpp.
References B, castToCStr(), emitLibCall(), llvm::IRBuilderBase::getInt8PtrTy(), and llvm::Value::getType().
Referenced by llvm::LibCallSimplifier::LibCallSimplifier().
| Value * llvm::emitStrLen | ( | Value * | Ptr, |
| IRBuilder<> & | B, | ||
| const DataLayout & | DL, | ||
| const TargetLibraryInfo * | TLI | ||
| ) |
Emit a call to the strlen function to the builder, for the specified pointer.
Ptr is required to be some pointer type, and the return value has 'intptr_t' type.
Definition at line 847 of file BuildLibCalls.cpp.
References B, castToCStr(), Context, emitLibCall(), llvm::BasicBlock::getContext(), llvm::IRBuilderBase::GetInsertBlock(), llvm::IRBuilderBase::getInt8PtrTy(), and llvm::DataLayout::getIntPtrType().
Referenced by annotateNonNullAndDereferenceable(), isReportingError(), and llvm::LibCallSimplifier::LibCallSimplifier().
| Value * llvm::emitStrNCat | ( | Value * | Dest, |
| Value * | Src, | ||
| Value * | Size, | ||
| IRBuilder<> & | B, | ||
| const TargetLibraryInfo * | TLI | ||
| ) |
Emit a call to the strncat function.
Definition at line 1005 of file BuildLibCalls.cpp.
References B, castToCStr(), emitLibCall(), llvm::IRBuilderBase::getInt8PtrTy(), and llvm::Value::getType().
Referenced by llvm::LibCallSimplifier::LibCallSimplifier().
| Value * llvm::emitStrNCmp | ( | Value * | Ptr1, |
| Value * | Ptr2, | ||
| Value * | Len, | ||
| IRBuilder<> & | B, | ||
| const DataLayout & | DL, | ||
| const TargetLibraryInfo * | TLI | ||
| ) |
Emit a call to the strncmp function to the builder.
Definition at line 868 of file BuildLibCalls.cpp.
References B, castToCStr(), Context, emitLibCall(), llvm::BasicBlock::getContext(), llvm::IRBuilderBase::GetInsertBlock(), llvm::IRBuilderBase::getInt32Ty(), llvm::IRBuilderBase::getInt8PtrTy(), and llvm::DataLayout::getIntPtrType().
Referenced by annotateNonNullAndDereferenceable().
| Value * llvm::emitStrNCpy | ( | Value * | Dst, |
| Value * | Src, | ||
| Value * | Len, | ||
| IRBuilder<> & | B, | ||
| const TargetLibraryInfo * | TLI | ||
| ) |
Emit a call to the strncpy function to the builder, for the specified pointer arguments and length.
Definition at line 891 of file BuildLibCalls.cpp.
References B, castToCStr(), emitLibCall(), llvm::IRBuilderBase::getInt8PtrTy(), and llvm::Value::getType().
Referenced by llvm::LibCallSimplifier::LibCallSimplifier().
| Value* llvm::emitStrNLen | ( | Value * | Ptr, |
| Value * | MaxLen, | ||
| IRBuilder<> & | B, | ||
| const DataLayout & | DL, | ||
| const TargetLibraryInfo * | TLI | ||
| ) |
Emit a call to the strnlen function to the builder, for the specified pointer.
Ptr is required to be some pointer type, MaxLen must be of size_t type, and the return value has 'intptr_t' type.
| void llvm::emitT2RegPlusImmediate | ( | MachineBasicBlock & | MBB, |
| MachineBasicBlock::iterator & | MBBI, | ||
| const DebugLoc & | dl, | ||
| unsigned | DestReg, | ||
| unsigned | BaseReg, | ||
| int | NumBytes, | ||
| ARMCC::CondCodes | Pred, | ||
| unsigned | PredReg, | ||
| const ARMBaseInstrInfo & | TII, | ||
| unsigned | MIFlags = 0 |
||
| ) |
Definition at line 230 of file Thumb2InstrInfo.cpp.
References llvm::MachineInstrBuilder::add(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), llvm::ARMCC::AL, assert(), BuildMI(), condCodeOp(), countLeadingZeros(), llvm::ARM_AM::getT2SOImmVal(), llvm::RegState::Kill, predOps(), llvm::ARM_AM::rotr32(), and llvm::MachineInstrBuilder::setMIFlags().
Referenced by addExclusiveRegPair(), llvm::ARMBaseRegisterInfo::eliminateFrameIndex(), llvm::ARMFrameLowering::emitEpilogue(), emitRegPlusImmediate(), and isValidCoprocessorNumber().
| void llvm::emitThumbRegPlusImmediate | ( | MachineBasicBlock & | MBB, |
| MachineBasicBlock::iterator & | MBBI, | ||
| const DebugLoc & | dl, | ||
| unsigned | DestReg, | ||
| unsigned | BaseReg, | ||
| int | NumBytes, | ||
| const TargetInstrInfo & | TII, | ||
| const ARMBaseRegisterInfo & | MRI, | ||
| unsigned | MIFlags = 0 |
||
| ) |
emitThumbRegPlusImmediate - Emits a series of instructions to materialize a destreg = basereg + immediate in Thumb code.
Tries a series of ADDs or SUBs first, and uses a constant pool value if the instruction sequence would be too long. This is allowed to modify the condition flags.
Definition at line 186 of file ThumbRegisterInfo.cpp.
References llvm::MachineInstrBuilder::add(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), llvm::ARMCC::AL, alignTo(), assert(), BuildMI(), emitThumbRegPlusImmInReg(), llvm::MCInstrInfo::get(), isARMLowRegister(), llvm::RegState::Kill, predOps(), llvm::MachineInstrBuilder::setMIFlags(), t1CondCodeOp(), and Threshold.
Referenced by addExclusiveRegPair(), llvm::ThumbRegisterInfo::eliminateFrameIndex(), emitCallSPUpdate(), llvm::Thumb1FrameLowering::emitEpilogue(), emitPrologueEpilogueSPUpdate(), isValidCoprocessorNumber(), and llvm::ThumbRegisterInfo::rewriteFrameIndex().
| Value * llvm::emitUnaryFloatFnCall | ( | Value * | Op, |
| StringRef | Name, | ||
| IRBuilder<> & | B, | ||
| const AttributeList & | Attrs | ||
| ) |
Emit a call to the unary function named 'Name' (e.g.
'floor'). This function is known to take a single of type matching 'Op' and returns one value with the same type. If 'Op' is a long double, 'l' is added as the suffix of name, if 'Op' is a float, we add a 'f' suffix.
Definition at line 1065 of file BuildLibCalls.cpp.
References appendTypeSuffix(), and emitUnaryFloatFnCallHelper().
Referenced by createPowWithIntegerExponent(), getIntToFPVal(), getSqrtCall(), optimizeDoubleFP(), and llvm::InstCombiner::visitFDiv().
| Value * llvm::emitUnaryFloatFnCall | ( | Value * | Op, |
| const TargetLibraryInfo * | TLI, | ||
| LibFunc | DoubleFn, | ||
| LibFunc | FloatFn, | ||
| LibFunc | LongDoubleFn, | ||
| IRBuilder<> & | B, | ||
| const AttributeList & | Attrs | ||
| ) |
Emit a call to the unary function DoubleFn, FloatFn or LongDoubleFn, depending of the type of Op.
Definition at line 1073 of file BuildLibCalls.cpp.
References emitUnaryFloatFnCallHelper(), getFloatFnName(), llvm::Value::getType(), and Name.
| Value * llvm::emitVSNPrintf | ( | Value * | Dest, |
| Value * | Size, | ||
| Value * | Fmt, | ||
| Value * | VAList, | ||
| IRBuilder<> & | B, | ||
| const TargetLibraryInfo * | TLI | ||
| ) |
Emit a call to the vsnprintf function.
Definition at line 1012 of file BuildLibCalls.cpp.
References B, castToCStr(), emitLibCall(), llvm::IRBuilderBase::getInt32Ty(), llvm::IRBuilderBase::getInt8PtrTy(), llvm::Value::getType(), and Size.
Referenced by llvm::LibCallSimplifier::LibCallSimplifier().
| Value * llvm::emitVSPrintf | ( | Value * | Dest, |
| Value * | Fmt, | ||
| Value * | VAList, | ||
| IRBuilder<> & | B, | ||
| const TargetLibraryInfo * | TLI | ||
| ) |
Emit a call to the vsprintf function.
Definition at line 1020 of file BuildLibCalls.cpp.
References B, castToCStr(), emitLibCall(), llvm::IRBuilderBase::getInt32Ty(), llvm::IRBuilderBase::getInt8PtrTy(), and llvm::Value::getType().
Referenced by llvm::LibCallSimplifier::LibCallSimplifier().
Test whether RangeOrContainer is empty. Similar to C++17 std::empty.
Definition at line 192 of file STLExtras.h.
References adl_begin(), and adl_end().
Referenced by adjustDown(), llvm::ArrayRef< llvm::irsymtab::storage::Comdat >::back(), llvm::MutableArrayRef< BitWord >::back(), llvm::DenseMapBase< DenseMap< const llvm::SCEV *, const llvm::SCEV *, DenseMapInfo< const llvm::SCEV *>, llvm::detail::DenseMapPair< const llvm::SCEV *, const llvm::SCEV *> >, const llvm::SCEV *, const llvm::SCEV *, DenseMapInfo< const llvm::SCEV *>, llvm::detail::DenseMapPair< const llvm::SCEV *, const llvm::SCEV *> >::begin(), llvm::LiveRange::beginIndex(), branchDiv(), llvm::ScheduleDAGInstrs::buildSchedGraph(), llvm::StringMap< uint64_t >::clear(), llvm::DwarfFile::computeSizeAndOffsets(), llvm::LiveRange::covers(), DistributeRange(), llvm::DWARFContext::dump(), llvm::DwarfFile::emitUnit(), llvm::DwarfDebug::endFunctionImpl(), llvm::LiveRange::endIndex(), llvm::MDAttachmentMap::erase(), llvm::AccelTableBase::finalize(), llvm::LiveRange::find(), llvm::ArrayRef< llvm::irsymtab::storage::Comdat >::front(), llvm::MutableArrayRef< BitWord >::front(), llvm::LegalizerInfo::getActionDefinitionsBuilder(), llvm::TargetPassConfig::getLimitedCodeGenPipelineReason(), llvm::RegionBase< RegionTraits< Function > >::getNameStr(), llvm::InstrProfRecord::getNumValueKinds(), getReassignedChan(), getStartOrEndSlot(), llvm::SchedDFSResult::getSubtreeID(), llvm::MIBundleBuilder::insert(), llvm::iplist_impl< simple_ilist< MachineInstr, Options... >, ilist_traits< MachineInstr > >::insertAfter(), isDebug(), llvm::slpvectorizer::BoUpSLP::isDeleted(), llvm::MachineBasicBlock::isEHScopeReturnBlock(), isOpcodeHandled(), isOperator(), llvm::LiveRegMatrix::isPhysRegUsed(), isRegOtherThanSPAndFP(), llvm::MachineBasicBlock::isReturnBlock(), llvm::LiveRange::join(), llvm::IntervalMap< SlotIndex, unsigned >::lookup(), llvm::iplist_impl< simple_ilist< MachineInstr, Options... >, ilist_traits< MachineInstr > >::max_size(), llvm::Triple::normalize(), llvm::BitVector::operator<<=(), llvm::BitVector::operator>>=(), llvm::LiveRange::overlaps(), llvm::LiveRange::overlapsFrom(), AbstractManglingParser< ManglingParser< Alloc >, Alloc >::parse(), AbstractManglingParser< ManglingParser< Alloc >, Alloc >::parseSpecialName(), patchAndReplaceAllUsesWith(), llvm::R600SchedStrategy::pickNode(), llvm::LatencyPriorityQueue::pop(), llvm::rdf::DataFlowGraph::DefStack::pop(), llvm::iplist_impl< simple_ilist< MachineInstr, Options... >, ilist_traits< MachineInstr > >::pop_back(), llvm::iplist_impl< simple_ilist< MachineInstr, Options... >, ilist_traits< MachineInstr > >::pop_front(), llvm::LiveRange::print(), PrintLLVMName(), llvm::PMStack::push(), llvm::R600SchedStrategy::releaseBottomNode(), llvm::LiveRange::removeValNo(), llvm::AMDGPUAsmPrinter::runOnMachineFunction(), llvm::GCNScheduleDAGMILive::schedule(), llvm::SchedulingPriorityQueue::SchedulingPriorityQueue(), llvm::jitlink::SectionRange::SectionRange(), llvm::SparseSet< unsigned, llvm::VirtReg2IndexFunctor >::setUniverse(), llvm::IntervalMap< SlotIndex, unsigned >::start(), llvm::IntervalMap< SlotIndex, unsigned >::stop(), llvm::BitTracker::trace(), llvm::HexagonBlockRanges::RangeList::unionize(), UpdatePDTWorklist(), and llvm::StringMap< uint64_t >::~StringMap().
| void llvm::EnablePrettyStackTrace | ( | ) |
Enables dumping a "pretty" stack trace when the program crashes.
Definition at line 253 of file PrettyStackTrace.cpp.
References RegisterCrashPrinter().
Referenced by LLVMEnablePrettyStackTrace(), and llvm::PrettyStackTraceProgram::PrettyStackTraceProgram().
Enables (or disables) dumping a "pretty" stack trace when the user sends SIGINFO or SIGUSR1 to the current process.
This is a per-thread decision so that a program can choose to print stack traces only on a primary thread, or on all threads that use PrettyStackTraceEntry.
Definition at line 261 of file PrettyStackTrace.cpp.
References GlobalSigInfoGenerationCounter, llvm::sys::SetInfoSignalFunction(), and ThreadLocalSigInfoGenerationCounter.
Enable the collection and printing of statistics.
Definition at line 126 of file Statistic.cpp.
Referenced by llvm::lto::setupStatsFile().
|
inline |
Returns a representation of the alignment that encodes undefined as 0.
Definition at line 236 of file Alignment.h.
Referenced by encodeCnt(), llvm::GlobalObject::setAlignment(), llvm::AllocaInst::setAlignment(), llvm::LoadInst::setAlignment(), llvm::StoreInst::setAlignment(), llvm::ISD::ArgFlagsTy::setByValAlign(), and llvm::ISD::ArgFlagsTy::setOrigAlign().
Returns a representation of the alignment, the encoded value is positive by definition.
Definition at line 249 of file Alignment.h.
References llvm::Align::encode, and llvm::Align::MaybeAlign.
|
inline |
Utility function to encode a SLEB128 value to an output stream.
Returns the length in bytes of the encoded value.
Definition at line 23 of file LEB128.h.
Referenced by addData(), llvm::DWARFYAML::EmitDebugAbbrev(), llvm::DWARFYAML::EmitDebugLine(), llvm::DWARFYAML::EmitPubSection(), llvm::BufferByteStreamer::EmitSLEB128(), llvm::MCStreamer::EmitSLEB128IntValue(), llvm::MCDwarfLineAddr::Encode(), llvm::MCAssembler::Finish(), llvm::MCDwarfLineAddr::FixedEncode(), writeLimits(), llvm::gsym::FileWriter::writeSLEB(), and llvm::BinaryStreamWriter::writeSLEB128().
|
inline |
Utility function to encode a ULEB128 value to an output stream.
Returns the length in bytes of the encoded value.
Definition at line 80 of file LEB128.h.
Referenced by addData(), collectPGOFuncNameStrings(), llvm::DWARFYAML::EmitDebugAbbrev(), llvm::DWARFYAML::EmitDebugLine(), EmitFileEntry(), llvm::DWARFYAML::EmitPubSection(), llvm::UnwindOpcodeAssembler::EmitSPOffset(), llvm::BufferByteStreamer::EmitULEB128(), llvm::MCStreamer::EmitULEB128IntValue(), llvm::MCDwarfLineAddr::Encode(), llvm::MCAssembler::Finish(), llvm::MCDwarfLineAddr::FixedEncode(), isIFunc(), isMips64EL(), llvm::sampleprof::SampleProfileWriterExtBinaryBase::markSectionStart(), PrintCFIEscape(), llvm::coverage::CoverageFilenamesSectionWriter::write(), llvm::coverage::CoverageMappingWriter::write(), llvm::sampleprof::SampleProfileWriterBinary::writeBody(), writeCounter(), llvm::sampleprof::SampleProfileWriterCompactBinary::writeFuncOffsetTable(), writeLimits(), llvm::sampleprof::SampleProfileWriterBinary::writeMagicIdent(), llvm::sampleprof::SampleProfileWriterBinary::writeNameIdx(), llvm::sampleprof::SampleProfileWriterBinary::writeNameTable(), llvm::sampleprof::SampleProfileWriterCompactBinary::writeNameTable(), llvm::sampleprof::SampleProfileWriterBinary::writeSample(), llvm::sampleprof::SampleProfileWriterExtBinary::writeSample(), llvm::sampleprof::SampleProfileWriterCompactBinary::writeSample(), writeStringRef(), llvm::sampleprof::SampleProfileWriterBinary::writeSummary(), llvm::gsym::FileWriter::writeULEB(), and llvm::BinaryStreamWriter::writeULEB128().
| detail::enumerator<R> llvm::enumerate | ( | R && | TheRange | ) |
Given an input range, returns a new range whose values are are pair (A,B) such that A is the 0-based index of the item in the sequence, and B is the value from the original sequence.
Example:
std::vector<char> Items = {'A', 'B', 'C', 'D'}; for (auto X : enumerate(Items)) { printf("Item %d - %c\n", X.index(), X.value()); }
Output: Item 0 - A Item 1 - B Item 2 - C Item 3 - D
Definition at line 1511 of file STLExtras.h.
Referenced by llvm::AliasSetTracker::add(), llvm::object::MinidumpFile::create(), llvm::DbgValueHistoryMap::dump(), emitDWARF5AccelTable(), llvm::AccelTableBase::finalize(), getOffsetFromIndices(), getStartOrEndSlot(), isCallerPreservedOrConstPhysReg(), llvm::coverage::CoverageMapping::load(), PointerMayBeCaptured(), llvm::RISCVInstrInfo::verifyInstruction(), llvm::VPWidenGEPRecipe::VPWidenGEPRecipe(), llvm::InnerLoopVectorizer::widenGEP(), and llvm::yaml::yaml2minidump().
| void llvm::erase_if | ( | Container & | C, |
| UnaryPredicate | P | ||
| ) |
Provide a container algorithm similar to C++ Library Fundamentals v2's erase_if which is equivalent to:
C.erase(remove_if(C, pred), C.end());
This version works for any container with an erase method call accepting two iterators.
Definition at line 1340 of file STLExtras.h.
References remove_if().
Referenced by addNonNullAttrs(), deleteDeadBlocksFromLoop(), filterDeadComdatFunctions(), hoistLoopToNewParent(), INITIALIZE_PASS(), isEFLAGSLive(), rebuildLoopAfterUnswitch(), llvm::AlwaysInlinerPass::run(), llvm::LoopFullUnrollPass::run(), and llvm::LoopVectorizationPlanner::setBestPlan().
| Error llvm::errorCodeToError | ( | std::error_code | EC | ) |
Helper for converting an std::error_code to a Error.
Definition at line 87 of file Error.cpp.
Referenced by llvm::lto::Config::addSaveTemps(), llvm::jitlink::InProcessMemoryManager::allocate(), computeArchiveRelativePath(), llvm::FileOutputBuffer::create(), llvm::sys::fs::TempFile::create(), llvm::object::createBinary(), llvm::object::ObjectFile::createCOFFObjectFile(), createFileError(), createInMemoryBuffer(), llvm::object::ObjectFile::createObjectFile(), createOnDiskBuffer(), llvm::sys::fs::TempFile::discard(), doList(), llvm::DWARFYAML::EmitDebugSections(), llvm::orc::OrcAArch64::emitIndirectStubsBlock(), llvm::orc::OrcX86_64_Base::emitIndirectStubsBlock(), llvm::orc::OrcI386::emitIndirectStubsBlock(), llvm::orc::OrcMips32_Base::emitIndirectStubsBlock(), llvm::orc::OrcMips64::emitIndirectStubsBlock(), ErrorFromHResult(), errorOrToExpected(), llvm::coverage::CounterMappingContext::evaluate(), ExpandResponseFile(), llvm::object::IRObjectFile::findBitcodeInMemBuffer(), llvm::object::IRObjectFile::findBitcodeInObject(), llvm::object::Archive::Child::getBuffer(), llvm::NewArchiveMember::getFile(), llvm::object::XCOFFObjectFile::getLogicalNumberOfRelocationEntries(), llvm::object::Archive::Symbol::getMember(), getModuleSummaryIndexForFile(), llvm::object::getObject(), llvm::object::MachOObjectFile::getSection(), llvm::object::XCOFFObjectFile::getSectionByNum(), llvm::object::ELFObjectFile< ELFT >::getSectionContents(), llvm::object::COFFObjectFile::getSectionName(), llvm::object::ObjectFile::getStartAddress(), llvm::object::COFFObjectFile::getSymbol(), llvm::object::COFFObjectFile::getSymbolAddress(), llvm::object::XCOFFObjectFile::getSymbolNameByIndex(), llvm::object::COFFObjectFile::getSymbolSection(), llvm::lto::getThinLTOOutputFile(), llvm::InitLLVM::InitLLVM(), llvm::sys::fs::TempFile::keep(), llvm::coverage::CoverageMapping::load(), loadBinaryFormat(), llvm::pdb::loadDataForPDB(), loadObj(), llvm::lto::localCache(), llvm::object::ObjectFile::makeTriple(), llvm::orc::DumpObjects::operator()(), llvm::object::XCOFFObjectFile::relocations(), llvm::gsym::GsymCreator::save(), selectJumpTableArmEncoding(), setupMemoryBuffer(), setupOptimizationRemarks(), llvm::lto::setupStatsFile(), llvm::object::SymbolicFile::SymbolicFile(), and updateIndexWPDForExports().
Convert an ErrorOr<T> to an Expected<T>.
Definition at line 1137 of file Error.h.
References errorCodeToError().
Referenced by llvm::orc::StaticLibraryDefinitionGenerator::Load(), selectJumpTableArmEncoding(), and updateIndexWPDForExports().
Helper for converting an Error to a bool.
This method returns true if Err is in an error state, or false if it is in a success state. Puts Err in a checked state in both cases (unlike Error::operator bool(), which only does this for success states).
Definition at line 1024 of file Error.h.
Referenced by llvm::StringRef::getAsDouble(), llvm::LTOModule::getProducerString(), getRegNum(), llvm::LTOModule::isBitcodeFile(), llvm::LTOModule::isBitcodeForTarget(), matchSVEPredicateVectorRegName(), and parseHexOcta().
| std::error_code llvm::errorToErrorCode | ( | Error | Err | ) |
Helper for converting an ECError to a std::error_code.
This method requires that Err be Error() or an ECError, otherwise it will trigger a call to abort().
Definition at line 93 of file Error.cpp.
Referenced by llvm::symbolize::SymbolizableObjectFile::create(), dlltoolDriverMain(), llvm::object::COFFObjectFile::getAuxSymbol(), llvm::object::COFFObjectFile::getDataDirectory(), llvm::MemoryBuffer::getFileAsStream(), getFileAux(), getMemoryBufferForStream(), getOpenFileImpl(), getReadWriteFile(), llvm::object::ELFObjectFile< ELFT >::getRel(), llvm::object::ELFObjectFile< ELFT >::getRela(), llvm::object::ELFObjectFile< ELFT >::getRelSection(), llvm::object::ELFObjectFile< ELFT >::getSymbol(), llvm::lto::localCache(), parseBitcodeFileImpl(), pathHasTraversal(), and llvm::object::ELFObjectFile< ELFT >::section_rel_end().
| std::error_code llvm::errorToErrorCodeAndEmitErrors | ( | LLVMContext & | Ctx, |
| Error | Err | ||
| ) |
Definition at line 844 of file BitcodeReader.cpp.
Referenced by expectedToErrorOrAndEmitErrors().
| raw_ostream & llvm::errs | ( | ) |
This returns a reference to a raw_ostream for standard error.
errs() - This returns a reference to a raw_ostream for standard error.
Use it like: errs() << "foo" << "bar";
Definition at line 882 of file raw_ostream.cpp.
Referenced by AddCalls(), addData(), AnalyzeReturnValues(), appendFile(), ApplyFeatureFlag(), AVRDAGToDAGISel::select< ISD::BRIND >(), branchDiv(), buildCallOperands(), llvm::Interpreter::callExternalFunction(), CC_Lanai32_VarArg(), llvm::RuntimeDyldCheckerImpl::checkAllRulesInBuffer(), CheckBitcodeOutputToConsole(), checkForCyclesHelper(), llvm::raw_fd_ostream::clear_error(), llvm::SelectionDAG::clearGraphAttrs(), llvm::TargetSchedModel::computeOperandLatency(), llvm::RISCVABI::computeTargetABI(), cpuHelp(), CrashHandler(), llvm::EngineBuilder::create(), createGraphFilename(), llvm::Hexagon_MC::createHexagonMCSubtargetInfo(), CreateInfoOutputFile(), createMSP430ISelDag(), llvm::mca::RegisterFile::cycleStart(), dbgs(), llvm::LLVMContext::diagnose(), DisplayGraph(), dlltoolDriverMain(), llvm::PhysicalRegisterUsageInfo::doFinalization(), doImportingForModule(), DoInitialMatch(), llvm::ELFRelocationEntry::dump(), llvm::SubMultiClassReference::dump(), llvm::SMTSort::dump(), llvm::RecTy::dump(), llvm::MCFragment::dump(), llvm::MachO::Symbol::dump(), llvm::SMTExpr::dump(), llvm::DWARFDie::dump(), llvm::ARMConstantPoolValue::dump(), llvm::SMTSolver::dump(), llvm::MCSection::dump(), llvm::Init::dump(), llvm::CallGraphWrapperPass::dump(), llvm::AliasSetTracker::dump(), llvm::MCAssembler::dump(), llvm::LiveRangeUpdater::dump(), llvm::RecordVal::dump(), llvm::Record::dump(), llvm::RecordKeeper::dump(), dumpDataAux(), llvm::RGPassManager::dumpPassStructure(), llvm::LPPassManager::dumpPassStructure(), dumpRelocs(), llvm::XCoreFrameLowering::eliminateCallFramePseudoInstr(), llvm::XCoreRegisterInfo::eliminateFrameIndex(), llvm::MipsRegisterInfo::eliminateFrameIndex(), llvm::ARMTargetLowering::EmitInstrWithCustomInserter(), llvm::ARMAsmPrinter::EmitJumpTableTBInst(), llvm::AMDGPU::HSAMD::MetadataStreamerV2::emitKernel(), emitNullTerminatedSymbolName(), llvm::CodeViewContext::encodeInlineLineTable(), llvm::WithColor::error(), ExecGraphViewer(), llvm::CodeExtractor::extractCodeRegion(), fail(), fatalOpenError(), ferrs(), findBasePointers(), llvm::AMDGPULibCalls::fold(), getAccessVariant(), getBitcodeFileMachine(), getCOFFFileMachine(), llvm::cl::Option::getExtraOptionNames(), getFeatures(), getGNUBinOpPrecedence(), llvm::SelectionDAG::getGraphAttrs(), llvm::sys::getHostCPUName(), getLoadStoreOffsetAlign(), getProcCpuinfoContent(), llvm::WebAssemblyAsmPrinter::getRegType(), getRetOpcode(), llvm::MCSubtargetInfo::getSchedModelForCPU(), getSchedRegions(), getSetupCost(), llvm::MipsTargetMachine::getTargetTransformInfo(), llvm::lto::getThinLTOOutputFile(), handleExecNameEncodedBEOpts(), handleExecNameEncodedOptimizerOpts(), Help(), HexagonLowerToMC(), INITIALIZE_PASS(), insertIfNamed(), insertParsePoints(), llvm::Mips16RegisterInfo::intRegClass(), isCallPromotable(), isPCRel32Branch(), isPrefixedOrGrouping(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::IsSameAsFreshTree(), llvm::LTOModule::isThinLTO(), llvm::MCAssembler::layout(), lle_X_sprintf(), LLVMDumpModule(), LLVMDumpType(), LLVMDumpValue(), LLVMSetLinkage(), LLVMVerifyFunction(), LLVMVerifyModule(), llvm::lto::localCache(), log2(), llvm::MSP430MCInstLower::Lower(), llvm::BPFMCInstLower::Lower(), llvm::LanaiMCInstLower::Lower(), llvm::WebAssemblyMCInstLower::lower(), lowerCallResult(), LowerCallResult(), llvm::AVRMCInstLower::lowerInstruction(), llvm::IntrinsicLowering::LowerIntrinsicCall(), llvm::BPFTargetLowering::LowerOperation(), llvm::HexagonTargetLowering::LowerOperation(), llvm::AMDGPUTargetLowering::LowerOperation(), makeCombineInst(), matchPair(), mayUsePostIncMode(), llvm::MipsSubtarget::MipsSubtarget(), llvm::WithColor::note(), llvm::FileInfo::openCoveragePath(), openFile(), llvm::PluginLoader::operator=(), llvm::LTOCodeGenerator::optimize(), OptimizeGlobalAddressOfMalloc(), llvm::ARMAttributeParser::Parse(), parseAndVerify(), parseCHRFilterFiles(), llvm::PassNameParser::passRegistered(), llvm::PPCHazardRecognizer970::PPCHazardRecognizer970(), llvm::ValueEnumerator::print(), llvm::detail::printBumpPtrAllocatorStats(), printForSigInfoIfNeeded(), PrintLoadStoreResults(), llvm::SourceMgr::PrintMessage(), PrintModRefResults(), PrintNoMatch(), printPassMessage(), PrintPercent(), PrintRecyclerStats(), PrintResults(), llvm::DebugCounter::push_back(), llvm::FileCheck::readCheckFile(), llvm::GCOVFile::readGCDA(), llvm::GCOVFunction::readGCDA(), llvm::GCOVBuffer::readGCDAFormat(), llvm::GCOVFunction::readGCNO(), llvm::GCOVBuffer::readGCNOFormat(), llvm::GCOVBuffer::readGCOVVersion(), llvm::GCOVBuffer::readInt(), llvm::GCOVBuffer::readString(), llvm::GenericScheduler::registerRoots(), llvm::PostGenericScheduler::registerRoots(), llvm::WithColor::remark(), removeUseSoftFloat(), reportError(), reportOpenError(), require(), llvm::cl::ResetAllOptionOccurrences(), llvm::RuntimeDyldCOFFX86_64::resolveRelocation(), llvm::RISCVTargetLowering::RISCVTargetLowering(), llvm::IRCEPass::run(), llvm::AAEvaluator::run(), llvm::GVN::run(), llvm::ThinLTOCodeGenerator::run(), llvm::Attributor::run(), runAttributorOnModule(), runFuzzerOnInputs(), llvm::DOTGraphTraitsPrinter< AnalysisT, IsSimple, GraphT, AnalysisGraphTraitsT >::runOnFunction(), llvm::DetectRoundChange::runOnMachineFunction(), llvm::DOTGraphTraitsModulePrinter< AnalysisT, IsSimple, GraphT, AnalysisGraphTraitsT >::runOnModule(), llvm::AMDGPUPALMetadata::setFromString(), llvm::SelectionDAG::setGraphAttrs(), llvm::SelectionDAG::setGraphColor(), llvm::SelectionDAG::setSubgraphColor(), llvm::MCSubtargetInfo::ToggleFeature(), llvm::OrcCBindingsStack::UnregisterJITEventListener(), UpgradeDebugInfo(), llvm::PeelingModuloScheduleExpander::validateAgainstModuloScheduleExpander(), llvm::PHITransAddr::Verify(), llvm::MachineFunction::verify(), llvm::LegalizerInfo::verify(), llvm::MachinePostDominatorTree::verifyAnalysis(), llvm::MachineDominatorTree::verifyAnalysis(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::VerifyDFSNumbers(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::VerifyLevels(), VerifyLowRegs(), verifyModule(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::verifyParentProperty(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::verifyReachability(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::verifyRoots(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::verifySiblingProperty(), VerifySubExpr(), llvm::MachineRegisterInfo::verifyUseList(), llvm::MachineFunction::viewCFG(), llvm::MachineFunction::viewCFGOnly(), llvm::DominatorTree::viewGraph(), llvm::ScheduleDAGMI::viewGraph(), llvm::SelectionDAG::viewGraph(), llvm::ScheduleDAG::viewGraph(), llvm::Interpreter::visitInstruction(), llvm::WithColor::warning(), writeCFGToDotFile(), WriteGraph(), llvm::AAEvaluator::~AAEvaluator(), and llvm::ThreadPool::~ThreadPool().
| Optional< StringRef > llvm::ExceptionBehaviorToStr | ( | fp::ExceptionBehavior | UseExcept | ) |
For any ExceptionBehavior enumerator, returns a string valid as input in constrained intrinsic exception behavior metadata.
Definition at line 62 of file FPEnv.cpp.
References llvm::fp::ebIgnore, llvm::fp::ebMayTrap, llvm::fp::ebStrict, and None.
Referenced by llvm::IRBuilder< TargetFolder >::CreateUnreachable().
| bool llvm::execMayBeModifiedBeforeAnyUse | ( | const MachineRegisterInfo & | MRI, |
| Register | VReg, | ||
| const MachineInstr & | DefMI | ||
| ) |
Return false if EXEC is not changed between the def of VReg at DefMI and all its uses.
Should be run on SSA. Currently does not attempt to track between blocks.
Definition at line 6520 of file SIInstrInfo.cpp.
References assert(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::MachineInstr::getParent(), llvm::MachineRegisterInfo::getTargetRegisterInfo(), I, llvm::MachineRegisterInfo::isSSA(), TRI, and llvm::MachineRegisterInfo::use_nodbg_instructions().
Referenced by getRegSubRegPair(), and isIdentityValue().
| bool llvm::execMayBeModifiedBeforeUse | ( | const MachineRegisterInfo & | MRI, |
| Register | VReg, | ||
| const MachineInstr & | DefMI, | ||
| const MachineInstr & | UseMI | ||
| ) |
Return false if EXEC is not changed between the def of VReg at DefMI and the use at UseMI.
Should be run on SSA. Currently does not attempt to track between blocks.
Definition at line 6487 of file SIInstrInfo.cpp.
References assert(), E, llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::MachineInstr::getParent(), llvm::MachineRegisterInfo::getTargetRegisterInfo(), I, llvm::MachineRegisterInfo::isSSA(), and TRI.
Referenced by getRegSubRegPair(), tryFoldInst(), and tryToFoldACImm().
| bool llvm::expandAtomicRMWToCmpXchg | ( | AtomicRMWInst * | AI, |
| CreateCmpXchgInstFun | CreateCmpXchg | ||
| ) |
Expand an atomic RMW instruction into a loop utilizing cmpxchg.
You'll want to make sure your target machine likes cmpxchg instructions in the first place and that there isn't another, better, transformation available (for example AArch32/AArch64 have linked loads).
This is useful in passes which can't rewrite the more exotic RMW instructions directly into a platform specific intrinsics (because, say, those intrinsics don't exist). If such a pass is able to expand cmpxchg instructions directly however, then, with this function, it could avoid two extra module passes (avoiding passes by -atomic-expand and itself). A specific example would be PNaCl's RewriteAtomics pass.
Given: atomicrmw some_op iN* addr, iN incr ordering
The standard expansion we produce is: [...] init_loaded = load atomic iN* addr br label loop loop: loaded = phi iN [ init_loaded, entry ], [ new_loaded, loop ] new = some_op iN loaded, incr ; This is what -atomic-expand will produce using this function on i686 targets: pair = cmpxchg iN* addr, iN loaded, iN new_val new_loaded = extractvalue { iN, i1 } pair, 0 success = extractvalue { iN, i1 } pair, 1 ; End callback produced IR br i1 success, label atomicrmw.end, label loop atomicrmw.end: [...]
Returns true if the containing function was modified.
Definition at line 1431 of file AtomicExpandPass.cpp.
References llvm::Instruction::eraseFromParent(), llvm::AtomicRMWInst::getOperation(), llvm::AtomicRMWInst::getOrdering(), llvm::AtomicRMWInst::getPointerOperand(), llvm::Value::getType(), llvm::AtomicRMWInst::getValOperand(), performAtomicOp(), and llvm::Value::replaceAllUsesWith().
Referenced by GetRMWLibcall(), and performAtomicOp().
| bool llvm::expandDivision | ( | BinaryOperator * | Div | ) |
Generate code to divide two integers, replacing Div with the generated code.
This currently generates code similarly to compiler-rt's implementations, but future work includes generating more specialized code when more information about the operands are known. Implements both 32bit and 64bit scalar division.
Replace Div with generated code.
Definition at line 433 of file IntegerDivision.cpp.
References assert(), llvm::User::dropAllReferences(), dyn_cast(), llvm::Instruction::eraseFromParent(), generateSignedDivisionCode(), generateUnsignedDivisionCode(), llvm::IRBuilderBase::GetInsertPoint(), llvm::Type::getIntegerBitWidth(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::BinaryOperator::getOpcode(), llvm::User::getOperand(), llvm::Value::getType(), llvm::Type::isVectorTy(), and llvm::Value::replaceAllUsesWith().
Referenced by expandDivisionUpTo32Bits(), expandDivisionUpTo64Bits(), and expandRemainder().
| bool llvm::expandDivisionUpTo32Bits | ( | BinaryOperator * | Div | ) |
Generate code to divide two integers, replacing Div with the generated code.
Generate code to divide two integers of bitwidth up to 32 bits.
Uses ExpandDivision with a 32bit Div which makes it useful for targets with little or no support for less than 32 bit arithmetic.
Replace Rem with generated code.
Uses the above routines and extends the inputs/truncates the outputs to operate in 32 bits; that is, these routines are good for targets that have no or very little support for smaller than 32 bit integer arithmetic.
Replace Div with emulation code.
Definition at line 583 of file IntegerDivision.cpp.
References assert(), llvm::IRBuilder< T, Inserter >::CreateSDiv(), llvm::IRBuilder< T, Inserter >::CreateSExt(), llvm::IRBuilder< T, Inserter >::CreateTrunc(), llvm::IRBuilder< T, Inserter >::CreateUDiv(), llvm::IRBuilder< T, Inserter >::CreateZExt(), llvm::User::dropAllReferences(), llvm::Instruction::eraseFromParent(), expandDivision(), llvm::IRBuilderBase::getInt32Ty(), llvm::Type::getIntegerBitWidth(), llvm::BinaryOperator::getOpcode(), llvm::User::getOperand(), llvm::Value::getType(), Int32Ty, llvm::Type::isVectorTy(), and llvm::Value::replaceAllUsesWith().
| bool llvm::expandDivisionUpTo64Bits | ( | BinaryOperator * | Div | ) |
Generate code to divide two integers, replacing Div with the generated code.
Generate code to divide two integers of bitwidth up to 64 bits.
Uses ExpandDivision with a 64bit Div.
Replace Rem with generated code.
Uses the above routines and extends the inputs/truncates the outputs to operate in 64 bits.
Replace Div with emulation code.
Definition at line 631 of file IntegerDivision.cpp.
References assert(), llvm::IRBuilder< T, Inserter >::CreateSDiv(), llvm::IRBuilder< T, Inserter >::CreateSExt(), llvm::IRBuilder< T, Inserter >::CreateTrunc(), llvm::IRBuilder< T, Inserter >::CreateUDiv(), llvm::IRBuilder< T, Inserter >::CreateZExt(), llvm::User::dropAllReferences(), llvm::Instruction::eraseFromParent(), expandDivision(), llvm::IRBuilderBase::getInt64Ty(), llvm::Type::getIntegerBitWidth(), llvm::BinaryOperator::getOpcode(), llvm::User::getOperand(), llvm::Value::getType(), llvm::Type::isVectorTy(), and llvm::Value::replaceAllUsesWith().
| void llvm::expandMemCpyAsLoop | ( | MemCpyInst * | MemCpy, |
| const TargetTransformInfo & | TTI | ||
| ) |
Expand MemCpy as a loop. MemCpy is not deleted.
Definition at line 408 of file LowerMemIntrinsics.cpp.
References createMemCpyLoopKnownSize(), createMemCpyLoopUnknownSize(), llvm::MemIntrinsicBase< Derived >::getDestAlignment(), llvm::MemIntrinsicBase< Derived >::getLength(), llvm::MemIntrinsicBase< Derived >::getRawDest(), llvm::MemTransferBase< BaseCL >::getRawSource(), llvm::MemTransferBase< BaseCL >::getSourceAlignment(), and llvm::MemIntrinsic::isVolatile().
Referenced by INITIALIZE_PASS().
| void llvm::expandMemMoveAsLoop | ( | MemMoveInst * | MemMove | ) |
Expand MemMove as a loop. MemMove is not deleted.
Definition at line 433 of file LowerMemIntrinsics.cpp.
References createMemMoveLoop(), llvm::MemIntrinsicBase< Derived >::getDestAlignment(), llvm::MemIntrinsicBase< Derived >::getLength(), llvm::MemIntrinsicBase< Derived >::getRawDest(), llvm::MemTransferBase< BaseCL >::getRawSource(), llvm::MemTransferBase< BaseCL >::getSourceAlignment(), and llvm::MemIntrinsic::isVolatile().
Referenced by INITIALIZE_PASS().
| void llvm::expandMemSetAsLoop | ( | MemSetInst * | MemSet | ) |
Expand MemSet as a loop. MemSet is not deleted.
Definition at line 444 of file LowerMemIntrinsics.cpp.
References createMemSetLoop(), llvm::MemIntrinsicBase< Derived >::getDestAlignment(), llvm::MemIntrinsicBase< Derived >::getLength(), llvm::MemIntrinsicBase< Derived >::getRawDest(), llvm::MemSetBase< BaseCL >::getValue(), and llvm::MemIntrinsic::isVolatile().
Referenced by INITIALIZE_PASS().
| bool llvm::expandRemainder | ( | BinaryOperator * | Rem | ) |
Generate code to calculate the remainder of two integers, replacing Rem with the generated code.
This currently generates code using the udiv expansion, but future work includes generating more specialized code, e.g. when more information about the operands are known. Implements both 32bit and 64bit scalar division.
Replace Rem with generated code.
Definition at line 375 of file IntegerDivision.cpp.
References assert(), llvm::User::dropAllReferences(), dyn_cast(), llvm::Instruction::eraseFromParent(), expandDivision(), generatedUnsignedRemainderCode(), generateSignedRemainderCode(), llvm::IRBuilderBase::GetInsertPoint(), llvm::Type::getIntegerBitWidth(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::BinaryOperator::getOpcode(), llvm::User::getOperand(), llvm::Value::getType(), llvm::Type::isVectorTy(), and llvm::Value::replaceAllUsesWith().
Referenced by expandRemainderUpTo32Bits(), and expandRemainderUpTo64Bits().
| bool llvm::expandRemainderUpTo32Bits | ( | BinaryOperator * | Rem | ) |
Generate code to calculate the remainder of two integers, replacing Rem with the generated code.
Generate code to compute the remainder of two integers of bitwidth up to 32 bits.
Uses ExpandReminder with a 32bit Rem which makes it useful for targets with little or no support for less than 32 bit arithmetic.
Replace Rem with generated code.
Uses the above routines and extends the inputs/truncates the outputs to operate in 32 bits; that is, these routines are good for targets that have no or very little suppport for smaller than 32 bit integer arithmetic.
Replace Rem with emulation code.
Definition at line 485 of file IntegerDivision.cpp.
References assert(), llvm::IRBuilder< T, Inserter >::CreateSExt(), llvm::IRBuilder< T, Inserter >::CreateSRem(), llvm::IRBuilder< T, Inserter >::CreateTrunc(), llvm::IRBuilder< T, Inserter >::CreateURem(), llvm::IRBuilder< T, Inserter >::CreateZExt(), llvm::User::dropAllReferences(), llvm::Instruction::eraseFromParent(), expandRemainder(), llvm::IRBuilderBase::getInt32Ty(), llvm::Type::getIntegerBitWidth(), llvm::BinaryOperator::getOpcode(), llvm::User::getOperand(), llvm::Value::getType(), Int32Ty, llvm::Type::isVectorTy(), and llvm::Value::replaceAllUsesWith().
| bool llvm::expandRemainderUpTo64Bits | ( | BinaryOperator * | Rem | ) |
Generate code to calculate the remainder of two integers, replacing Rem with the generated code.
Generate code to compute the remainder of two integers of bitwidth up to 64 bits.
Uses ExpandReminder with a 64bit Rem.
Replace Rem with generated code.
Uses the above routines and extends the inputs/truncates the outputs to operate in 64 bits.
Replace Rem with emulation code.
Definition at line 534 of file IntegerDivision.cpp.
References assert(), llvm::IRBuilder< T, Inserter >::CreateSExt(), llvm::IRBuilder< T, Inserter >::CreateSRem(), llvm::IRBuilder< T, Inserter >::CreateTrunc(), llvm::IRBuilder< T, Inserter >::CreateURem(), llvm::IRBuilder< T, Inserter >::CreateZExt(), llvm::User::dropAllReferences(), llvm::Instruction::eraseFromParent(), expandRemainder(), llvm::IRBuilderBase::getInt64Ty(), llvm::Type::getIntegerBitWidth(), llvm::BinaryOperator::getOpcode(), llvm::User::getOperand(), llvm::Value::getType(), llvm::Type::isVectorTy(), and llvm::Value::replaceAllUsesWith().
| ErrorOr<T> llvm::expectedToErrorOrAndEmitErrors | ( | LLVMContext & | Ctx, |
| Expected< T > | Val | ||
| ) |
Definition at line 41 of file BitcodeReader.h.
References errorToErrorCodeAndEmitErrors(), and llvm::Expected< T >::takeError().
Referenced by llvm::LTOModule::getProducerString(), llvm::LTOModule::isBitcodeForTarget(), LLVMGetBitcodeModuleInContext2(), LLVMParseBitcodeInContext2(), and parseBitcodeFileImpl().
Convert an Expected to an Optional without doing anything.
This method should be used only where an error can be considered a reasonable and expected return value.
Uses of this method are potentially indicative of problems: perhaps the error should be propagated further, or the error-producer should just return an Optional in the first place.
Definition at line 1012 of file Error.h.
References consumeError(), and None.
extractCallocCall - Returns the corresponding CallInst if the instruction is a calloc call.
Definition at line 408 of file MemoryBuiltins.cpp.
References I, and isCallocLikeFn().
Referenced by extractCallocCall(), and extractMallocCall().
|
inline |
Definition at line 158 of file MemoryBuiltins.h.
References extractCallocCall(), F(), isFreeCall(), and isLibFreeFunction().
|
static |
Definition at line 24 of file X86ShuffleDecodeConstantPool.cpp.
References assert(), llvm::APInt::extractBits(), llvm::Constant::getAggregateElement(), llvm::Type::getPrimitiveSizeInBits(), llvm::Type::getScalarSizeInBits(), llvm::Value::getType(), llvm::Type::getVectorElementType(), llvm::Type::getVectorNumElements(), llvm::APInt::getZExtValue(), llvm::APInt::insertBits(), llvm::APInt::isAllOnesValue(), llvm::Type::isIntegerTy(), llvm::Type::isVectorTy(), llvm::SmallVectorImpl< T >::resize(), llvm::APInt::setBit(), and llvm::APInt::setBits().
Referenced by DecodePSHUFBMask(), DecodeVPERMIL2PMask(), DecodeVPERMILPMask(), DecodeVPERMV3Mask(), DecodeVPERMVMask(), and DecodeVPPERMMask().
| const CallInst * llvm::extractMallocCall | ( | const Value * | I, |
| function_ref< const TargetLibraryInfo &(Function &)> | GetTLI | ||
| ) |
extractMallocCall - Returns the corresponding CallInst if the instruction is a malloc call.
Since CallInst::CreateMalloc() only creates calls, we ignore InvokeInst here.
Definition at line 320 of file MemoryBuiltins.cpp.
References dyn_cast(), I, and isMallocLikeFn().
Referenced by extractMallocCall(), and optimizeOnceStoredGlobal().
|
inline |
Definition at line 123 of file MemoryBuiltins.h.
References extractCallocCall(), extractMallocCall(), getMallocAllocatedType(), getMallocArraySize(), and getMallocType().
| GlobalValue * llvm::ExtractTypeInfo | ( | Value * | V | ) |
ExtractTypeInfo - Returns the type info, possibly bitcast, encoded in V.
Definition at line 158 of file Analysis.cpp.
References assert(), dyn_cast(), and llvm::Value::stripPointerCasts().
Referenced by ComputeLinearIndex(), FixedPointIntrinsicToOpcode(), and getOffsetFromIndices().
| testing::Matcher<const detail::ErrorHolder &> llvm::Failed | ( | ) |
Definition at line 147 of file Error.h.
References None.
Referenced by llvm::formatv_object_base::consumeFieldLayout(), llvm::LoopVectorizationRequirements::doesNotMeet(), encodeCnt(), llvm::yaml::Scanner::failed(), llvm::slpvectorizer::BoUpSLP::VLOperands::getModeStr(), llvm::SITargetLowering::getRegForInlineAsmConstraint(), parsePredicateConstraint(), parseRegisterNumber(), llvm::slpvectorizer::BoUpSLP::VLOperands::reorder(), and llvm::PeelingModuloScheduleExpander::validateAgainstModuloScheduleExpander().
| testing::Matcher<const detail::ErrorHolder &> llvm::Failed | ( | M | Matcher | ) |
| bool llvm::FastCC_ARM_APCS | ( | unsigned | ValNo, |
| MVT | ValVT, | ||
| MVT | LocVT, | ||
| CCValAssign::LocInfo | LocInfo, | ||
| ISD::ArgFlagsTy | ArgFlags, | ||
| CCState & | State | ||
| ) |
Referenced by llvm::ARMTargetLowering::CCAssignFnForReturn(), and getComparePred().
| formatted_raw_ostream & llvm::fdbgs | ( | ) |
fdbgs() - This returns a reference to a formatted_raw_ostream for debug output.
fdbgs() - This returns a reference to a formatted_raw_ostream for the debug stream.
Use it like: fdbgs() << "foo" << "bar";
Definition at line 104 of file FormattedStream.cpp.
References dbgs().
Referenced by llvm::formatted_raw_ostream::is_displayed().
| formatted_raw_ostream & llvm::ferrs | ( | ) |
ferrs() - This returns a reference to a formatted_raw_ostream for standard error.
Use it like: ferrs() << "foo" << "bar";
Definition at line 97 of file FormattedStream.cpp.
References errs().
Referenced by llvm::formatted_raw_ostream::is_displayed().
| void llvm::filterDeadComdatFunctions | ( | Module & | M, |
| SmallVectorImpl< Function *> & | DeadComdatFunctions | ||
| ) |
Filter out potentially dead comdat functions where other entries keep the entire comdat group alive.
This is designed for cases where functions appear to become dead but remain alive due to other live entries in their comdat group.
The DeadComdatFunctions container should only have pointers to Functions which are members of a comdat group and are believed to be dead.
After this routine finishes, the only remaining Functions in DeadComdatFunctions are those where every member of the comdat is listed and thus removing them is safe (provided all are removed).
Definition at line 189 of file ModuleUtils.cpp.
References llvm::Module::aliases(), assert(), C, llvm::DenseMapBase< SmallDenseMap< KeyT, ValueT, InlineBuckets, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::empty(), llvm::DenseMapBase< SmallDenseMap< KeyT, ValueT, InlineBuckets, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::DenseMapBase< SmallDenseMap< KeyT, ValueT, InlineBuckets, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::erase(), erase_if(), F(), llvm::DenseMapBase< SmallDenseMap< KeyT, ValueT, InlineBuckets, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::find(), llvm::Module::functions(), llvm::GlobalValue::getComdat(), and llvm::Module::globals().
Referenced by llvm::LegacyInlinerBase::removeDeadFunctions(), and llvm::AlwaysInlinerPass::run().
| void llvm::finalizeBundle | ( | MachineBasicBlock & | MBB, |
| MachineBasicBlock::instr_iterator | FirstMI, | ||
| MachineBasicBlock::instr_iterator | LastMI | ||
| ) |
finalizeBundle - Finalize a machine instruction bundle which includes a sequence of instructions starting from FirstMI to LastMI (exclusive).
This routine adds a BUNDLE instruction to represent the bundle, it adds IsInternalRead markers to MachineOperands which are defined inside the bundle, and it copies externally visible defs and uses to the BUNDLE instruction.
Definition at line 125 of file MachineInstrBundle.cpp.
References llvm::MachineInstrBuilder::addReg(), assert(), BuildMI(), llvm::SmallVectorImpl< T >::clear(), llvm::SmallSet< T, N, C >::count(), llvm::numbers::e, llvm::SmallSet< T, N, C >::erase(), llvm::MachineInstr::FrameDestroy, llvm::MachineInstr::FrameSetup, llvm::MCInstrInfo::get(), getDeadRegState(), getDebugLoc(), getDefRegState(), getImplRegState(), llvm::TargetSubtargetInfo::getInstrInfo(), getKillRegState(), llvm::MachineBasicBlock::getParent(), llvm::MachineOperand::getReg(), llvm::TargetSubtargetInfo::getRegisterInfo(), llvm::MachineFunction::getSubtarget(), getUndefRegState(), llvm::SmallSet< T, N, C >::insert(), llvm::MachineOperand::isDead(), llvm::MachineOperand::isDef(), llvm::MachineOperand::isKill(), llvm::Register::isPhysicalRegister(), llvm::MachineOperand::isReg(), llvm::MachineOperand::isUndef(), isUndef(), llvm::MCRegisterInfo::DiffListIterator::isValid(), llvm::MIBundleBuilder::prepend(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), Reg, llvm::MachineOperand::setIsInternalRead(), llvm::MachineInstrBuilder::setMIFlag(), llvm::SmallVectorBase::size(), SubReg, TII, and TRI.
Referenced by llvm::SITargetLowering::bundleInstWithWaitcnt(), llvm::HexagonPacketizerList::endPacket(), llvm::VLIWPacketizerList::endPacket(), llvm::SIInstrInfo::expandPostRAPseudo(), finalizeBundle(), finalizeBundles(), findVCMPToFoldIntoVPST(), isCopy(), and makeImplicit().
| MachineBasicBlock::instr_iterator llvm::finalizeBundle | ( | MachineBasicBlock & | MBB, |
| MachineBasicBlock::instr_iterator | FirstMI | ||
| ) |
finalizeBundle - Same functionality as the previous finalizeBundle except the last instruction in the bundle is not provided as an input.
This is used in cases where bundles are pre-determined by marking instructions with 'InsideBundle' marker. It returns the MBB instruction iterator that points to the end of the bundle.
Definition at line 245 of file MachineInstrBundle.cpp.
References E, finalizeBundle(), and llvm::MachineBasicBlock::instr_end().
| bool llvm::finalizeBundles | ( | MachineFunction & | MF | ) |
finalizeBundles - Finalize instruction bundles in the specified MachineFunction.
Return true if any bundles are finalized.
Definition at line 257 of file MachineInstrBundle.cpp.
References assert(), llvm::MachineFunction::begin(), E, llvm::MachineFunction::end(), finalizeBundle(), I, llvm::MachineBasicBlock::instr_begin(), and llvm::MachineBasicBlock::instr_end().
Referenced by INITIALIZE_PASS().
| auto llvm::find | ( | R && | Range, |
| const T & | Val | ||
| ) | -> decltype(adl_begin(Range)) |
Provide wrappers to std::find which take ranges instead of having to pass begin/end explicitly.
Definition at line 1203 of file STLExtras.h.
References adl_begin(), and adl_end().
Referenced by llvm::cl::Option::addCategory(), addLocIfNotPresent(), llvm::MCObjectStreamer::addPendingLabel(), llvm::GCNSubtarget::adjustSchedDependency(), llvm::LiveRange::advanceTo(), llvm::LoopVectorizationCostModel::calculateRegisterUsage(), canFoldIVIncExpr(), llvm::LoopInfoBase< BasicBlock, Loop >::changeTopLevelLoop(), llvm::ScheduleDAGInstrs::Value2SUsMap::clearList(), llvm::DominanceFrontierBase< BasicBlock, false >::compare(), computeUnlikelySuccessors(), llvm::MachineBasicBlock::copySuccessor(), llvm::SparseSet< unsigned, llvm::VirtReg2IndexFunctor >::count(), llvm::StringMap< uint64_t >::count(), llvm::SmallPtrSetImpl< const llvm::SCEV * >::count(), CreateGCRelocates(), createObjCARCOptPass(), createSeparateConstOffsetFromGEPPass(), def_chain(), deleteDeadLoop(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::DeleteEdge(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::DeleteUnreachable(), llvm::ARMFrameLowering::determineCalleeSaves(), llvm::DWARFUnit::determineStringOffsetsTableContribution(), dropRegDescribedVar(), llvm::GVNExpression::Expression::dump(), EmitCamlGlobal(), llvm::SparseSet< unsigned, llvm::VirtReg2IndexFunctor >::erase(), llvm::StringMap< uint64_t >::erase(), llvm::PriorityQueue< T, Sequence, Compare >::erase_one(), llvm::slpvectorizer::BoUpSLP::eraseInstructions(), llvm::DominatorTreeBase< BasicBlock, IsPostDom >::eraseNode(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::EraseNode(), llvm::mca::InstructionTables::execute(), ExpandCryptoAEK(), llvm::sys::DynamicLibrary::HandleSet::Find(), llvm::rdf::IndexedSet< const uint32_t *>::find(), llvm::msgpack::MapDocNode::find(), llvm::LiveRange::find(), llvm::ReadyQueue::find(), llvm::LiveRange::FindSegmentContaining(), llvm::ScalarEvolution::forgetValue(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::ChildrenGetter< Inverse >::Get(), llvm::DWARFDie::getAddressRanges(), llvm::DWARFDie::getAttributeValueAsReferencedDie(), llvm::DWARFDie::getCallerFrame(), llvm::DWARFUnit::getCompilationDir(), llvm::MachineBranchProbabilityInfo::getEdgeProbability(), llvm::DWARFDie::getHighPC(), llvm::rdf::LaneMaskIndex::getIndexForLaneMask(), getLayoutSuccessorProbThreshold(), llvm::GCOVBlock::getLineCount(), llvm::DWARFDie::getLocations(), llvm::DWARFDie::getLocBaseAttribute(), llvm::DWARFDie::getLowAndHighPC(), getOutliningPenalty(), llvm::HexagonTargetLowering::getPreferredVectorAction(), llvm::DWARFDie::getRangesBaseAttribute(), getReassignedChan(), getReducedType(), llvm::slpvectorizer::BoUpSLP::getTreeCost(), getUnconditionalBrDisp(), hasProfileData(), llvm::cl::HideUnrelatedOptions(), llvm::GraphDiff< llvm::BasicBlock *, IsPostDom >::ignoreChild(), INITIALIZE_PASS(), llvm::rdf::IndexedSet< const uint32_t *>::insert(), llvm::IntervalMap< SlotIndex, unsigned >::insert(), llvm::MemorySSAUpdater::insertDef(), is_contained(), llvm::PBQP::RegAlloc::NodeMetadata::isConservativelyAllocatable(), isCPUValid(), isCriticalEdge(), isDebug(), isImageOrSamplerVal(), llvm::LegalizerInfo::isLegal(), llvm::HexagonPacketizerList::isLegalToPacketizeTogether(), llvm::LiveRange::isLiveAtIndexes(), llvm::LoopBase< BasicBlock, Loop >::isLoopLatch(), IsMinMaxConsistingOf(), llvm::DataLayout::isNonIntegralAddressSpace(), isProfitableChain(), isSupportedGuardInstruction(), isUnconditionalBranch(), llvm::AMDGPULibCalls::isUnsafeMath(), llvm::object::MachOObjectFile::isValidArch(), isValidCandidateForColdCC(), llvm::LiveRange::liveAt(), llvm::StringMap< uint64_t >::lookup(), LowerBUILD_VECTOR_i1(), lowerV8I16GeneralSingleInputShuffle(), lowerVECTOR_SHUFFLE(), MergeBasicBlockIntoOnlyPred(), MergeBlockIntoPredecessor(), mergeConditionalStoreToAddress(), moveLCSSAPhis(), llvm::LiveRange::overlaps(), llvm::IntervalMap< SlotIndex, unsigned >::overlaps(), llvm::InlineAsm::ConstraintInfo::Parse(), llvm::InlineAsm::ParseConstraints(), AbstractManglingParser< ManglingParser< Alloc >, Alloc >::parseUnnamedTypeName(), llvm::LiveRange::Query(), rebuildLoopAfterUnswitch(), llvm::AArch64TargetLowering::ReconstructShuffle(), reduceBuildVecToShuffleWithZero(), llvm::OuterAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs >::Result::registerOuterAnalysisInvalidation(), llvm::StatepointLoweringState::relocCallVisited(), llvm::LatencyPriorityQueue::remove(), llvm::ResourcePriorityQueue::remove(), llvm::SetVector< llvm::AbstractAttribute *>::remove(), llvm::DominanceFrontierBase< BasicBlock, false >::removeBlock(), llvm::LoopBase< BasicBlock, Loop >::removeBlockFromLoop(), llvm::LoopBase< BasicBlock, Loop >::removeChildLoop(), RemoveInstInputs(), llvm::LiveVariables::VarInfo::removeKill(), llvm::GISelObserverWrapper::removeObserver(), llvm::SUnit::removePred(), llvm::BasicBlock::removePredecessor(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::RemoveRedundantRoots(), llvm::PassRegistry::removeRegistrationListener(), llvm::MachineBasicBlock::removeSuccessor(), llvm::LoopBase< BasicBlock, Loop >::replaceChildLoopWith(), rescheduleCanonically(), reservePreviousStackSlotForValue(), llvm::InlinerPass::run(), llvm::mca::Scheduler::sanityCheck(), llvm::SIScheduleBlock::schedule(), setBranchProb(), llvm::DomTreeNodeBase< VPBlockBase >::setIDom(), SimplifyShuffleVectorInst(), llvm::InstCombiner::SliceUpIllegalIntegerPHI(), SplitCriticalEdge(), splitMBB(), llvm::MachineBasicBlock::splitSuccessor(), llvm::MCDwarfLineTableHeader::tryGetFile(), TryToSimplifyUncondBranchFromEmptyBlock(), llvm::LegalityPredicates::typeInSet(), llvm::LegalityPredicates::typePairInSet(), llvm::GCOVBlock::unblock(), llvm::AssumptionCache::unregisterAssumption(), llvm::MCJIT::UnregisterJITEventListener(), llvm::OrcCBindingsStack::UnregisterJITEventListener(), llvm::AssumptionCache::updateAffectedValues(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::UpdateRootsBeforeInsertion(), llvm::HexagonSubtarget::usePredicatedCalls(), usesOperand(), verifyBlocksInRegion(), llvm::MemorySSA::verifyOrderingDominationAndDefUses(), and VerifySubExpr().
| auto llvm::find_if | ( | R && | Range, |
| UnaryPredicate | P | ||
| ) | -> decltype(adl_begin(Range)) |
Provide wrappers to std::find_if which take ranges instead of having to pass begin/end explicitly.
Definition at line 1210 of file STLExtras.h.
References adl_begin(), adl_end(), and P.
Referenced by addRegLanes(), llvm::RegionBase< RegionTraits< Function > >::addSubRegion(), llvm::SIMachineFunctionInfo::allocateVGPRSpillToAGPR(), areCFlagsAccessedBetweenInstrs(), callingConvSupported(), canTurnIntoCOPY(), collectVirtualRegUses(), ConvertCostTableLookup(), CostTableLookup(), createBlockExtractorPass(), createControlHeightReductionLegacyPass(), llvm::pdb::SymbolCache::createGlobalsEnumerator(), llvm::mca::EntryStage::cycleEnd(), llvm::GCNIterativeScheduler::detachSchedule(), llvm::RegPressureTracker::discoverLiveInOrOut(), DoInitialMatch(), llvm::ArrayRef< llvm::irsymtab::storage::Comdat >::drop_until(), llvm::MutableArrayRef< BitWord >::drop_until(), llvm::orc::JITDylib::dump(), llvm::PMDataManager::emitInstrCountChangedRemark(), llvm::CodeViewContext::emitLineTableForFunction(), llvm::TimeTraceProfiler::end(), llvm::SwitchInst::findCaseValue(), llvm::DGNode< NodeType, EdgeType >::findEdgeTo(), findIntrinsicID(), llvm::DirectedGraph< NodeType, EdgeType >::findNode(), llvm::ModuleSummaryIndex::findSummaryInModule(), findUncondBrI(), getAllocationDataForFunction(), llvm::CacheCost::getCacheCost(), llvm::AVRMCExpr::getKindByName(), llvm::CacheCost::getLoopCost(), llvm::AVRMCExpr::getName(), llvm::rdf::Liveness::getNearestAliasedRef(), getRegLanes(), getTargetIndexName(), INITIALIZE_PASS(), llvm::HexagonFrameLowering::insertCFIInstructions(), llvm::xray::Profile::internPath(), isCallInstruction(), isEXTMask(), llvm::MachineBasicBlock::isLiveIn(), LLVMGetTargetFromName(), loadObj(), llvm::TargetRegistry::lookupTarget(), lowerShuffleAsElementInsertion(), lowerShuffleWithSHUFPS(), llvm::HexagonTargetLowering::LowerVECTOR_SHUFFLE(), mayTailCallThisCC(), llvm::simple_ilist< MachineInstr, Options... >::merge(), namespaceOverrides(), llvm::rdf::operator<<(), optimizeVcndVcmpPair(), parsePhysicalReg(), llvm::MCSectionMachO::ParseSectionSpecifier(), llvm::ValueEnumerator::print(), llvm::SMDiagnostic::print(), llvm::SwiftErrorValueTracking::propagateVRegs(), llvm::GVNHoist::rank(), llvm::RegPressureTracker::recede(), RemoveDeadAddBetweenLEAAndJT(), llvm::orc::JITDylib::removeFromSearchOrder(), llvm::orc::JITDylib::removeGenerator(), llvm::PassManagerBuilder::removeGlobalExtension(), llvm::LazyCallGraph::RefSCC::removeInternalRefEdge(), llvm::MachineBasicBlock::removeLiveIn(), removeRegLanes(), llvm::RegionBase< RegionTraits< Function > >::removeSubRegion(), rescheduleCanonically(), scavengeVReg(), selectCallee(), llvm::EngineBuilder::selectTarget(), setRegZero(), setRequiredFeatureString(), sinkRegion(), llvm::LazyCallGraph::RefSCC::switchInternalEdgeToRef(), llvm::ArrayRef< llvm::irsymtab::storage::Comdat >::take_until(), llvm::MutableArrayRef< BitWord >::take_until(), llvm::AMDGPUSymbolizer::tryAddingSymbolicOperand(), tryToFoldACImm(), tryUnmergingGEPsAcrossIndirectBr(), llvm::LegalityPredicates::typePairAndMemDescInSet(), WindowsRequiresStackProbe(), and llvm::sampleprof::SampleProfileWriter::write().
| auto llvm::find_if_not | ( | R && | Range, |
| UnaryPredicate | P | ||
| ) | -> decltype(adl_begin(Range)) |
Definition at line 1215 of file STLExtras.h.
References adl_begin(), adl_end(), and P.
Referenced by llvm::ArrayRef< llvm::irsymtab::storage::Comdat >::drop_while(), llvm::MutableArrayRef< BitWord >::drop_while(), getNextMachineInstrInBB(), llvm::MemorySSA::insertIntoListsForBlock(), llvm::ArrayRef< llvm::irsymtab::storage::Comdat >::take_while(), llvm::MutableArrayRef< BitWord >::take_while(), and turnVectorIntoSplatVector().
| bool llvm::findAllNVVMAnnotation | ( | const GlobalValue * | gv, |
| const std::string & | prop, | ||
| std::vector< unsigned > & | retval | ||
| ) |
Definition at line 119 of file NVPTXUtilities.cpp.
References cacheAnnotationFromMD(), and llvm::GlobalValue::getParent().
Referenced by getAlign(), isImageReadOnly(), isImageReadWrite(), isImageWriteOnly(), and isSampler().
| AllocaInst* llvm::findAllocaForValue | ( | Value * | V, |
| DenseMap< Value *, AllocaInst *> & | AllocaForValue | ||
| ) |
Finds alloca where the value comes from.
Referenced by GetCtorAndDtorPriority(), getKnownAlignment(), and postDominates().
| Value * llvm::FindAvailableLoadedValue | ( | LoadInst * | Load, |
| BasicBlock * | ScanBB, | ||
| BasicBlock::iterator & | ScanFrom, | ||
| unsigned | MaxInstsToScan = DefMaxInstsToScan, |
||
| AliasAnalysis * | AA = nullptr, |
||
| bool * | IsLoadCSE = nullptr, |
||
| unsigned * | NumScanedInst = nullptr |
||
| ) |
Scan backwards to see if we have the value of the given load available locally within a small number of instructions.
You can use this function to scan across multiple blocks: after you call this function, if ScanFrom points at the beginning of the block, it's safe to continue scanning the predecessors.
Note that performing load CSE requires special care to make sure the metadata is set appropriately. In particular, aliasing metadata needs to be merged. (This doesn't matter for store-to-load forwarding because the only relevant load gets deleted.)
| Load | The load we want to replace. | |
| ScanBB | The basic block to scan. | |
| [in,out] | ScanFrom | The location to start scanning from. When this function returns, it points at the last instruction scanned. |
| MaxInstsToScan | The maximum number of instructions to scan. If this is zero, the whole block will be scanned. | |
| AA | Optional pointer to alias analysis, to make the scan more precise. | |
| [out] | IsLoadCSE | Whether the returned value is a load from the same location in memory, as opposed to the value operand of a store. |
Definition at line 361 of file Loads.cpp.
References FindAvailablePtrLoadStore(), llvm::LoadInst::getPointerOperand(), llvm::Value::getType(), llvm::Instruction::isAtomic(), and llvm::LoadInst::isUnordered().
Referenced by isZero(), log2(), llvm::JumpThreadingPass::SimplifyPartiallyRedundantLoad(), and llvm::InstCombiner::visitLoadInst().
| Value * llvm::FindAvailablePtrLoadStore | ( | Value * | Ptr, |
| Type * | AccessTy, | ||
| bool | AtLeastAtomic, | ||
| BasicBlock * | ScanBB, | ||
| BasicBlock::iterator & | ScanFrom, | ||
| unsigned | MaxInstsToScan, | ||
| AliasAnalysis * | AA, | ||
| bool * | IsLoad, | ||
| unsigned * | NumScanedInst | ||
| ) |
Scan backwards to see if we have the value of the given pointer available locally within a small number of instructions.
You can use this function to scan across multiple blocks: after you call this function, if ScanFrom points at the beginning of the block, it's safe to continue scanning the predecessors.
| Ptr | The pointer we want the load and store to originate from. | |
| AccessTy | The access type of the pointer. | |
| AtLeastAtomic | Are we looking for at-least an atomic load/store ? In case it is false, we can return an atomic or non-atomic load or store. In case it is true, we need to return an atomic load or store. | |
| ScanBB | The basic block to scan. | |
| [in,out] | ScanFrom | The location to start scanning from. When this function returns, it points at the last instruction scanned. |
| MaxInstsToScan | The maximum number of instructions to scan. If this is zero, the whole block will be scanned. | |
| AA | Optional pointer to alias analysis, to make the scan more precise. | |
| [out] | IsLoad | Whether the returned value is a load from the same location in memory, as opposed to the value operand of a store. |
Definition at line 376 of file Loads.cpp.
References AreEquivalentAddressValues(), llvm::BasicBlock::begin(), llvm::Module::getDataLayout(), llvm::AAResults::getModRefInfo(), llvm::BasicBlock::getModule(), llvm::DataLayout::getTypeStoreSize(), llvm::CastInst::isBitOrNoopPointerCastable(), isModSet(), llvm::Instruction::mayWriteToMemory(), llvm::LocationSize::precise(), SI, and llvm::Value::stripPointerCasts().
Referenced by FindAvailableLoadedValue(), and llvm::JumpThreadingPass::SimplifyPartiallyRedundantLoad().
| MachineInstr * llvm::findCMPToFoldIntoCBZ | ( | MachineInstr * | Br, |
| const TargetRegisterInfo * | TRI | ||
| ) |
Search backwards from a tBcc to find a tCMPi8 against 0, meaning we can convert them to a tCBZ or tCBNZ.
Return nullptr if not found.
Definition at line 5386 of file ARMBaseInstrInfo.cpp.
References llvm::ARMCC::AL, llvm::MachineBasicBlock::begin(), getInstrPredicate(), llvm::MachineInstr::getParent(), isARMLowRegister(), registerDefinedBetween(), and TRI.
Referenced by getUnconditionalBrDisp(), llvm::ARMBaseInstrInfo::isProfitableToIfCvt(), isValidCoprocessorNumber(), and llvm::ARMBaseInstrInfo::predictBranchSizeForIfCvt().
| TinyPtrVector< DbgVariableIntrinsic * > llvm::FindDbgAddrUses | ( | Value * | V | ) |
Finds all intrinsics declaring local variables as living in the memory that 'V' points to.
This may include a mix of dbg.declare and dbg.addr intrinsics.
Definition at line 1502 of file Local.cpp.
References llvm::Value::getContext(), llvm::MetadataAsValue::getIfExists(), llvm::LocalAsMetadata::getIfExists(), llvm::Value::isUsedByMetadata(), llvm::TinyPtrVector< EltTy >::push_back(), and llvm::Value::users().
Referenced by getKnownAlignment(), getTypePartition(), isAllocaPromotable(), replaceDbgDeclare(), and llvm::InstCombiner::visitAllocSite().
| void llvm::findDbgUsers | ( | SmallVectorImpl< DbgVariableIntrinsic *> & | DbgInsts, |
| Value * | V | ||
| ) |
Finds the debug info intrinsics describing a value.
Definition at line 1536 of file Local.cpp.
References llvm::Value::getContext(), llvm::MetadataAsValue::getIfExists(), llvm::LocalAsMetadata::getIfExists(), llvm::Value::isUsedByMetadata(), llvm::SmallVectorTemplateBase< T >::push_back(), and llvm::Value::users().
Referenced by dropDebugUsers(), llvm::CodeExtractor::extractCodeRegion(), getKnownAlignment(), replaceDbgUsesWithUndef(), rewriteDebugUsers(), salvageDebugInfo(), and TryToSinkInstruction().
| void llvm::findDbgValues | ( | SmallVectorImpl< DbgValueInst *> & | DbgValues, |
| Value * | V | ||
| ) |
Finds the llvm.dbg.value intrinsics describing a value.
Definition at line 1524 of file Local.cpp.
References llvm::Value::getContext(), llvm::MetadataAsValue::getIfExists(), llvm::LocalAsMetadata::getIfExists(), llvm::Value::isUsedByMetadata(), llvm::SmallVectorTemplateBase< T >::push_back(), and llvm::Value::users().
Referenced by formLCSSAForInstructions(), getKnownAlignment(), operator<<(), PhiHasDebugValue(), and RewriteUsesOfClonedInstructions().
| SmallVector< Instruction *, 8 > llvm::findDefsUsedOutsideOfLoop | ( | Loop * | L | ) |
Returns the instructions that use values defined in the loop.
Definition at line 120 of file LoopUtils.cpp.
References any_of(), llvm::LoopBase< BlockT, LoopT >::contains(), llvm::LoopBase< BlockT, LoopT >::getBlocks(), llvm::SmallVectorTemplateBase< T >::push_back(), and Users.
Referenced by llvm::LoopVersioning::versionLoop().
| void llvm::findDevirtualizableCallsForTypeCheckedLoad | ( | SmallVectorImpl< DevirtCallSite > & | DevirtCalls, |
| SmallVectorImpl< Instruction *> & | LoadedPtrs, | ||
| SmallVectorImpl< Instruction *> & | Preds, | ||
| bool & | HasNonCallUses, | ||
| const CallInst * | CI, | ||
| DominatorTree & | DT | ||
| ) |
Given a call to the intrinsic @llvm.type.checked.load, find all devirtualizable call sites based on the call and return them in DevirtCalls.
Definition at line 97 of file TypeMetadataUtils.cpp.
References assert(), dyn_cast(), findCallsAtConstantOffset(), llvm::CallBase::getArgOperand(), llvm::CallBase::getCalledFunction(), llvm::Function::getIntrinsicID(), llvm::SmallVectorTemplateBase< T >::push_back(), and llvm::Value::uses().
Referenced by AddCalls(), and addIntrinsicToSummary().
| void llvm::findDevirtualizableCallsForTypeTest | ( | SmallVectorImpl< DevirtCallSite > & | DevirtCalls, |
| SmallVectorImpl< CallInst *> & | Assumes, | ||
| const CallInst * | CI, | ||
| DominatorTree & | DT | ||
| ) |
Given a call to the intrinsic @llvm.type.test, find all devirtualizable call sites based on the call and return them in DevirtCalls.
Definition at line 73 of file TypeMetadataUtils.cpp.
References assert(), llvm::SmallVectorBase::empty(), F(), findLoadCallsAtConstantOffset(), llvm::CallBase::getArgOperand(), llvm::CallBase::getCalledFunction(), llvm::Function::getIntrinsicID(), llvm::Instruction::getParent(), llvm::BasicBlock::getParent(), llvm::GlobalValue::getParent(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::Value::stripPointerCasts(), and llvm::Value::uses().
Referenced by AddCalls(), and addIntrinsicToSummary().
| T llvm::findFirstSet | ( | T | Val, |
| ZeroBehavior | ZB = ZB_Max |
||
| ) |
Get the index of the first set bit starting from the least significant bit.
Only unsigned integral types are allowed.
| ZB | the behavior on an input of 0. Only ZB_Max and ZB_Undefined are valid arguments. |
Definition at line 239 of file MathExtras.h.
References countTrailingZeros(), max(), ZB_Max, and ZB_Undefined.
Referenced by llvm::X86InstrInfo::commuteInstructionImpl(), llvm::RISCVMatInt::generateInstSeq(), isShiftedUIntAtAnyPosition(), isStringOfOnes(), and partLSB().
| int llvm::findFirstVPTPredOperandIdx | ( | const MachineInstr & | MI | ) |
Definition at line 716 of file Thumb2InstrInfo.cpp.
References llvm::numbers::e, llvm::MachineInstr::getDesc(), llvm::MCInstrDesc::getNumOperands(), llvm::ARM::isVpred(), llvm::MCOperandInfo::OperandType, and llvm::MCInstrDesc::OpInfo.
Referenced by llvm::Thumb2InstrInfo::getRegisterInfo(), and getVPTInstrPredicate().
| void llvm::FindFunctionBackedges | ( | const Function & | F, |
| SmallVectorImpl< std::pair< const BasicBlock *, const BasicBlock *> > & | Result | ||
| ) |
Analyze the specified function to find all of the loop backedges in the function and return them.
FindFunctionBackedges - Analyze the specified function to find all of the loop backedges in the function and return them.
This is a relatively cheap (compared to computing dominators and loop info) analysis.
The output is added to Result, as pairs of <from,to> edge info.
Definition at line 27 of file CFG.cpp.
References llvm::SmallVectorTemplateCommon< T >::back(), llvm::SmallPtrSetImpl< PtrType >::count(), llvm::SmallVectorBase::empty(), llvm::SmallPtrSetImpl< PtrType >::erase(), llvm::Function::getEntryBlock(), I, llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T >::push_back(), succ_begin(), succ_empty(), and succ_end().
Referenced by llvm::JumpThreadingPass::FindLoopHeaders(), iterativelySimplifyCFG(), and llvm::orc::BlockFreqQuery::operator()().
|
inline |
Definition at line 31 of file IndirectCallVisitor.h.
References llvm::PGOIndirectCallVisitor::IndirectCalls, and llvm::InstVisitor< SubClass, RetTy >::visit().
Referenced by llvm::pgo::promoteIndirectCall().
| Value * llvm::FindInsertedValue | ( | Value * | V, |
| ArrayRef< unsigned > | idx_range, | ||
| Instruction * | InsertBefore = nullptr |
||
| ) |
Given an aggregate and an sequence of indices, see if the scalar value indexed is already around as a register, for example if it were inserted directly into the aggregate.
Given an aggregate and a sequence of indices, see if the scalar value indexed is already around as a register, for example if it was inserted directly into the aggregate.
If InsertBefore is not null, this function will duplicate (modified) insertvalues when a part of a nested struct is extracted.
Definition at line 3532 of file ValueTracking.cpp.
References llvm::SmallVectorImpl< T >::append(), assert(), llvm::ArrayRef< T >::begin(), BuildSubAggregate(), C, llvm::numbers::e, llvm::ArrayRef< T >::empty(), llvm::ArrayRef< T >::end(), llvm::ExtractValueInst::getIndexedType(), llvm::Value::getType(), llvm::Type::isArrayTy(), llvm::Type::isStructTy(), makeArrayRef(), llvm::SmallVectorImpl< T >::reserve(), llvm::SmallVectorBase::size(), llvm::ArrayRef< T >::size(), size(), and llvm::ArrayRef< T >::slice().
Referenced by BuildSubAggregate(), isZero(), and PropagateConstantReturn().
| T llvm::findLastSet | ( | T | Val, |
| ZeroBehavior | ZB = ZB_Max |
||
| ) |
Get the index of the last set bit starting from the least significant bit.
Only unsigned integral types are allowed.
| ZB | the behavior on an input of 0. Only ZB_Max and ZB_Undefined are valid arguments. |
Definition at line 280 of file MathExtras.h.
References countLeadingZeros(), max(), ZB_Max, and ZB_Undefined.
Referenced by llvm::SystemZSelectionDAGInfo::EmitTargetCodeForMemset(), isShiftedUIntAtAnyPosition(), partMSB(), selectI64Imm(), and selectI64ImmInstrCount().
|
static |
Definition at line 423 of file ConvertUTF.cpp.
References assert(), and isLegalUTF8Sequence().
Referenced by ConvertUTF8toUTF32Impl().
| bool llvm::findOneNVVMAnnotation | ( | const GlobalValue * | gv, |
| const std::string & | prop, | ||
| unsigned & | retval | ||
| ) |
Definition at line 105 of file NVPTXUtilities.cpp.
References cacheAnnotationFromMD(), and llvm::GlobalValue::getParent().
Referenced by getMaxNReg(), getMaxNTIDx(), getMaxNTIDy(), getMaxNTIDz(), getMinCTASm(), getReqNTIDx(), getReqNTIDy(), getReqNTIDz(), isKernelFunction(), isManaged(), isSampler(), isSurface(), and isTexture().
Find string metadata for a loop.
Returns the MDNode where the first operand is the metadata's name. The following operands are the metadata's values. If no metadata with Name is found, return nullptr.
Definition at line 1003 of file LoopInfo.cpp.
References findOptionMDForLoopID(), llvm::Loop::getLoopID(), and Name.
Referenced by findStringMetadataForLoop(), getOptionalBoolLoopAttribute(), llvm::Loop::isAnnotatedParallel(), and llvm::LoopInfoWrapperPass::releaseMemory().
Find and return the loop attribute node for the attribute Name in LoopID.
Return nullptr if there is no such attribute.
Definition at line 977 of file LoopInfo.cpp.
References assert(), dyn_cast(), llvm::numbers::e, llvm::StringRef::equals(), llvm::MDNode::getNumOperands(), llvm::MDNode::getOperand(), and llvm::MDString::getString().
Referenced by findOptionMDForLoop(), makeFollowupLoopID(), and llvm::LoopInfoWrapperPass::releaseMemory().
| MachineBasicBlock::iterator llvm::findPHICopyInsertPoint | ( | MachineBasicBlock * | MBB, |
| MachineBasicBlock * | SuccMBB, | ||
| unsigned | SrcReg | ||
| ) |
findPHICopyInsertPoint - Find a safe place in MBB to insert a copy from SrcReg when following the CFG edge to SuccMBB.
This needs to be after any def of SrcReg, but before any subsequent point where control flow might jump out of the basic block.
Definition at line 21 of file PHIEliminationUtils.cpp.
References llvm::MachineBasicBlock::begin(), llvm::SmallPtrSetImpl< PtrType >::begin(), llvm::SmallPtrSetImpl< PtrType >::count(), llvm::SmallPtrSetImplBase::empty(), llvm::MachineBasicBlock::empty(), llvm::MachineBasicBlock::end(), llvm::MachineBasicBlock::getFirstTerminator(), llvm::MachineBasicBlock::getParent(), llvm::MachineFunction::getRegInfo(), llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::MachineBasicBlock::isEHPad(), MRI, llvm::MachineRegisterInfo::reg_instructions(), llvm::SmallPtrSetImplBase::size(), and llvm::MachineBasicBlock::SkipPHIsAndLabels().
Referenced by allPhiOperandsUndefined(), and subRangeLiveAt().
Given a vector and an element number, see if the scalar value is already around as a register, for example if it were inserted then extracted from the vector.
Definition at line 262 of file VectorUtils.cpp.
References assert(), C, llvm::UndefValue::get(), llvm::Constant::getAggregateElement(), llvm::Value::getType(), llvm::Type::getVectorNumElements(), llvm::Type::isVectorTy(), llvm::PatternMatch::m_Add(), llvm::PatternMatch::m_Constant(), llvm::PatternMatch::m_Value(), and llvm::PatternMatch::match().
Referenced by foldBitcastExtElt(), and SimplifyExtractElementInst().
| Optional< const MDOperand * > llvm::findStringMetadataForLoop | ( | const Loop * | TheLoop, |
| StringRef | Name | ||
| ) |
Find string metadata for loop.
If it has a value (e.g. {"llvm.distribute", 1} return the value as an operand or null otherwise. If the string metadata is not found return Optional's not-a-value.
Definition at line 251 of file LoopUtils.cpp.
References findOptionMDForLoop(), llvm::MDNode::getNumOperands(), llvm::MDNode::getOperand(), llvm_unreachable, and None.
Referenced by getOptionalIntLoopAttribute().
|
static |
Replace pseudo store instructions that pass arguments through the stack with real instructions.
If insertPushes is true then all instructions are replaced with push instructions, otherwise regular std instructions are inserted.
Definition at line 305 of file AVRFrameLowering.cpp.
References assert(), BuildMI(), E, llvm::MachineBasicBlock::end(), llvm::MachineInstr::eraseFromParent(), llvm::MCInstrInfo::get(), llvm::MachineInstr::getDebugLoc(), getKillRegState(), llvm::MachineInstr::getOperand(), llvm::MachineBasicBlock::getParent(), llvm::MachineOperand::getReg(), llvm::AVRSubtarget::getRegisterInfo(), llvm::MachineFunction::getSubtarget(), I, llvm::MachineOperand::isKill(), llvm::MachineInstr::setDesc(), llvm::MachineOperand::setReg(), and TRI.
Referenced by llvm::AVRFrameLowering::eliminateCallFramePseudoInstr().
|
static |
Definition at line 90 of file LanaiMCCodeEmitter.cpp.
References assert(), llvm::MCExpr::Binary, llvm::MCFixup::create(), llvm::Lanai::FIXUP_LANAI_21, llvm::Lanai::FIXUP_LANAI_HI16, llvm::Lanai::FIXUP_LANAI_LO16, llvm::MCOperand::getExpr(), llvm::MCOperand::getImm(), getLanaiRegisterNumbering(), llvm::MCBinaryExpr::getLHS(), llvm::MCOperand::getReg(), llvm::MCOperand::isExpr(), llvm::MCOperand::isImm(), llvm::MCOperand::isReg(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::MCExpr::SymbolRef, llvm::LanaiMCExpr::VK_Lanai_ABS_HI, llvm::LanaiMCExpr::VK_Lanai_ABS_LO, and llvm::LanaiMCExpr::VK_Lanai_None.
Referenced by createRISCVMCCodeEmitter(), llvm::MSP430MCCodeEmitter::encodeInstruction(), llvm::MipsMCCodeEmitter::getExprOpValue(), llvm::MipsMCCodeEmitter::getJumpOffset16OpValue(), llvm::MipsMCCodeEmitter::getSimm18Lsl3Encoding(), llvm::MipsMCCodeEmitter::getSimm19Lsl2Encoding(), isPCRel(), isPCRel32Branch(), llvm::ARMAsmBackend::shouldForceRelocation(), and llvm::MipsAsmBackend::shouldForceRelocation().
| bool llvm::FlattenCFG | ( | BasicBlock * | BB, |
| AliasAnalysis * | AA = nullptr |
||
| ) |
This function is used to flatten a CFG.
FlattenCFG - This function is used to flatten a CFG.
For example, it uses parallel-and and parallel-or mode to collapse if-conditions and merge if-regions with identical statements.
Definition at line 499 of file FlattenCFG.cpp.
Referenced by iterativelyFlattenCFG(), and llvm::SimplifyCFGOptions::setAssumptionCache().
|
inline |
This function takes a float and returns the bit equivalent 32-bit integer.
Note that copying floats around changes the bits of NaNs on some hosts, notably x86, so this routine cannot be used if these bits are needed.
Definition at line 652 of file MathExtras.h.
References llvm::tgtok::Bits.
Referenced by covertDoubleImmToSingleImm(), llvm::APInt::floatToBits(), llvm::PPC::get_VSPLTI_elt(), getInlineImmVal32(), getLit32Encoding(), llvm::AMDGPU::isInlinableLiteral32(), llvm::AMDGPULegalizerInfo::legalizeFDIVFastIntrin(), llvm::AMDGPUInstPrinter::printRegOperand(), and llvm::support::endian::write< float >().
| detail::AlignAdapter<T> llvm::fmt_align | ( | T && | Item, |
| AlignStyle | Where, | ||
| size_t | Amount, | ||
| char | Fill = ' ' |
||
| ) |
Definition at line 85 of file FormatAdapters.h.
References llvm::FormatAdapter< T >::Item.
|
inline |
Definition at line 103 of file FormatAdapters.h.
References llvm::FormatAdapter< T >::Item.
| detail::PadAdapter<T> llvm::fmt_pad | ( | T && | Item, |
| size_t | Left, | ||
| size_t | Right | ||
| ) |
Definition at line 91 of file FormatAdapters.h.
References llvm::FormatAdapter< T >::Item.
| detail::RepeatAdapter<T> llvm::fmt_repeat | ( | T && | Item, |
| size_t | Count | ||
| ) |
Definition at line 96 of file FormatAdapters.h.
References llvm::FormatAdapter< T >::Item.
| bool llvm::FoldBranchToCommonDest | ( | BranchInst * | BI, |
| MemorySSAUpdater * | MSSAU = nullptr, |
||
| unsigned | BonusInstThreshold = 1 |
||
| ) |
If this basic block is ONLY a setcc and a branch, and if a predecessor branches to us and one of our successors, fold the setcc into the predecessor and use logical operations to pick the right destination.
If this basic block is simple enough, and if a predecessor branches to us and one of our successors, fold the block into the predecessor and use logical operations to pick the right destination.
Definition at line 2585 of file SimplifyCFG.cpp.
References llvm::Instruction::getParent(), and pred_size().
Referenced by allPredecessorsComeFromSameSource(), llvm::SimplifyCFGOptions::setAssumptionCache(), and TryToMergeLandingPad().
|
static |
Fold a frame offset shared between two add instructions into a single one.
Definition at line 98 of file AVRRegisterInfo.cpp.
References llvm::MachineInstr::eraseFromParent(), llvm::MachineOperand::getImm(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), and MI.
Referenced by llvm::AVRRegisterInfo::eliminateFrameIndex(), and llvm::PPCInstrInfo::isZeroExtended().
| ReturnInst * llvm::FoldReturnIntoUncondBranch | ( | ReturnInst * | RI, |
| BasicBlock * | BB, | ||
| BasicBlock * | Pred, | ||
| DomTreeUpdater * | DTU = nullptr |
||
| ) |
This method duplicates the specified return instruction into a predecessor which ends in an unconditional branch.
If the return instruction returns a value defined by a PHI, propagate the right value into the return. It returns the new return instruction in the predecessor.
Definition at line 882 of file BasicBlockUtils.cpp.
References llvm::DomTreeUpdater::applyUpdates(), llvm::Instruction::clone(), llvm::DominatorTreeBase< BasicBlock, false >::Delete, llvm::numbers::e, llvm::Instruction::eraseFromParent(), llvm::BasicBlock::getInstList(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::BasicBlock::getTerminator(), llvm::iplist_impl< IntrusiveListT, TraitsT >::insert(), llvm::User::op_begin(), llvm::User::op_end(), llvm::iplist_impl< IntrusiveListT, TraitsT >::push_back(), llvm::BasicBlock::removePredecessor(), and llvm::User::setOperand().
Referenced by despeculateCountZeros(), foldReturnAndProcessPred(), mergeCleanupPad(), and SplitCriticalEdge().
| void llvm::FoldSingleEntryPHINodes | ( | BasicBlock * | BB, |
| MemoryDependenceResults * | MemDep = nullptr |
||
| ) |
We know that BB has one predecessor.
If there are any single-entry PHI nodes in it, fold them away. This handles the case when all entries to the PHI nodes in a block are guaranteed equal, such as when the block has exactly one predecessor.
Definition at line 139 of file BasicBlockUtils.cpp.
References llvm::BasicBlock::begin(), llvm::UndefValue::get(), and llvm::MemoryDependenceResults::removeInstruction().
Referenced by FoldCondBranchOnPHI(), MergeBlockIntoPredecessor(), normalizeForInvokeSafepoint(), llvm::RewriteStatepointsForGC::runOnFunction(), and shouldRotateLoopExitingLatch().
| UnaryPredicate llvm::for_each | ( | R && | Range, |
| UnaryPredicate | P | ||
| ) |
Provide wrappers to std::for_each which take ranges instead of having to pass begin/end explicitly.
Definition at line 1175 of file STLExtras.h.
References adl_begin(), and adl_end().
Referenced by llvm::BranchFolder::BranchFolder(), llvm::LTOCodeGenerator::compile(), llvm::PMDataManager::emitInstrCountChangedRemark(), findPartitions(), llvm::AArch64InstrInfo::getOutliningCandidateInfo(), INITIALIZE_PASS(), llvm::outliner::Candidate::initLRU(), isLoadConditional(), llvm::AArch64InstrInfo::isMBBSafeToOutlineFrom(), llvm::BasicBlock::replaceSuccessorsPhiUsesWith(), llvm::TGLexer::TGLexer(), and llvm::LoopBase< BasicBlock, Loop >::verifyLoop().
| cl::opt<bool> llvm::ForceBottomUp | ( | "misched-bottomup" | , |
| cl::Hidden | , | ||
| cl::desc("Force bottom-up list scheduling") | |||
| ) |
| bool llvm::forcePrintModuleIR | ( | ) |
forcePrintModuleIR - returns true if IR printing passes should
Definition at line 130 of file LegacyPassManager.cpp.
References PrintModuleScope.
Referenced by llvm::CallGraphSCCPass::getAnalysisUsage(), printLoop(), llvm::PrintIRInstrumentation::registerCallbacks(), llvm::PrintFunctionPass::run(), and llvm::PrintIRInstrumentation::~PrintIRInstrumentation().
| cl::opt<bool> llvm::ForceTopDown | ( | "misched-topdown" | , |
| cl::Hidden | , | ||
| cl::desc("Force top-down list scheduling") | |||
| ) |
|
inline |
These are helper functions used to produce formatted output.
They use template type deduction to construct the appropriate instance of the format_object class to simplify their construction.
This is typically used like:
Definition at line 124 of file Format.h.
References llvm::format_object_base::Fmt.
Referenced by llvm::RuntimeDyldImpl::applyExternalSymbolRelocations(), applyPPChighesta(), branchDiv(), branchMaxOffsets(), llvm::orc::remote::OrcRemoteTargetClient::callIntVoid(), llvm::orc::remote::OrcRemoteTargetClient::callMain(), llvm::orc::remote::OrcRemoteTargetClient::callVoidVoid(), llvm::ResourceManager::canReserveResources(), llvm::TimerGroup::clearAll(), CompareMBBNumbers(), createStringError(), llvm::MD5::MD5Result::digest(), llvm::DWARFCompileUnit::dump(), llvm::DWARFTypeUnit::dump(), llvm::DWARFDebugArangeSet::Descriptor::dump(), llvm::DWARFAddressRange::dump(), llvm::DWARFDebugArangeSet::dump(), llvm::DWARFDebugAddrTable::dump(), llvm::DWARFDebugAbbrev::dump(), llvm::DWARFDebugRangeList::dump(), llvm::DWARFDebugPubTable::dump(), llvm::DWARFFormValue::dump(), llvm::DWARFUnitIndex::dump(), llvm::DWARFListTableHeader::dump(), llvm::DWARFContext::dump(), llvm::DWARFDie::dump(), llvm::DWARFDebugLine::Prologue::dump(), llvm::DWARFDebugLine::Row::dump(), llvm::dwarf::CIE::dump(), llvm::dwarf::FDE::dump(), llvm::OverlapStats::dump(), llvm::orc::JITDylib::dump(), llvm::jitlink::LinkGraph::dump(), llvm::DWARFFormValue::dumpAddressSection(), dumpApplePropertyAttribute(), dumpAttribute(), dumpDWARFv5StringOffsetsSection(), llvm::DWARFLocationTable::dumpLocationList(), llvm::DWARFDebugLoclists::dumpRawEntry(), llvm::RuntimeDyldMachO::dumpRelocationToResolve(), llvm::DWARFFormValue::dumpSectionedAddress(), dumpSectionMemory(), dumpStringOffsetsSection(), llvm::DIEAbbrev::Emit(), llvm::AppleAccelTableStaticTypeData::emit(), llvm::RuntimeDyldImpl::emitCommonSymbols(), emitGlobalConstantDataSequential(), emitGlobalConstantImpl(), llvm::RuntimeDyldImpl::emitSection(), llvm::RuntimeDyldCheckerExprEval::evaluate(), llvm::orc::JITCompileCallbackManager::executeCompileCallback(), llvm::detail::provider_format_adapter< T >::format(), llvm::format_provider< std::chrono::duration< Rep, Period > >::format(), llvm::format_provider< Twine >::format(), llvm::format_provider< T, typename std::enable_if< detail::use_char_formatter< T >::value >::type >::format(), llvm::format_provider< Enum, typename std::enable_if< dwarf::EnumTraits< Enum >::value >::type >::format(), llvm::MCInstPrinter::formatDec(), llvm::MCInstPrinter::formatHex(), getCOFFStaticStructorSection(), llvm::DWARFUnit::getCompilationDir(), llvm::BFIDOTGraphTraitsBase< BlockFrequencyInfoT, BranchProbabilityInfoT >::getEdgeAttributes(), getFixupKindLog2Size(), getFixupOffset(), llvm::DWARFDebugNames::NameIndex::getHashArrayEntry(), getSizeForEncoding(), getStaticStructorSection(), getUnconditionalBrDisp(), llvm::DWARFVerifier::handleDebugInfo(), llvm::DWARFVerifier::handleDebugLine(), Help(), llvm::ResourceManager::initProcResourceVectors(), llvm::DWARFVerifier::DieRangeInfo::intersects(), isIntersect(), llvm::jitlink::jitLink_MachO(), llvm::RuntimeDyldELF::loadObject(), llvm::object::MachORebaseEntry::moveNext(), llvm::object::MachOBindEntry::moveNext(), llvm::gsym::operator<<(), llvm::object::operator<<(), operator<<(), llvm::orc::operator<<(), llvm::dwarf::CFIProgram::parse(), llvm::DWARFDebugLine::LineTable::parse(), prettyPrintRegisterOp(), llvm::MachO::PackedVersion::print(), llvm::ILPValue::print(), llvm::TimeRecord::print(), llvm::BranchProbability::print(), llvm::DWARFExpression::Operation::print(), llvm::DIEAbbrev::print(), llvm::DWARFExpression::print(), llvm::AccelTableBase::HashData::print(), llvm::MIPrinter::print(), llvm::DIEEntry::print(), llvm::AppleAccelTableStaticTypeData::print(), llvm::FileInfo::print(), llvm::MachineBasicBlock::print(), llvm::DIE::print(), llvm::FileInfo::printBlockInfo(), llvm::FileInfo::printBranchInfo(), llvm::HexagonInstPrinter::printBrtarget(), printCFI(), PrintCFIEscape(), llvm::FileInfo::printCoverage(), llvm::AArch64InstPrinter::printFPImmOperand(), llvm::AArch64InstPrinter::printImmHex(), PrintLaneMask(), llvm::X86ATTInstPrinter::printOperand(), PrintQuotedString(), printRestOfMemberHeader(), llvm::AArch64InstPrinter::printSIMDType10Operand(), printSize(), PrintStatistics(), llvm::BitcodeAnalyzer::printStats(), llvm::FileInfo::printUncondBranchInfo(), printVal(), pushDepHeight(), llvm::AppleAcceleratorTable::readAtoms(), readOpcode(), readPrefixes(), llvm::RuntimeDyldImpl::reassignSectionAddress(), ReportError(), llvm::orc::remote::OrcRemoteTargetClient::RemoteRTDyldMemoryManager::reserveAllocationSpace(), llvm::ResourceManager::reserveResources(), llvm::RuntimeDyldImpl::resolveLocalRelocations(), llvm::RuntimeDyldELFMips::resolveMIPSO32Relocation(), llvm::RuntimeDyldELFMips::resolveRelocation(), llvm::RuntimeDyldCOFFI386::resolveRelocation(), llvm::RuntimeDyldCOFFThumb::resolveRelocation(), llvm::msgpack::DocNode::toString(), llvm::AArch64ExternalSymbolizer::tryAddingSymbolicOperand(), llvm::json::OStream::value(), write_double(), llvm::raw_ostream::write_uuid(), llvm::detail::format_adapter::~format_adapter(), and llvm::TimerGroup::~TimerGroup().
|
inline |
format_decimal - Output N as a right justified, fixed-width decimal.
If number will not fit in width, full number is still printed. Examples: OS << format_decimal(0, 5) => " 0" OS << format_decimal(255, 5) => " 255" OS << format_decimal(-1, 3) => " -1" OS << format_decimal(12345, 3) => "12345"
Definition at line 211 of file Format.h.
Referenced by llvm::mca::computeProcResourceMasks().
|
inline |
format_hex - Output N as a fixed width hexadecimal.
If number will not fit in width, full number is still printed. Examples: OS << format_hex(255, 4) => 0xff OS << format_hex(255, 4, true) => 0xFF OS << format_hex(255, 6) => 0x00ff OS << format_hex(255, 2) => 0xff
Definition at line 186 of file Format.h.
References assert(), and Upper.
Referenced by analyzeHeader(), llvm::mca::computeProcResourceMasks(), llvm::mca::ExecuteStage::cycleEnd(), llvm::mca::ResourceState::dump(), llvm::DWARFDebugLoc::dumpRawEntry(), llvm::DWARFDebugLoclists::dumpRawEntry(), ErrorFromHResult(), format_ptr(), llvm::object::MachOObjectFile::getBuildPlatform(), llvm::object::MachOObjectFile::getBuildTool(), llvm::HexagonTargetLowering::getTargetNodeName(), llvm::mca::initializeUsedResources(), makeCombineInst(), llvm::object::operator<<(), operator<<(), printSymbolizedStackTrace(), and WriteConstantInternal().
|
inline |
format_hex_no_prefix - Output N as a fixed width hexadecimal.
Does not prepend '0x' to the outputted string. If number will not fit in width, full number is still printed. Examples: OS << format_hex_no_prefix(255, 2) => ff OS << format_hex_no_prefix(255, 2, true) => FF OS << format_hex_no_prefix(255, 4) => 00ff OS << format_hex_no_prefix(255, 1) => ff
Definition at line 199 of file Format.h.
References assert(), and Upper.
Referenced by llvm::pdb::IPDBSourceFile::dump(), getOpenCLAlignment(), llvm::gsym::operator<<(), llvm::NVPTXFloatMCExpr::printImpl(), to_hexString(), and WriteConstantInternal().
|
inline |
Definition at line 253 of file FormatVariadic.h.
References llvm::detail::build_format_adapter().
Referenced by checkParametrizedPassName(), llvm::object::coffnamecpy(), llvm::DWARFDie::dump(), llvm::DWARFAbbreviationDeclaration::dump(), llvm::AppleAcceleratorTable::dump(), llvm::DWARFDebugNames::Abbrev::dump(), llvm::DWARFDebugNames::Entry::dump(), dumpAttribute(), emitNullTerminatedSymbolName(), ErrorFromHResult(), llvm::jitlink::MachOLinkGraphBuilder::findSectionByIndex(), llvm::jitlink::MachOLinkGraphBuilder::findSymbolByAddress(), llvm::jitlink::MachOLinkGraphBuilder::findSymbolByIndex(), llvm::format_provider< codeview::TypeIndex >::format(), llvm::jitlink::BlockAddressMap::getBlockCovering(), getNames(), llvm::DWARFVerifier::handleDebugInfo(), llvm::DWARFVerifier::handleDebugLine(), llvm::jitlink::MachOLinkGraphBuilder::isAltEntry(), isVariableIndexable(), llvm::json::ParseError::log(), operator<<(), llvm::jitlink::operator<<(), llvm::PassBuilder::parseAAPipeline(), llvm::PassBuilder::parsePassPipeline(), llvm::jitlink::printEdge(), PrintMatch(), PrintNoMatch(), printSymbolizedStackTrace(), reportAndResetTimings(), llvm::xray::RecordPrinter::visit(), llvm::codeview::TypeDumpVisitor::visitMemberEnd(), and llvm::PrintIRInstrumentation::~PrintIRInstrumentation().
| bool llvm::formDedicatedExitBlocks | ( | Loop * | L, |
| DominatorTree * | DT, | ||
| LoopInfo * | LI, | ||
| MemorySSAUpdater * | MSSAU, | ||
| bool | PreserveLCSSA | ||
| ) |
Ensure that all exit blocks of the loop are dedicated exits.
For any loop exit block with non-loop predecessors, we split the loop predecessors to use a dedicated loop exit block. We update the dominator tree and loop info if provided, and will preserve LCSSA if requested.
Definition at line 51 of file LoopUtils.cpp.
References assert(), llvm::LoopBase< BlockT, LoopT >::blocks(), Cleanup(), llvm::SmallVectorImpl< T >::clear(), llvm::LoopBase< BlockT, LoopT >::contains(), dbgs(), llvm::SmallVectorBase::empty(), llvm::SmallPtrSetImpl< PtrType >::insert(), LLVM_DEBUG, make_scope_exit(), predecessors(), llvm::SmallVectorTemplateBase< T >::push_back(), SplitBlockPredecessors(), and successors().
Referenced by hoistLoopToNewParent(), separateNestedLoop(), UnrollRuntimeLoopRemainder(), and unswitchNontrivialInvariants().
| bool llvm::formLCSSA | ( | Loop & | L, |
| DominatorTree & | DT, | ||
| LoopInfo * | LI, | ||
| ScalarEvolution * | SE | ||
| ) |
Put loop into LCSSA form.
Looks at all instructions in the loop which have uses outside of the current loop. For each, an LCSSA PHI node is inserted and the uses outside the loop are rewritten to use this node. Sub-loops must be in LCSSA form already.
LoopInfo and DominatorTree are required and preserved.
If ScalarEvolution is passed in, it will be preserved.
Returns true if any modifications are made to the loop.
Definition at line 321 of file LCSSA.cpp.
References assert(), computeBlocksDominatingExits(), llvm::ScalarEvolution::forgetLoop(), formLCSSAForInstructions(), llvm::LoopInfoBase< BlockT, LoopT >::getLoopFor(), I, and llvm::SmallVectorTemplateBase< T >::push_back().
Referenced by formLCSSARecursively(), hoistLoopToNewParent(), separateNestedLoop(), tryToUnrollAndJamLoop(), and unswitchNontrivialInvariants().
| bool llvm::formLCSSAForInstructions | ( | SmallVectorImpl< Instruction *> & | Worklist, |
| DominatorTree & | DT, | ||
| LoopInfo & | LI, | ||
| ScalarEvolution * | SE | ||
| ) |
Ensures LCSSA form for every instruction from the Worklist in the scope of innermost containing loop.
For every instruction from the worklist, check to see if it has any uses that are outside the current loop.
For the given instruction which have uses outside of the loop, an LCSSA PHI node is inserted and the uses outside the loop are rewritten to use this node.
LoopInfo and DominatorTree are required and, since the routine makes no changes to CFG, preserved.
Returns true if any modifications are made.
If so, insert LCSSA PHI nodes and rewrite the uses.
Definition at line 78 of file LCSSA.cpp.
References llvm::SSAUpdater::AddAvailableValue(), llvm::PHINode::addIncoming(), assert(), llvm::SmallVectorImpl< T >::clear(), llvm::DenseMapBase< SmallDenseMap< KeyT, ValueT, InlineBuckets, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::count(), llvm::PHINode::Create(), llvm::DominatorTree::dominates(), llvm::SmallVectorBase::empty(), findDbgValues(), llvm::SSAUpdater::FindValueForBlock(), llvm::ScalarEvolution::forgetValue(), llvm::StringRef::front(), llvm::PredIteratorCache::get(), llvm::MetadataAsValue::get(), llvm::ValueAsMetadata::get(), llvm::Value::getContext(), llvm::Instruction::getDebugLoc(), llvm::LoopBase< BlockT, LoopT >::getExitBlocks(), llvm::LoopInfoBase< BlockT, LoopT >::getLoopFor(), llvm::Value::getName(), llvm::DominatorTreeBase< NodeT, IsPostDom >::getNode(), llvm::PHINode::getNumIncomingValues(), llvm::PHINode::getOperandNumForIncomingValue(), llvm::User::getOperandUse(), llvm::Instruction::getParent(), llvm::BasicBlock::getParent(), llvm::Value::getType(), llvm::SSAUpdater::HasValueForBlock(), I, llvm::SSAUpdater::Initialize(), llvm::SetVector< T, SmallVector< T, N >, SmallDenseSet< T, N > >::insert(), insertDebugValuesForPHIs(), isExitBlock(), llvm::Type::isTokenTy(), llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::SSAUpdater::RewriteUse(), llvm::Instruction::setDebugLoc(), llvm::SmallVectorBase::size(), llvm::PredIteratorCache::size(), and llvm::Value::uses().
Referenced by formLCSSA().
| bool llvm::formLCSSARecursively | ( | Loop & | L, |
| DominatorTree & | DT, | ||
| LoopInfo * | LI, | ||
| ScalarEvolution * | SE | ||
| ) |
Put a loop nest into LCSSA form.
Process a loop nest depth first.
This recursively forms LCSSA for a loop nest.
LoopInfo and DominatorTree are required and preserved.
If ScalarEvolution is passed in, it will be preserved.
Returns true if any modifications are made to the loop.
Definition at line 386 of file LCSSA.cpp.
References formLCSSA(), and llvm::LoopBase< BlockT, LoopT >::getSubLoops().
Referenced by createLICMPass(), formLCSSAOnAllLoops(), getInnermostLoopFor(), llvm::LoopUnrollPass::run(), llvm::LoopVectorizePass::runImpl(), tryToUnrollAndJamLoop(), and UnrollLoop().
| formatted_raw_ostream & llvm::fouts | ( | ) |
fouts() - This returns a reference to a formatted_raw_ostream for standard output.
Use it like: fouts() << "foo" << "bar";
Definition at line 90 of file FormattedStream.cpp.
References outs().
Referenced by llvm::formatted_raw_ostream::is_displayed().
|
inline |
Equivalent of C standard library function.
While the C standard says Exp is an unspecified value for infinity and nan, this returns INT_MAX for infinities, and INT_MIN for NaNs.
Definition at line 1225 of file APFloat.h.
References llvm::lltok::APFloat, llvm::APFloat::getSemantics(), and llvm_unreachable.
Referenced by llvm::detail::DoubleAPFloat::getSecond(), and llvm::detail::IEEEFloat::isNegZero().
|
inline |
Convert hexadecimal string Input to its binary representation.
The return string is half the size of Input.
Definition at line 170 of file StringExtras.h.
References assert(), llvm::StringRef::drop_front(), llvm::StringRef::empty(), llvm::StringRef::front(), hexFromNibbles(), and llvm::StringRef::size().
Referenced by llvm::CodeViewDebug::CodeViewDebug(), llvm::DwarfUnit::getMD5AsBytes(), llvm::yaml::ScalarTraits< FixedSizeHex< N > >::input(), and parseHexOcta().
| void llvm::gatherImportedSummariesForModule | ( | StringRef | ModulePath, |
| const StringMap< GVSummaryMapTy > & | ModuleToDefinedGVSummaries, | ||
| const FunctionImporter::ImportMapTy & | ImportList, | ||
| std::map< std::string, GVSummaryMapTy > & | ModuleToSummariesForIndex | ||
| ) |
Compute the set of summaries needed for a ThinLTO backend compilation of ModulePath.
This includes summaries from that module (in case any global summary based optimizations were recorded) and from any definitions in other modules that should be imported. ModuleToSummariesForIndex will be populated with the needed summaries from each required module path. Use a std::map instead of StringMap to get stable order for bitcode emission.
Definition at line 910 of file FunctionImport.cpp.
References assert(), llvm::SIInstrFlags::DS, and llvm::StringMap< ValueTy, AllocatorTy >::lookup().
Referenced by llvm::ThinLTOCodeGenerator::emitImports(), llvm::ThinLTOCodeGenerator::gatherImportedSummariesForModule(), llvm::lto::getThinLTOOutputFile(), and llvm::ThinLTOCodeGenerator::setCodeGenOnly().
| TargetTransformInfo::UnrollingPreferences llvm::gatherUnrollingPreferences | ( | Loop * | L, |
| ScalarEvolution & | SE, | ||
| const TargetTransformInfo & | TTI, | ||
| BlockFrequencyInfo * | BFI, | ||
| ProfileSummaryInfo * | PSI, | ||
| int | OptLevel, | ||
| Optional< unsigned > | UserThreshold, | ||
| Optional< unsigned > | UserCount, | ||
| Optional< bool > | UserAllowPartial, | ||
| Optional< bool > | UserRuntime, | ||
| Optional< bool > | UserUpperBound, | ||
| Optional< bool > | UserAllowPeeling, | ||
| Optional< bool > | UserAllowProfileBasedPeeling, | ||
| Optional< unsigned > | UserFullUnrollMaxCount | ||
| ) |
Gather the various unrolling parameters based on the defaults, compiler flags, TTI overrides and user specified parameters.
Definition at line 177 of file LoopUnrollPass.cpp.
References llvm::TargetTransformInfo::UnrollingPreferences::AllowExpensiveTripCount, llvm::TargetTransformInfo::UnrollingPreferences::AllowPeeling, llvm::TargetTransformInfo::UnrollingPreferences::AllowRemainder, llvm::TargetTransformInfo::UnrollingPreferences::BEInsns, llvm::AMDGPUISD::BFI, llvm::TargetTransformInfo::UnrollingPreferences::Count, llvm::TargetTransformInfo::UnrollingPreferences::DefaultUnrollRuntimeCount, llvm::TargetTransformInfo::UnrollingPreferences::Force, llvm::TargetTransformInfo::UnrollingPreferences::FullUnrollMaxCount, llvm::LoopBase< BlockT, LoopT >::getHeader(), llvm::BasicBlock::getParent(), llvm::TargetTransformInfo::getUnrollingPreferences(), llvm::Function::hasOptSize(), llvm::Optional< T >::hasValue(), I, if(), IRPass, isEqual(), isEqual(), max(), llvm::TargetTransformInfo::UnrollingPreferences::MaxCount, llvm::TargetTransformInfo::UnrollingPreferences::MaxPercentThresholdBoost, llvm::TargetTransformInfo::UnrollingPreferences::OptSizeThreshold, llvm::TargetTransformInfo::UnrollingPreferences::Partial, llvm::TargetTransformInfo::UnrollingPreferences::PartialOptSizeThreshold, llvm::TargetTransformInfo::UnrollingPreferences::PartialThreshold, llvm::TargetTransformInfo::UnrollingPreferences::PeelCount, llvm::TargetTransformInfo::UnrollingPreferences::PeelProfiledIterations, llvm::TargetTransformInfo::UnrollingPreferences::Runtime, shouldOptimizeForSize(), llvm::TargetTransformInfo::UnrollingPreferences::Threshold, UnrollAllowPartial, UnrollAllowPeeling, UnrollAllowRemainder, llvm::TargetTransformInfo::UnrollingPreferences::UnrollAndJam, llvm::TargetTransformInfo::UnrollingPreferences::UnrollAndJamInnerLoopThreshold, UnrollFullMaxCount, UnrollMaxCount, UnrollMaxPercentThresholdBoost, UnrollMaxUpperBound, UnrollPartialThreshold, UnrollPeelCount, llvm::TargetTransformInfo::UnrollingPreferences::UnrollRemainder, UnrollRuntime, UnrollThreshold, UnrollUnrollRemainder, and llvm::TargetTransformInfo::UnrollingPreferences::UpperBound.
Referenced by tryToUnrollAndJamLoop(), and tryToUnrollLoop().
|
inline |
Definition at line 127 of file GetElementPtrTypeIterator.h.
References llvm::generic_gep_type_iterator< ItTy >::begin(), GEP, and llvm::User::op_begin().
Referenced by llvm::GEPOperator::accumulateConstantOffset(), canReplaceOperandWithVariable(), CC_MipsO32_FP64(), computeKnownBitsFromOperator(), ConstantFoldGetElementPtr(), createSeparateConstOffsetFromGEPPass(), EmitGEPOffset(), evaluateGEPOffsetExpression(), evaluateICmpRelation(), GEPSequentialConstIndexed(), getComparePred(), llvm::TargetTransformInfoImplCRTPBase< AMDGPUTTIImpl >::getGEPCost(), getGEPInductionOperand(), llvm::DataLayout::getIndexedOffsetInType(), getMaxPointerSize(), getOffsetFromIndex(), getOffsetFromIndices(), getUniformBase(), isGEPFoldable(), isGEPKnownNonNull(), llvm::ConstantExpr::isGEPWithNoNotionalOverIndexing(), isMulPowOf2(), isPromotedInstructionLegal(), isSafeSROAGEP(), llvm::AArch64TargetLowering::isZExtFree(), matchesOr(), propagateMetadata(), llvm::FastISel::selectGetElementPtr(), ShrinkDemandedConstant(), AllocaSlices::SliceBuilder::SliceBuilder(), llvm::Interpreter::visitGetElementPtrInst(), llvm::InstCombiner::visitGetElementPtrInst(), and llvm::Interpreter::visitInsertValueInst().
|
inline |
Definition at line 138 of file GetElementPtrTypeIterator.h.
References llvm::generic_gep_type_iterator< ItTy >::begin(), GEP, and llvm::User::op_begin().
|
inline |
Definition at line 151 of file GetElementPtrTypeIterator.h.
References llvm::generic_gep_type_iterator< ItTy >::begin(), and llvm::ArrayRef< T >::begin().
|
inline |
Definition at line 134 of file GetElementPtrTypeIterator.h.
References llvm::generic_gep_type_iterator< ItTy >::end(), and llvm::User::op_end().
Referenced by llvm::GEPOperator::accumulateConstantOffset(), ConstantFoldGetElementPtr(), llvm::DataLayout::getIndexedOffsetInType(), getOffsetFromIndices(), isGEPKnownNonNull(), llvm::ConstantExpr::isGEPWithNoNotionalOverIndexing(), isMulPowOf2(), isSafeSROAGEP(), llvm::FastISel::selectGetElementPtr(), ShrinkDemandedConstant(), AllocaSlices::SliceBuilder::SliceBuilder(), llvm::Interpreter::visitGetElementPtrInst(), llvm::InstCombiner::visitGetElementPtrInst(), and llvm::Interpreter::visitInsertValueInst().
|
inline |
Definition at line 145 of file GetElementPtrTypeIterator.h.
References llvm::generic_gep_type_iterator< ItTy >::end(), and llvm::User::op_end().
|
inline |
Definition at line 157 of file GetElementPtrTypeIterator.h.
References llvm::generic_gep_type_iterator< ItTy >::end(), and llvm::ArrayRef< T >::end().
Make MDOperand transparent for hashing.
This overload of an implementation detail of the hashing library makes MDOperand hash to the same value as a Metadata pointer.
Note that overloading hash_value() as follows:
does not cause MDOperand to be transparent. In particular, a bare pointer doesn't get hashed before it's combined, whereas MDOperand would.
Definition at line 178 of file LLVMContextImpl.cpp.
References llvm::MDOperand::get().
Referenced by llvm::hashing::detail::hash_combine_recursive_helper::combine(), and llvm::hashing::detail::hash_combine_range_impl().
| uint32_t llvm::get_max_thread_name_length | ( | ) |
Get the maximum length of a thread name on this platform.
A value of 0 means there is no limit.
Referenced by call_once(), and llvm_is_multithreaded().
| void llvm::get_thread_name | ( | SmallVectorImpl< char > & | Name | ) |
Get the name of the current thread.
The level of support for getting a thread's name varies wildly across operating systems, and it is not even guaranteed that if you can successfully set a thread's name that you can later get it back. This function is intended for diagnostic purposes, and as with setting a thread's name no indication of whether the operation succeeded or failed is returned.
Referenced by call_once(), and llvm_is_multithreaded().
| uint64_t llvm::get_threadid | ( | ) |
Return the current thread id, as used in various OS system calls.
Note that not all platforms guarantee that the value returned will be unique across the entire system, so portable code should not assume this.
Referenced by call_once(), and llvm_is_multithreaded().
| void llvm::getAAResultsAnalysisUsage | ( | AnalysisUsage & | AU | ) |
A helper for the legacy pass manager to populate AU to add uses to make sure the analyses required by createLegacyPMAAResults are available.
Definition at line 910 of file AliasAnalysis.cpp.
References llvm::AnalysisUsage::addRequired(), and llvm::AnalysisUsage::addUsedIfAvailable().
Referenced by llvm::LegacyInlinerBase::getAnalysisUsage(), llvm::ExternalAAWrapperPass::getAnalysisUsage(), llvm::ArgumentPromotionPass::run(), and llvm::PostOrderFunctionAttrsPass::run().
|
inlinestatic |
Compute the addressing mode from an machine instruction starting with the given operand.
Definition at line 92 of file X86InstrBuilder.h.
References llvm::X86AddressMode::Base, llvm::X86AddressMode::BaseType, llvm::X86AddressMode::Disp, llvm::X86AddressMode::FrameIndex, llvm::X86AddressMode::FrameIndexBase, llvm::MachineOperand::getGlobal(), llvm::MachineOperand::getImm(), llvm::MachineOperand::getIndex(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::X86AddressMode::GV, llvm::X86AddressMode::IndexReg, llvm::MachineOperand::isGlobal(), llvm::MachineOperand::isReg(), llvm::X86AddressMode::Reg, llvm::X86AddressMode::RegBase, and llvm::X86AddressMode::Scale.
Referenced by llvm::X86TargetLowering::EmitInstrWithCustomInserter().
Definition at line 284 of file NVPTXUtilities.cpp.
References llvm::numbers::e, and findAllNVVMAnnotation().
Referenced by llvm::LoadInst::getAlignment(), llvm::StoreInst::getAlignment(), llvm::NVPTXTargetLowering::getPrototype(), and VisitGlobalVariableForEmission().
Definition at line 299 of file NVPTXUtilities.cpp.
References llvm::Instruction::getMetadata().
Returns an APFloat from Val converted to the appropriate size.
Definition at line 325 of file Utils.cpp.
References llvm::lltok::APFloat, llvm::APFloat::convert(), llvm::APFloatBase::IEEEhalf(), llvm_unreachable, and llvm::APFloatBase::rmNearestTiesToEven.
Referenced by llvm::MachineIRBuilder::buildFConstant().
| const Value * llvm::getArgumentAliasingToReturnedPointer | ( | const CallBase * | Call, |
| bool | MustPreserveNullness | ||
| ) |
This function returns call pointer argument that is considered the same by aliasing rules.
You CAN'T use it to replace one value with another. If MustPreserveNullness is true, the call must preserve the nullness of the pointer.
Definition at line 3827 of file ValueTracking.cpp.
References assert(), llvm::CallBase::getArgOperand(), llvm::CallBase::getReturnedArgOperand(), and isIntrinsicReturningPointerAliasingArgumentWithoutCapturing().
Referenced by getArgumentAliasingToReturnedPointer(), getMaxPointerSize(), GetUnderlyingObject(), isDereferenceableAndAlignedPointer(), isKnownNonZero(), and llvm::ConstantDataArraySlice::operator[]().
|
inline |
Definition at line 324 of file ValueTracking.h.
References getArgumentAliasingToReturnedPointer(), GetUnderlyingObject(), and isIntrinsicReturningPointerAliasingArgumentWithoutCapturing().
Definition at line 114 of file ARMBaseInfo.h.
References llvm_unreachable, llvm::ARMVCC::T, llvm::ARMVCC::TT, llvm::ARMVCC::TTT, and llvm::ARMVCC::TTTT.
Referenced by findVCMPToFoldIntoVPST().
Definition at line 504 of file StringRef.cpp.
References consumeSignedInteger(), and llvm::StringRef::empty().
Referenced by llvm::StringRef::getAsInteger().
Helper functions for StringRef::getAsInteger.
GetAsUnsignedInteger - Workhorse method that converts a integer character sequence of radix up to 36 to an unsigned long long value.
Definition at line 494 of file StringRef.cpp.
References consumeUnsignedInteger(), and llvm::StringRef::empty().
Referenced by llvm::StringRef::getAsInteger(), llvm::yaml::ScalarTraits< uuid_t >::input(), llvm::MachO::PackedVersion::parse32(), llvm::MachO::PackedVersion::parse64(), and parsePhysicalReg().
| const SimplifyQuery llvm::getBestSimplifyQuery | ( | Pass & | P, |
| Function & | F | ||
| ) |
Definition at line 5596 of file InstructionSimplify.cpp.
References llvm::Pass::getAnalysisIfAvailable(), llvm::AssumptionCacheTracker::getAssumptionCache(), llvm::Module::getDataLayout(), llvm::DominatorTreeWrapperPass::getDomTree(), llvm::GlobalValue::getParent(), and llvm::TargetLibraryInfoWrapperPass::getTLI().
Referenced by getBestSimplifyQuery(), llvm::CorrelatedValuePropagationPass::run(), llvm::LoopRotatePass::run(), and runImpl().
| const SimplifyQuery llvm::getBestSimplifyQuery | ( | AnalysisManager< T, TArgs... > & | AM, |
| Function & | F | ||
| ) |
Definition at line 5612 of file InstructionSimplify.cpp.
References F(), getBestSimplifyQuery(), llvm::Module::getDataLayout(), and llvm::GlobalValue::getParent().
| const SimplifyQuery llvm::getBestSimplifyQuery | ( | LoopStandardAnalysisResults & | AR, |
| const DataLayout & | DL | ||
| ) |
Definition at line 5606 of file InstructionSimplify.cpp.
References llvm::LoopStandardAnalysisResults::AC, llvm::LoopStandardAnalysisResults::DT, T, and llvm::LoopStandardAnalysisResults::TLI.
| template const SimplifyQuery llvm::getBestSimplifyQuery | ( | AnalysisManager< Function > & | , |
| Function & | |||
| ) |
| Expected< BitcodeFileContents > llvm::getBitcodeFileContents | ( | MemoryBufferRef | Buffer | ) |
Returns the contents of a bitcode file.
This includes the raw contents of the symbol table embedded in the bitcode file. Clients which require a symbol table should prefer to use irsymtab::read instead of this function because it creates a reader for the irsymtab and handles upgrading bitcode files without a symbol table or with an old symbol table.
Definition at line 6336 of file BitcodeReader.cpp.
References llvm::BitstreamCursor::advance(), llvm::BitstreamEntry::EndBlock, error(), llvm::BitstreamEntry::Error, F(), llvm::Expected< T >::get(), llvm::SimpleBitstreamCursor::getBitcodeBytes(), llvm::SimpleBitstreamCursor::GetCurrentBitNo(), llvm::SimpleBitstreamCursor::getCurrentByteNo(), llvm::BitstreamEntry::ID, llvm::bitc::IDENTIFICATION_BLOCK_ID, initStream(), llvm::BitstreamEntry::Kind, llvm::ArrayRef< T >::size(), llvm::BitstreamEntry::SubBlock, and llvm::Expected< T >::takeError().
Referenced by getBitcodeModuleList(), and llvm::object::readIRSymtab().
| Expected< BitcodeLTOInfo > llvm::getBitcodeLTOInfo | ( | MemoryBufferRef | Buffer | ) |
Returns LTO information for the specified bitcode file.
Definition at line 6723 of file BitcodeReader.cpp.
References getSingleModule(), and llvm::Expected< T >::takeError().
Referenced by llvm::LTOModule::isThinLTO().
| Expected< std::vector< BitcodeModule > > llvm::getBitcodeModuleList | ( | MemoryBufferRef | Buffer | ) |
Returns a list of modules in the specified bitcode buffer.
Definition at line 6328 of file BitcodeReader.cpp.
References getBitcodeFileContents().
Referenced by llvm::object::IRObjectFile::create(), and getSingleModule().
| Expected< std::string > llvm::getBitcodeProducerString | ( | MemoryBufferRef | Buffer | ) |
Read the header of the specified bitcode buffer and extract just the producer string information.
If successful, this returns a string. On error, this returns "".
Definition at line 6696 of file BitcodeReader.cpp.
References initStream(), readIdentificationCode(), and llvm::Expected< T >::takeError().
Referenced by llvm::LTOModule::getProducerString().
| Expected< std::string > llvm::getBitcodeTargetTriple | ( | MemoryBufferRef | Buffer | ) |
Read the header of the specified bitcode buffer and extract just the triple information.
If successful, this returns a string. On error, this returns "".
Definition at line 6680 of file BitcodeReader.cpp.
References initStream(), readTriple(), and llvm::Expected< T >::takeError().
Referenced by getBitcodeFileMachine(), and llvm::LTOModule::isBitcodeForTarget().
Definition at line 109 of file AArch64BaseInfo.h.
References Reg.
|
inline |
Returns an iterator pointing beyond the bundle containing I.
Definition at line 60 of file MachineInstrBundle.h.
References I.
Referenced by llvm::SlotIndexes::getInstructionIndex(), and llvm::HexagonInstrInfo::nonDbgBundleSize().
|
inline |
Returns an iterator pointing beyond the bundle containing I.
Definition at line 69 of file MachineInstrBundle.h.
References I.
|
inline |
Returns an iterator to the first instruction in the bundle containing I.
Definition at line 44 of file MachineInstrBundle.h.
References I.
Referenced by collectCallSiteParameters(), llvm::SlotIndexes::getInstructionIndex(), llvm::MIBundleOperandIteratorBase< const MachineOperand >::MIBundleOperandIteratorBase(), llvm::MachineRegisterInfo::defusechain_instr_iterator< ReturnUses, ReturnDefs, SkipDebug, ByOperand, ByInstr, ByBundle >::operator*(), llvm::MachineRegisterInfo::defusechain_iterator< ReturnUses, ReturnDefs, SkipDebug, ByOperand, ByInstr, ByBundle >::operator++(), and llvm::MachineRegisterInfo::defusechain_instr_iterator< ReturnUses, ReturnDefs, SkipDebug, ByOperand, ByInstr, ByBundle >::operator++().
|
inline |
Returns an iterator to the first instruction in the bundle containing I.
Definition at line 52 of file MachineInstrBundle.h.
References I.
| int llvm::getCallsiteCost | ( | CallBase & | Call, |
| const DataLayout & | DL | ||
| ) |
Return the cost associated with a callsite, including parameter passing and the call/return instruction.
Definition at line 2072 of file InlineCost.cpp.
References llvm::CallBase::arg_size(), llvm::InlineConstants::CallPenalty, E, llvm::PointerType::getAddressSpace(), llvm::CallBase::getArgOperand(), llvm::PointerType::getElementType(), llvm::DataLayout::getPointerSizeInBits(), llvm::Value::getType(), llvm::DataLayout::getTypeSizeInBits(), I, llvm::InlineConstants::InstrCost, and llvm::CallBase::isByValArgument().
Referenced by hasProfileData().
Assign a complexity or rank value to LLVM Values.
This is used to reduce the amount of pattern matching needed for compares and commutative instructions. For example, if we have: icmp ugt X, Constant or xor (add X, Constant), cast Z
We do not have to consider the commuted variants of these patterns because canonicalization based on complexity guarantees the above ordering.
This routine maps IR values to various complexity ranks: 0 -> undef 1 -> Constants 2 -> Other non-instructions 3 -> Arguments 4 -> Cast and (f)neg/not instructions 5 -> Other instructions
Definition at line 83 of file InstCombineInternal.h.
References llvm::PatternMatch::m_FNeg(), llvm::PatternMatch::m_Neg(), llvm::PatternMatch::m_Not(), llvm::PatternMatch::m_Value(), and llvm::PatternMatch::match().
Referenced by simplifyAssocCastAssoc(), llvm::InstCombiner::visitFCmpInst(), and llvm::InstCombiner::visitICmpInst().
| bool llvm::getConstantDataArrayInfo | ( | const Value * | V, |
| ConstantDataArraySlice & | Slice, | ||
| unsigned | ElementSize, | ||
| uint64_t | Offset = 0 |
||
| ) |
Returns true if the value V is a pointer into a ConstantDataArray.
If successful Slice will point to a ConstantDataArray info object with an appropriate offset.
Definition at line 3637 of file ValueTracking.cpp.
References llvm::ConstantDataArraySlice::Array, assert(), dyn_cast(), GEP, llvm::Type::getArrayNumElements(), llvm::SequentialType::getElementType(), llvm::ConstantDataArray::getType(), llvm::DataLayout::getTypeStoreSize(), isGEPBasedOnPointerToString(), llvm::Type::isIntegerTy(), llvm::ConstantDataArraySlice::Length, llvm::ConstantDataArraySlice::Offset, and llvm::Value::stripPointerCasts().
Referenced by annotateNonNullAndDereferenceable(), getConstantStringInfo(), GetStringLengthH(), isMemSrcFromConstant(), and llvm::ConstantDataArraySlice::operator[]().
| const llvm::ConstantFP * llvm::getConstantFPVRegVal | ( | unsigned | VReg, |
| const MachineRegisterInfo & | MRI | ||
| ) |
Definition at line 295 of file Utils.cpp.
References llvm::MachineOperand::getFPImm(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineRegisterInfo::getVRegDef(), and MI.
Referenced by llvm::MIPatternMatch::bind_helper< const ConstantFP * >::bind(), llvm::AMDGPULegalizerInfo::legalizeFastUnsafeFDIV(), and selectFCMPOpc().
| ConstantRange llvm::getConstantRangeFromMetadata | ( | const MDNode & | RangeMD | ) |
Parse out a conservative ConstantRange from !range metadata.
E.g. if RangeMD is !{i32 0, i32 10, i32 15, i32 20} then return [0, 20).
Definition at line 1557 of file ConstantRange.cpp.
References assert(), llvm::ConstantRange::ConstantRange(), llvm::MDNode::getNumOperands(), llvm::MDNode::getOperand(), and High.
Referenced by computeConstantRange(), copyRangeMetadata(), llvm::GlobalValue::getAbsoluteSymbolRange(), getFromRangeMetadata(), GetRangeFromMetadata(), getValueFromICmpCondition(), AAValueConstantRangeFloating::initialize(), AAValueConstantRangeCallSiteReturned::initialize(), llvm::SelectionDAGBuilder::lowerRangeToAssertZExt(), operator<<(), and SimplifyICmpInst().
| bool llvm::getConstantStringInfo | ( | const Value * | V, |
| StringRef & | Str, | ||
| uint64_t | Offset = 0, |
||
| bool | TrimAtNul = true |
||
| ) |
This function computes the length of a null-terminated C string pointed to by V.
If successful, it returns true and returns the string in Str. If unsuccessful, it returns false. This does not include the trailing null character by default. If TrimAtNul is set to false, then this returns any trailing null characters as well as any other characters that come after it.
If successful, it returns true and returns the string in Str. If unsuccessful, it returns false.
Definition at line 3714 of file ValueTracking.cpp.
References llvm::ConstantDataArraySlice::Array, llvm::StringRef::find(), llvm::ConstantDataSequential::getAsString(), getConstantDataArrayInfo(), llvm::ConstantDataArraySlice::Length, llvm::ConstantDataArraySlice::Offset, and llvm::StringRef::substr().
Referenced by annotateNonNullAndDereferenceable(), ConstantFoldLoadFromConstPtr(), isReportingError(), llvm::ConstantDataArraySlice::operator[](), and optimizeMemCmpConstantSize().
| Optional< int64_t > llvm::getConstantVRegVal | ( | unsigned | VReg, |
| const MachineRegisterInfo & | MRI | ||
| ) |
If VReg is defined by a G_CONSTANT fits in int64_t returns it.
Definition at line 207 of file Utils.cpp.
References assert(), getConstantVRegValWithLookThrough(), None, llvm::ValueAndVReg::Value, and llvm::ValueAndVReg::VReg.
Referenced by canTurnIntoCOPY(), llvm::GISelKnownBits::computeKnownBitsImpl(), ConstantFoldBinOp(), ConstantFoldExtOp(), getShiftTypeForInst(), getVectorSHLImm(), isStackPtrRelative(), llvm::AMDGPULegalizerInfo::legalizeExtractVectorElt(), llvm::AMDGPULegalizerInfo::legalizeInsertVectorElt(), llvm::MIPatternMatch::ConstantMatch::match(), llvm::AMDGPUInstructionSelector::select(), and X86SelectAddress().
| Optional< ValueAndVReg > llvm::getConstantVRegValWithLookThrough | ( | unsigned | VReg, |
| const MachineRegisterInfo & | MRI, | ||
| bool | LookThroughInstrs = true, |
||
| bool | HandleFConstants = true |
||
| ) |
If VReg is defined by a statically evaluable chain of instructions rooted on a G_F/CONSTANT (LookThroughInstrs == true) and that constant fits in int64_t, returns its value as well as the virtual register defined by this G_F/CONSTANT.
When LookThroughInstrs == false this function behaves like getConstantVRegVal. When HandleFConstants == false the function bails on G_FCONSTANTs.
Definition at line 218 of file Utils.cpp.
References assert(), llvm::APFloat::bitcastToAPInt(), llvm::SmallVectorBase::empty(), llvm::APInt::getBitWidth(), llvm::MachineOperand::getCImm(), llvm::MachineOperand::getFPImm(), llvm::MachineOperand::getImm(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::APInt::getSExtValue(), getSizeInBits(), llvm::MachineRegisterInfo::getType(), llvm::ConstantInt::getValue(), llvm::ConstantFP::getValueAPF(), llvm::MachineRegisterInfo::getVRegDef(), llvm::MachineOperand::isCImm(), llvm::MachineOperand::isFPImm(), llvm::MachineOperand::isImm(), llvm::Register::isPhysicalRegister(), MI, MRI, None, llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::APInt::sext(), llvm::APInt::trunc(), and llvm::APInt::zext().
Referenced by changeFCMPPredToAArch64CC(), getConstantVRegVal(), getImmedFromMO(), getInsertVecEltOpInfo(), getLaneCopyOpcode(), getMemsetValue(), getVectorShiftImm(), llvm::InstructionSelector::isOperandImmEqual(), llvm::CombinerHelper::matchPtrAddImmedChain(), and llvm::CombinerHelper::tryCombineMemCpyFamily().
Definition at line 523 of file PredicateInfo.cpp.
References llvm::FunctionCallee::getCallee(), llvm::Module::getContext(), llvm::Module::getOrInsertFunction(), getType(), Name, and utostr().
|
inline |
Return the name of a covarage mapping variable (internal linkage) for each instrumented source module.
Such variables are allocated in the __llvm_covmap section.
Definition at line 105 of file InstrProf.h.
|
inline |
Return the name of the internal variable recording the array of PGO name vars referenced by the coverage mapping.
The owning functions of those names are not emitted by FE (e.g, unused inline functions.)
Definition at line 113 of file InstrProf.h.
Referenced by llvm::InstrProfiling::run().
Processes a CPU name.
Definition at line 31 of file AVRTargetMachine.cpp.
References llvm::StringRef::empty().
Referenced by llvm::AMDGPUAsmPrinter::EmitStartOfAsmFile(), encodeCnt(), getRegNum(), hasAnyNonFlatUseOfReg(), and IsRevOpcode().
Definition at line 26 of file PPCRegisterInfo.h.
Referenced by llvm::PPCInstrInfo::copyPhysReg(), llvm::PPCRegisterInfo::lowerCRBitRestore(), and llvm::PPCRegisterInfo::lowerCRBitSpilling().
Definition at line 479 of file MachineInstrBuilder.h.
References llvm::RegState::Dead.
Referenced by addExclusiveRegPair(), llvm::X86InstrInfo::classifyLEAReg(), llvm::PPCInstrInfo::commuteInstructionImpl(), finalizeBundle(), for(), GetDSubRegs(), getRegState(), InsertLDR_STR(), isFpMulInstruction(), makeImplicit(), and llvm::X86InstrInfo::unfoldMemoryOperand().
Return Debug Info Metadata Version by checking module flags.
Definition at line 682 of file DebugInfo.cpp.
References llvm::Module::getModuleFlag().
Referenced by LLVMGetModuleDebugMetadataVersion(), and UpgradeDebugInfo().
Definition at line 488 of file MachineInstrBuilder.h.
References llvm::RegState::Debug.
Referenced by getRegState().
| EHPersonality llvm::getDefaultEHPersonality | ( | const Triple & | T | ) |
Definition at line 65 of file EHPersonalities.cpp.
References GNU_C.
Referenced by getDefaultPersonalityFn().
| size_t llvm::getDefaultPrecision | ( | FloatStyle | Style | ) |
Definition at line 253 of file NativeFormatting.cpp.
References Exponent, ExponentUpper, Fixed, and Percent.
Referenced by llvm::format_provider< T, typename std::enable_if< detail::use_double_formatter< T >::value >::type >::format(), and write_double().
| llvm::MachineInstr * llvm::getDefIgnoringCopies | ( | Register | Reg, |
| const MachineRegisterInfo & | MRI | ||
| ) |
Find the def instruction for Reg, folding away any trivial copies.
Note it may still return a COPY, if it changes the type. May return nullptr if Reg is not a generic virtual register.
Definition at line 303 of file Utils.cpp.
References DefMI, llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::MachineRegisterInfo::getType(), and llvm::MachineRegisterInfo::getVRegDef().
Referenced by llvm::CombinerHelper::dominates(), getAssignFnsForCC(), llvm::AMDGPU::getBaseWithConstantOffset(), getImmedFromMO(), getInsertVecEltOpInfo(), getOpcodeDef(), getShiftTypeForInst(), getVectorSHLImm(), and llvm::LegalizationArtifactCombiner::tryCombineMerges().
Definition at line 470 of file MachineInstrBuilder.h.
References llvm::RegState::Define.
Referenced by buildMUBUFOffsetLoadStore(), ContainsReg(), llvm::Thumb1InstrInfo::copyPhysReg(), llvm::ARMBaseRegisterInfo::emitLoadConstPool(), llvm::X86FrameLowering::emitSPUpdate(), emitThumb1LoadConstPool(), emitThumb2LoadConstPool(), finalizeBundle(), findIncDecAfter(), getPostIndexedLoadStoreOpcode(), getRegState(), INITIALIZE_PASS(), InsertLDR_STR(), isFpMulInstruction(), llvm::MSP430InstrInfo::loadRegFromStackSlot(), llvm::AArch64InstrInfo::loadRegFromStackSlot(), llvm::ARMFrameLowering::ResolveFrameIndexReference(), llvm::Thumb1FrameLowering::restoreCalleeSavedRegisters(), llvm::AArch64FrameLowering::restoreCalleeSavedRegisters(), and llvm::X86InstrInfo::unfoldMemoryOperand().
|
static |
Definition at line 25 of file DWARFExpression.cpp.
Referenced by getOpDesc().
| DISubprogram * llvm::getDISubprogram | ( | const MDNode * | Scope | ) |
Find subprogram that is enclosing this scope.
Definition at line 43 of file DebugInfo.cpp.
References llvm::DILocalScope::getSubprogram().
Referenced by llvm::DebugHandlerBase::beginFunction(), llvm::DwarfCompileUnit::constructInlinedScopeDIE(), llvm::DebugLoc::getFnDebugLoc(), and shouldKeepInEntry().
Definition at line 149 of file AArch64BaseInfo.h.
References Reg.
| const DWARFUnitIndex & llvm::getDWARFUnitIndex | ( | DWARFContext & | Context, |
| DWARFSectionKind | Kind | ||
| ) |
Definition at line 758 of file DWARFUnit.cpp.
References assert(), DW_SECT_INFO, DW_SECT_TYPES, llvm::DWARFContext::getCUIndex(), and llvm::DWARFContext::getTUIndex().
Referenced by llvm::DWARFUnitVector::addUnitsForDWOSection(), and llvm::DWARFUnitHeader::getNextUnitOffset().
|
inline |
Helper method for getting the code model, returning Default if CM does not have a value.
The tiny and kernel models will produce an error, so targets that support them or require more complex codemodel selection logic should implement and call their own getEffectiveCodeModel.
Definition at line 381 of file TargetMachine.h.
References llvm::CodeModel::Kernel, report_fatal_error(), and llvm::CodeModel::Tiny.
|
static |
Definition at line 39 of file AVRTargetMachine.cpp.
References llvm::Optional< T >::hasValue(), llvm::NVPTX::PTXCvtMode::RM, and llvm::Reloc::Static.
|
static |
Definition at line 12 of file AVRELFStreamer.cpp.
References llvm::ELF::EF_AVR_ARCH_AVR1, llvm::ELF::EF_AVR_ARCH_AVR2, llvm::ELF::EF_AVR_ARCH_AVR25, llvm::ELF::EF_AVR_ARCH_AVR3, llvm::ELF::EF_AVR_ARCH_AVR31, llvm::ELF::EF_AVR_ARCH_AVR35, llvm::ELF::EF_AVR_ARCH_AVR4, llvm::ELF::EF_AVR_ARCH_AVR5, llvm::ELF::EF_AVR_ARCH_AVR51, llvm::ELF::EF_AVR_ARCH_AVR6, llvm::ELF::EF_AVR_ARCH_AVRTINY, llvm::ELF::EF_AVR_ARCH_XMEGA1, llvm::ELF::EF_AVR_ARCH_XMEGA2, llvm::ELF::EF_AVR_ARCH_XMEGA3, llvm::ELF::EF_AVR_ARCH_XMEGA4, llvm::ELF::EF_AVR_ARCH_XMEGA5, llvm::ELF::EF_AVR_ARCH_XMEGA6, and llvm::ELF::EF_AVR_ARCH_XMEGA7.
Referenced by llvm::AVRELFStreamer::AVRELFStreamer().
| StringRef llvm::getEHPersonalityName | ( | EHPersonality | Pers | ) |
Definition at line 45 of file EHPersonalities.cpp.
References CoreCLR, GNU_Ada, GNU_C, GNU_C_SjLj, GNU_CXX, GNU_CXX_SjLj, GNU_ObjC, llvm_unreachable, MSVC_CXX, MSVC_Win64SEH, MSVC_X86SEH, Rust, Unknown, and Wasm_CXX.
Referenced by getDefaultPersonalityFn().
| DenseMap< const MachineBasicBlock *, int > llvm::getEHScopeMembership | ( | const MachineFunction & | MF | ) |
Definition at line 748 of file Analysis.cpp.
References classifyEHPersonality(), collectEHScopeMembers(), llvm::SmallVectorBase::empty(), llvm::MachineFunction::front(), llvm::TargetInstrInfo::getCatchReturnOpcode(), llvm::MachineFunction::getFunction(), llvm::TargetSubtargetInfo::getInstrInfo(), llvm::MachineBasicBlock::getNumber(), llvm::Function::getPersonalityFn(), llvm::MachineFunction::getSubtarget(), llvm::MachineFunction::hasEHScopes(), isAsynchronousEHPersonality(), llvm::SmallVectorTemplateBase< T >::push_back(), Successor, and TII.
Referenced by ComputeLinearIndex(), and INITIALIZE_PASS().
| ISD::CondCode llvm::getFCmpCodeWithoutNaN | ( | ISD::CondCode | CC | ) |
getFCmpCodeWithoutNaN - Given an ISD condition code comparing floats, return the equivalent code if we're allowed to assume that NaNs won't occur.
Definition at line 223 of file Analysis.cpp.
References llvm::ISD::SETEQ, llvm::ISD::SETGE, llvm::ISD::SETGT, llvm::ISD::SETLE, llvm::ISD::SETLT, llvm::ISD::SETNE, llvm::ISD::SETOEQ, llvm::ISD::SETOGE, llvm::ISD::SETOGT, llvm::ISD::SETOLE, llvm::ISD::SETOLT, llvm::ISD::SETONE, llvm::ISD::SETUEQ, llvm::ISD::SETUGE, llvm::ISD::SETUGT, llvm::ISD::SETULE, llvm::ISD::SETULT, and llvm::ISD::SETUNE.
Referenced by ComputeLinearIndex(), and isVectorReductionOp().
| ISD::CondCode llvm::getFCmpCondCode | ( | FCmpInst::Predicate | Pred | ) |
getFCmpCondCode - Return the ISD condition code corresponding to the given LLVM IR floating-point condition code.
This includes consideration of global floating-point math flags.
Definition at line 201 of file Analysis.cpp.
References llvm::CmpInst::FCMP_FALSE, llvm::CmpInst::FCMP_OEQ, llvm::CmpInst::FCMP_OGE, llvm::CmpInst::FCMP_OGT, llvm::CmpInst::FCMP_OLE, llvm::CmpInst::FCMP_OLT, llvm::CmpInst::FCMP_ONE, llvm::CmpInst::FCMP_ORD, llvm::CmpInst::FCMP_TRUE, llvm::CmpInst::FCMP_UEQ, llvm::CmpInst::FCMP_UGE, llvm::CmpInst::FCMP_UGT, llvm::CmpInst::FCMP_ULE, llvm::CmpInst::FCMP_ULT, llvm::CmpInst::FCMP_UNE, llvm::CmpInst::FCMP_UNO, llvm_unreachable, llvm::ISD::SETFALSE, llvm::ISD::SETO, llvm::ISD::SETOEQ, llvm::ISD::SETOGE, llvm::ISD::SETOGT, llvm::ISD::SETOLE, llvm::ISD::SETOLT, llvm::ISD::SETONE, llvm::ISD::SETTRUE, llvm::ISD::SETUEQ, llvm::ISD::SETUGE, llvm::ISD::SETUGT, llvm::ISD::SETULE, llvm::ISD::SETULT, llvm::ISD::SETUNE, and llvm::ISD::SETUO.
Referenced by ComputeLinearIndex(), FixedPointIntrinsicToOpcode(), isVectorReductionOp(), and lowerFCMPIntrinsic().
| llvm::Optional< std::pair< CmpInst::Predicate, Constant * > > llvm::getFlippedStrictnessPredicateAndConstant | ( | CmpInst::Predicate | Pred, |
| Constant * | C | ||
| ) |
Definition at line 5187 of file InstCombineCompares.cpp.
References assert(), C, llvm::Constant::containsUndefElement(), dyn_cast(), llvm::ConstantInt::get(), llvm::ConstantExpr::getAdd(), llvm::Constant::getAggregateElement(), llvm::CmpInst::getFlippedStrictnessPredicate(), llvm::Value::getType(), llvm::ICmpInst::getUnsignedPredicate(), llvm::Type::getVectorNumElements(), llvm::CmpInst::ICMP_UGT, llvm::CmpInst::ICMP_ULE, llvm::CmpInst::isIntPredicate(), llvm::ICmpInst::isRelational(), llvm::CmpInst::isSigned(), llvm::Type::isVectorTy(), None, and llvm::Constant::replaceUndefsWith().
Referenced by canonicalizeCmpWithConstant(), canonicalizeSaturatedAdd(), foldICmpShlOne(), and isSignBitCheck().
| StringRef llvm::getFloatFnName | ( | const TargetLibraryInfo * | TLI, |
| Type * | Ty, | ||
| LibFunc | DoubleFn, | ||
| LibFunc | FloatFn, | ||
| LibFunc | LongDoubleFn | ||
| ) |
Get the name of the overloaded floating point function corresponding to Ty.
Definition at line 802 of file BuildLibCalls.cpp.
References assert(), llvm::Type::DoubleTyID, llvm::Type::FloatTyID, llvm::TargetLibraryInfo::getName(), llvm::Type::getTypeID(), llvm::Type::HalfTyID, hasFloatFn(), and llvm_unreachable.
Referenced by emitBinaryFloatFnCall(), and emitUnaryFloatFnCall().
| const X86InstrFMA3Group * llvm::getFMA3Group | ( | unsigned | Opcode, |
| uint64_t | TSFlags | ||
| ) |
Returns a reference to a group of FMA3 opcodes to where the given Opcode is included.
If the given Opcode is not recognized as FMA3 and not included into any FMA3 group, then nullptr is returned.
Definition at line 132 of file X86InstrFMA3Info.cpp.
References assert(), llvm::X86II::EncodingMask, llvm::ArrayRef< T >::end(), llvm::X86II::EVEX, llvm::X86II::EVEX_B, llvm::X86II::EVEX_RC, llvm::X86II::getBaseOpcodeFor(), I, makeArrayRef(), llvm::X86InstrFMA3Group::Opcodes, llvm::X86II::OpMapMask, llvm::X86II::OpPrefixMask, partition_point(), llvm::X86II::PD, llvm::X86II::T8, verifyTables(), and llvm::X86II::VEX.
Referenced by llvm::X86InstrInfo::commuteInstructionImpl(), llvm::X86InstrInfo::findCommutedOpIndices(), and llvm::X86InstrFMA3Group::operator<().
| StringRef llvm::getFuncNameWithoutPrefix | ( | StringRef | PGOFuncName, |
| StringRef | FileName = "<unknown>" |
||
| ) |
Given a PGO function name, remove the filename prefix and return the original (static) function name.
Definition at line 276 of file InstrProf.cpp.
References llvm::StringRef::drop_front(), llvm::StringRef::empty(), llvm::StringRef::size(), and llvm::StringRef::startswith().
Referenced by llvm::coverage::CounterMappingContext::evaluate(), and getInstrProfNameSeparator().
|
static |
Definition at line 914 of file AVRISelLowering.cpp.
References Callee, llvm::TargetLowering::CallLoweringInfo::Callee, G, and llvm_unreachable.
Referenced by analyzeBuiltinArguments(), llvm::pdb::PDBContext::classof(), getFilename(), and shouldKeepInEntry().
| unsigned llvm::getGEPInductionOperand | ( | const GetElementPtrInst * | Gep | ) |
Find the operand of the GEP that should be checked for consecutive stores.
This ignores trailing indices that have no effect on the final pointer.
Definition at line 129 of file VectorUtils.cpp.
References gep_type_begin(), llvm::Module::getDataLayout(), llvm::generic_gep_type_iterator< ItTy >::getIndexedType(), llvm::Instruction::getModule(), llvm::User::getNumOperands(), llvm::User::getOperand(), llvm::GetElementPtrInst::getResultElementType(), llvm::DataLayout::getTypeAllocSize(), llvm::PatternMatch::m_Zero(), and llvm::PatternMatch::match().
Referenced by stripGetElementPtr().
| const Value * llvm::getGuaranteedNonFullPoisonOp | ( | const Instruction * | I | ) |
Return either nullptr or an operand of I such that I will trigger undefined behavior if I is executed and that operand has a full-poison value (all bits poison).
Definition at line 4530 of file ValueTracking.cpp.
References llvm::Instruction::getOpcode(), llvm::User::getOperand(), getPointerOperand(), I, llvm::SPII::Load, and llvm::SPII::Store.
Referenced by mustTriggerUB(), and rewrite().
|
static |
Definition at line 92 of file BlockFrequencyInfo.cpp.
References GVDT_Count, PGOVCT_Graph, PGOViewCounts, and ViewBlockFreqPropagationDAG.
|
inline |
Definition at line 922 of file InstrProf.h.
References llvm::support::big, llvm::sys::IsLittleEndianHost, and llvm::support::little.
Referenced by allocValueProfData(), and llvm::RawInstrProfReader< IntPtrT >::getSymtab().
|
inline |
Definition at line 103 of file ModuleSummaryIndex.h.
References llvm::CalleeInfo::Cold, llvm::CalleeInfo::Critical, llvm::CalleeInfo::Hot, llvm_unreachable, llvm::CalleeInfo::None, and llvm::CalleeInfo::Unknown.
Referenced by ComputeImportForModule(), and getLinkageNameWithSpace().
Definition at line 36 of file ProfileCommon.h.
Encode a icmp predicate into a three bit mask.
These bits are carefully arranged to allow folding of expressions such as:
(A < B) | (A > B) --> (A != B)
Note that this is only valid if the first and second predicates have the same sign. It is illegal to do: (A u< B) | (A s> B)
Three bits are used to represent the condition, as follows: 0 A > B 1 A == B 2 A < B
<=> Value Definition 000 0 Always false 001 1 A > B 010 2 A == B 011 3 A >= B 100 4 A < B 101 5 A != B 110 6 A <= B 111 7 Always true
Definition at line 21 of file CmpInstAnalysis.cpp.
References llvm::CmpInst::getInversePredicate(), llvm::CmpInst::getPredicate(), llvm::CmpInst::ICMP_EQ, llvm::CmpInst::ICMP_NE, llvm::CmpInst::ICMP_SGE, llvm::CmpInst::ICMP_SGT, llvm::CmpInst::ICMP_SLE, llvm::CmpInst::ICMP_SLT, llvm::CmpInst::ICMP_UGE, llvm::CmpInst::ICMP_UGT, llvm::CmpInst::ICMP_ULE, llvm::CmpInst::ICMP_ULT, and llvm_unreachable.
Referenced by foldUnsignedUnderflowCheck(), and foldXorToXor().
| ISD::CondCode llvm::getICmpCondCode | ( | ICmpInst::Predicate | Pred | ) |
getICmpCondCode - Return the ISD condition code corresponding to the given LLVM IR integer condition code.
Definition at line 238 of file Analysis.cpp.
References llvm::CmpInst::ICMP_EQ, llvm::CmpInst::ICMP_NE, llvm::CmpInst::ICMP_SGE, llvm::CmpInst::ICMP_SGT, llvm::CmpInst::ICMP_SLE, llvm::CmpInst::ICMP_SLT, llvm::CmpInst::ICMP_UGE, llvm::CmpInst::ICMP_UGT, llvm::CmpInst::ICMP_ULE, llvm::CmpInst::ICMP_ULT, llvm_unreachable, llvm::ISD::SETEQ, llvm::ISD::SETGE, llvm::ISD::SETGT, llvm::ISD::SETLE, llvm::ISD::SETLT, llvm::ISD::SETNE, llvm::ISD::SETUGE, llvm::ISD::SETUGT, llvm::ISD::SETULE, and llvm::ISD::SETULT.
Referenced by ComputeLinearIndex(), isVectorReductionOp(), and lowerICMPIntrinsic().
| Value * llvm::GetIfCondition | ( | BasicBlock * | BB, |
| BasicBlock *& | IfTrue, | ||
| BasicBlock *& | IfFalse | ||
| ) |
Check whether BB is the merge point of a if-region.
If so, return the boolean condition that determines which entry into BB will be taken. Also, return by references the block that will be entered from if the condition is true, and the block that will be entered if the condition is false.
This does no checking to see if the true/false blocks have large or unsavory instructions in them.
Definition at line 997 of file BasicBlockUtils.cpp.
References assert(), llvm::BasicBlock::begin(), dyn_cast(), llvm::BranchInst::getCondition(), llvm::PHINode::getIncomingBlock(), llvm::PHINode::getNumIncomingValues(), llvm::BasicBlock::getSinglePredecessor(), llvm::BranchInst::getSuccessor(), llvm::BasicBlock::getTerminator(), llvm::BranchInst::isConditional(), pred_begin(), pred_end(), and std::swap().
Referenced by FoldTwoEntryPHINode().
Definition at line 473 of file MachineInstrBuilder.h.
References llvm::RegState::Implicit.
Referenced by addSavedGPR(), finalizeBundle(), and getRegState().
| InlineCost llvm::getInlineCost | ( | CallBase & | Call, |
| const InlineParams & | Params, | ||
| TargetTransformInfo & | CalleeTTI, | ||
| std::function< AssumptionCache &(Function &)> & | GetAssumptionCache, | ||
| Optional< function_ref< BlockFrequencyInfo &(Function &)>> | GetBFI, | ||
| ProfileSummaryInfo * | PSI, | ||
| OptimizationRemarkEmitter * | ORE = nullptr |
||
| ) |
Get an InlineCost object representing the cost of inlining this callsite.
Note that a default threshold is passed into this function. This threshold could be modified based on callsite's properties and only costs below this new threshold are computed with any accuracy. The new threshold can be used to bound the computation necessary to determine whether the cost is sufficiently low to warrant inlining.
Also note that calling this function dynamically computes the cost of inlining the callsite. It is an expensive, heavyweight call.
Definition at line 2105 of file InlineCost.cpp.
References llvm::CallBase::getCalledFunction().
Referenced by createAlwaysInlinerLegacyPass(), hasProfileData(), isWrapperOnlyCall(), and llvm::AlwaysInlinerPass::run().
| InlineCost llvm::getInlineCost | ( | CallBase & | Call, |
| Function * | Callee, | ||
| const InlineParams & | Params, | ||
| TargetTransformInfo & | CalleeTTI, | ||
| std::function< AssumptionCache &(Function &)> & | GetAssumptionCache, | ||
| Optional< function_ref< BlockFrequencyInfo &(Function &)>> | GetBFI, | ||
| ProfileSummaryInfo * | PSI, | ||
| OptimizationRemarkEmitter * | ORE | ||
| ) |
Get an InlineCost with the callee explicitly specified.
This allows you to calculate the cost of inlining a function via a pointer. This behaves exactly as the version with no explicit callee parameter in all other respects.
Definition at line 2114 of file InlineCost.cpp.
References llvm::CallBase::arg_size(), dbgs(), E, functionsHaveCompatibleAttributes(), llvm::InlineCost::get(), llvm::PointerType::getAddressSpace(), llvm::DataLayout::getAllocaAddrSpace(), llvm::InlineCost::getAlways(), llvm::CallBase::getArgOperand(), llvm::CallBase::getCaller(), llvm::Module::getDataLayout(), llvm::Value::getName(), llvm::InlineCost::getNever(), llvm::GlobalValue::getParent(), llvm::Value::getType(), llvm::CallBase::hasFnAttr(), llvm::Function::hasFnAttribute(), llvm::Function::hasOptNone(), I, llvm::CallBase::isByValArgument(), isInlineViable(), llvm::GlobalValue::isInterposable(), llvm::CallBase::isNoInline(), LLVM_DEBUG, llvm::InlineResult::message, and llvm::Function::nullPointerIsDefined().
| InlineParams llvm::getInlineParams | ( | ) |
Generate the parameters to tune the inline cost analysis based only on the commandline options.
Definition at line 2301 of file InlineCost.cpp.
References InlineThreshold.
Referenced by createFunctionInliningPass(), getInlineParams(), getInlineParamsFromOptLevel(), and hasProfileData().
| InlineParams llvm::getInlineParams | ( | int | Threshold | ) |
Generate the parameters to tune the inline cost analysis based on command line options.
If -inline-threshold option is not explicitly passed, Threshold is used as the default threshold.
Definition at line 2248 of file InlineCost.cpp.
References ColdCallSiteThreshold, llvm::InlineParams::ColdCallSiteThreshold, ColdThreshold, llvm::InlineParams::ColdThreshold, llvm::InlineParams::DefaultThreshold, HintThreshold, llvm::InlineParams::HintThreshold, llvm::InlineParams::HotCallSiteThreshold, if(), InlineThreshold, LocallyHotCallSiteThreshold, llvm::InlineParams::LocallyHotCallSiteThreshold, llvm::InlineConstants::OptMinSizeThreshold, llvm::InlineParams::OptMinSizeThreshold, llvm::InlineConstants::OptSizeThreshold, and llvm::InlineParams::OptSizeThreshold.
| InlineParams llvm::getInlineParams | ( | unsigned | OptLevel, |
| unsigned | SizeOptLevel | ||
| ) |
Generate the parameters to tune the inline cost analysis based on command line options.
If -inline-threshold option is not explicitly passed, the default threshold is computed from OptLevel and SizeOptLevel. An OptLevel value above 3 is considered an aggressive optimization mode. SizeOptLevel of 1 corresponds to the -Os flag and 2 corresponds to the -Oz flag.
Definition at line 2318 of file InlineCost.cpp.
References computeThresholdFromOptLevels(), getInlineParams(), LocallyHotCallSiteThreshold, and llvm::InlineParams::LocallyHotCallSiteThreshold.
| ARMCC::CondCodes llvm::getInstrPredicate | ( | const MachineInstr & | MI, |
| unsigned & | PredReg | ||
| ) |
getInstrPredicate - If instruction is predicated, returns its predicate condition, otherwise returns AL.
It also returns the condition code register by reference.
Definition at line 2122 of file ARMBaseInstrInfo.cpp.
References llvm::ARMCC::AL, llvm::MachineInstr::findFirstPredOperandIdx(), llvm::MachineOperand::getImm(), llvm::MachineInstr::getOperand(), and llvm::MachineOperand::getReg().
Referenced by llvm::ARMBaseInstrInfo::commuteInstructionImpl(), ContainsReg(), findCMPToFoldIntoCBZ(), findIncDecAfter(), getITInstrPredicate(), getPostIndexedLoadStoreOpcode(), getUnconditionalBrDisp(), InsertLDR_STR(), isIncrementOrDecrement(), IsSafeAndProfitableToMove(), isValidCoprocessorNumber(), makeImplicit(), llvm::Thumb2InstrInfo::ReplaceTailWithBranchTo(), rewriteT2FrameIndex(), and VerifyLowRegs().
|
inline |
Return the name prefix of profile counter variables.
Definition at line 88 of file InstrProf.h.
Referenced by needsRuntimeRegistrationOfSectionRange().
|
inline |
Return the name prefix of variables containing per-function control data.
Definition at line 85 of file InstrProf.h.
Referenced by needsRuntimeRegistrationOfSectionRange().
|
inline |
Return the name of the runtime initialization method that is generated by the compiler.
The function calls __llvm_profile_register_functions and __llvm_profile_override_default_filename functions if needed. This function has internal linkage and invoked at startup time via init_array.
Definition at line 141 of file InstrProf.h.
Referenced by needsRuntimeRegistrationOfSectionRange().
|
inline |
Return the marker used to separate PGO names during serialization.
Definition at line 157 of file InstrProf.h.
References canRenameComdatFunc(), collectPGOFuncNameStrings(), createPGOFuncNameVar(), F(), getFuncNameWithoutPrefix(), getPGOFuncName(), getPGOFuncNameVarInitializer(), getPGOFuncNameVarName(), isIRPGOFlagSet(), readPGOFuncNameStrings(), and llvm::RawInstrProf::Version.
Referenced by collectPGOFuncNameStrings(), and readPGOFuncNameStrings().
|
inline |
Return the name of the runtime interface that registers the PGO name strings.
Definition at line 133 of file InstrProf.h.
Referenced by needsRuntimeRegistrationOfSectionRange().
|
inline |
Return the name of the variable holding the strings (possibly compressed) of all function's PGO names.
Definition at line 98 of file InstrProf.h.
Referenced by needsRuntimeRegistrationOfSectionRange().
|
inline |
Return the name prefix of variables containing instrumented function names.
Definition at line 82 of file InstrProf.h.
Referenced by getPGOFuncNameVarName(), and getVarName().
|
inline |
Return the name of the runtime interface that registers per-function control data for one instrumented function.
Definition at line 128 of file InstrProf.h.
Referenced by needsRuntimeRegistrationOfSectionRange().
|
inline |
Return the name of function that registers all the per-function control data at program startup time by calling __llvm_register_function.
This function has internal linkage and is called by __llvm_profile_init runtime method. This function is not generated for these platforms: Darwin, Linux, and FreeBSD.
Definition at line 122 of file InstrProf.h.
Referenced by needsRuntimeRegistrationOfSectionRange().
|
inline |
Return the name of the hook variable defined in profile runtime library.
A reference to the variable causes the linker to link in the runtime initialization module (which defines the hook variable).
Definition at line 146 of file InstrProf.h.
Referenced by needsRuntimeRegistrationOfSectionRange().
|
inline |
Return the name of the compiler generated function that references the runtime hook variable.
The function is a weak global.
Definition at line 152 of file InstrProf.h.
Referenced by needsRuntimeRegistrationOfSectionRange().
| std::string llvm::getInstrProfSectionName | ( | InstrProfSectKind | IPSK, |
| Triple::ObjectFormatType | OF, | ||
| bool | AddSegmentInfo = true |
||
| ) |
Return the name of the profile section corresponding to IPSK.
The name of the section depends on the object format type OF. If AddSegmentInfo is true, a segment prefix and additional linker hints may be added to the section name (this is the default).
Definition at line 165 of file InstrProf.cpp.
References llvm::Triple::COFF, and llvm::Triple::MachO.
Referenced by getELFKindForNamedSection(), loadBinaryFormat(), needsRuntimeRegistrationOfSectionRange(), and shouldInstrumentReadWriteFromAddress().
|
inline |
Return the name profile runtime entry point to do value profiling for a given site.
Definition at line 72 of file InstrProf.h.
Referenced by getOrInsertValueProfilingCall(), and isUnconditionalBranch().
|
inline |
Return the name profile runtime entry point to do value range profiling.
Definition at line 77 of file InstrProf.h.
Referenced by getOrInsertValueProfilingCall().
|
inline |
Return the name prefix of value profile variables.
Definition at line 91 of file InstrProf.h.
Referenced by needsRuntimeRegistrationOfSectionRange().
|
inline |
Return the name of value profile node array variables:
Definition at line 94 of file InstrProf.h.
Referenced by needsRuntimeRegistrationOfSectionRange().
Definition at line 485 of file MachineInstrBuilder.h.
References llvm::RegState::InternalRead.
Referenced by llvm::SplitEditor::dump(), getRegState(), and VerifyLowRegs().
| Intrinsic::ID llvm::getIntrinsicForCallSite | ( | ImmutableCallSite | ICS, |
| const TargetLibraryInfo * | TLI | ||
| ) |
Map a call instruction to an intrinsic ID.
Libcalls which have equivalent intrinsics are treated as-if they were intrinsics.
Definition at line 2880 of file ValueTracking.cpp.
References F(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::getCalledFunction(), llvm::Function::getIntrinsicID(), llvm::TargetLibraryInfo::getLibFunc(), llvm::GlobalValue::hasLocalLinkage(), llvm::Function::isIntrinsic(), log2(), maxnum(), minnum(), llvm::Intrinsic::not_intrinsic, llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::onlyReadsMemory(), and round().
Referenced by CannotBeNegativeZero(), cannotBeOrderedLessThanZeroImpl(), and getVectorIntrinsicIDForCall().
|
static |
Definition at line 326 of file X86IntrinsicsInfo.h.
References llvm::sys::path::begin(), Data, llvm::sys::path::end(), llvm::IntrinsicData::Id, and lower_bound().
Referenced by llvm::X86TargetLowering::getTgtMemIntrinsic(), and LowerINTRINSIC_W_CHAIN().
|
static |
Definition at line 1150 of file X86IntrinsicsInfo.h.
References llvm::sys::path::begin(), Data, llvm::sys::path::end(), llvm::IntrinsicData::Id, and lower_bound().
Referenced by recoverFramePointer().
| SelectPatternFlavor llvm::getInverseMinMaxFlavor | ( | SelectPatternFlavor | SPF | ) |
Return the inverse minimum/maximum flavor of the specified flavor.
For example, signed minimum is the inverse of signed maximum.
Definition at line 5298 of file ValueTracking.cpp.
References llvm_unreachable, SPF_SMAX, SPF_SMIN, SPF_UMAX, and SPF_UMIN.
Referenced by canonicalizeSaturatedAdd(), getInverseMinMaxPred(), isSignedMinMaxClamp(), and matchSelectPattern().
| CmpInst::Predicate llvm::getInverseMinMaxPred | ( | SelectPatternFlavor | SPF | ) |
Return the canonical inverse comparison predicate for the specified minimum/maximum flavor.
Definition at line 5306 of file ValueTracking.cpp.
References getInverseMinMaxFlavor(), and getMinMaxPred().
Referenced by matchSelectPattern(), and llvm::InstCombiner::visitXor().
| ARMCC::CondCodes llvm::getITInstrPredicate | ( | const MachineInstr & | MI, |
| unsigned & | PredReg | ||
| ) |
getITInstrPredicate - Valid only in Thumb2 mode.
This function is identical to llvm::getInstrPredicate except it returns AL for conditional branch instructions which are "predicated", but are not in IT blocks.
Definition at line 708 of file Thumb2InstrInfo.cpp.
References llvm::ARMCC::AL, getInstrPredicate(), and llvm::MachineInstr::getOpcode().
Referenced by llvm::Thumb2InstrInfo::getRegisterInfo(), getUnconditionalBrDisp(), isCopy(), and llvm::Thumb2InstrInfo::isLegalToSplitMBBAt().
Definition at line 476 of file MachineInstrBuilder.h.
References llvm::RegState::Kill.
Referenced by addExclusiveRegPair(), addRegOffset(), addRegReg(), addSavedGPR(), llvm::HexagonFrameLowering::assignCalleeSavedSpillSlots(), buildMUBUFOffsetLoadStore(), llvm::X86InstrInfo::classifyLEAReg(), llvm::PPCInstrInfo::commuteInstructionImpl(), computeBytesPoppedByCalleeForSRet(), ContainsReg(), llvm::X86InstrInfo::convertToThreeAddress(), llvm::ARMBaseInstrInfo::copyFromCPSR(), llvm::AArch64InstrInfo::copyGPRRegTuple(), llvm::BPFInstrInfo::copyPhysReg(), llvm::RISCVInstrInfo::copyPhysReg(), llvm::MSP430InstrInfo::copyPhysReg(), llvm::Thumb1InstrInfo::copyPhysReg(), llvm::Thumb2InstrInfo::copyPhysReg(), llvm::MipsSEInstrInfo::copyPhysReg(), llvm::LanaiInstrInfo::copyPhysReg(), llvm::Mips16InstrInfo::copyPhysReg(), llvm::NVPTXInstrInfo::copyPhysReg(), llvm::XCoreInstrInfo::copyPhysReg(), llvm::ARCInstrInfo::copyPhysReg(), llvm::AVRInstrInfo::copyPhysReg(), llvm::SparcInstrInfo::copyPhysReg(), llvm::AArch64InstrInfo::copyPhysReg(), llvm::HexagonInstrInfo::copyPhysReg(), llvm::SIInstrInfo::copyPhysReg(), llvm::ARMBaseInstrInfo::copyPhysReg(), llvm::SystemZInstrInfo::copyPhysReg(), llvm::PPCInstrInfo::copyPhysReg(), llvm::X86InstrInfo::copyPhysReg(), llvm::ARMBaseInstrInfo::copyToCPSR(), emitBuildPairF64Pseudo(), llvm::PPCFrameLowering::emitEpilogue(), llvm::PPCFrameLowering::emitPrologue(), llvm::HexagonInstrInfo::expandPostRAPseudo(), llvm::FastISel::fastEmitInst_extractsubreg(), llvm::FastISel::fastEmitInst_r(), llvm::FastISel::fastEmitInst_ri(), llvm::FastISel::fastEmitInst_rii(), llvm::FastISel::fastEmitInst_rr(), llvm::FastISel::fastEmitInst_rri(), llvm::FastISel::fastEmitInst_rrr(), finalizeBundle(), findIncDecAfter(), fixStackStores(), llvm::ARMBaseInstrInfo::FoldImmediate(), for(), genFusedMultiply(), genMaddR(), getCompareCC(), GetDSubRegs(), getImplicitScaleFactor(), llvm::PPCInstrInfo::getLoadOpcodeForSpill(), getNewValueJumpOpcode(), getPostIndexedLoadStoreOpcode(), getPrologueDeath(), getRegState(), getUnconditionalBrDisp(), INITIALIZE_PASS(), insertCopy(), insertCSRRestores(), insertCSRSaves(), insertDivByZeroTrap(), InsertFPConstInst(), InsertFPImmInst(), InsertLDR_STR(), InsertSPConstInst(), InsertSPImmInst(), isFpMulInstruction(), isFullUndefDef(), isMulPowOf2(), isSExtLoad(), llvm::MipsSEInstrInfo::loadImmediate(), llvm::PPCRegisterInfo::lowerCRBitSpilling(), llvm::PPCRegisterInfo::lowerCRSpilling(), llvm::PPCRegisterInfo::lowerDynamicAlloc(), llvm::PPCRegisterInfo::lowerVRSAVESpilling(), makeImplicit(), llvm::AArch64FrameLowering::processFunctionBeforeFrameFinalized(), llvm::TargetInstrInfo::reassociateOps(), RemoveDeadAddBetweenLEAAndJT(), ReplaceFrameIndex(), reportIllegalCopy(), llvm::ARMFrameLowering::ResolveFrameIndexReference(), llvm::PPCFrameLowering::restoreCalleeSavedRegisters(), restoreCRs(), llvm::AVRFrameLowering::spillCalleeSavedRegisters(), llvm::Thumb1FrameLowering::spillCalleeSavedRegisters(), llvm::X86FrameLowering::spillCalleeSavedRegisters(), llvm::PPCFrameLowering::spillCalleeSavedRegisters(), llvm::SIRegisterInfo::spillSGPR(), spillVGPRtoAGPR(), storeRegPairToStackSlot(), llvm::MipsSEInstrInfo::storeRegToStack(), llvm::Mips16InstrInfo::storeRegToStack(), llvm::BPFInstrInfo::storeRegToStackSlot(), llvm::RISCVInstrInfo::storeRegToStackSlot(), llvm::MSP430InstrInfo::storeRegToStackSlot(), llvm::Thumb1InstrInfo::storeRegToStackSlot(), llvm::Thumb2InstrInfo::storeRegToStackSlot(), llvm::LanaiInstrInfo::storeRegToStackSlot(), llvm::XCoreInstrInfo::storeRegToStackSlot(), llvm::ARCInstrInfo::storeRegToStackSlot(), llvm::AVRInstrInfo::storeRegToStackSlot(), llvm::SparcInstrInfo::storeRegToStackSlot(), llvm::AArch64InstrInfo::storeRegToStackSlot(), llvm::HexagonInstrInfo::storeRegToStackSlot(), llvm::ARMBaseInstrInfo::storeRegToStackSlot(), llvm::SIInstrInfo::storeRegToStackSlot(), llvm::SystemZInstrInfo::storeRegToStackSlot(), llvm::X86InstrInfo::storeRegToStackSlot(), llvm::SystemZInstrInfo::SystemZInstrInfo(), llvm::X86InstrInfo::unfoldMemoryOperand(), and VerifyLowRegs().
|
inline |
Try to infer an alignment for the specified pointer.
Definition at line 267 of file Local.h.
References llvm::SimplifyCFGOptions::AC, Address, callsGCLeafFunction(), canReplaceOperandWithVariable(), changeToCall(), changeToInvokeAndSplitBasicBlock(), changeToUnreachable(), combineMetadata(), combineMetadataForCSE(), ConvertDebugDeclareToDebugValue(), copyMetadataForLoad(), copyNonnullMetadata(), copyRangeMetadata(), createCallMatchingInvoke(), dropDebugUsers(), F(), findAllocaForValue(), FindDbgAddrUses(), findDbgUsers(), findDbgValues(), From, getOrEnforceKnownAlignment(), hoistAllInstructionsInto(), insertDebugValuesForPHIs(), LowerDbgDeclare(), maybeMarkSanitizerLibraryCallNoBuiltin(), N, patchReplacementInstruction(), recognizeBSwapOrBitReverseIdiom(), removeAllNonTerminatorAndEHPadInstructions(), removeUnreachableBlocks(), removeUnwindEdge(), replaceAllDbgUsesWith(), replaceDbgDeclare(), replaceDbgDeclareForAlloca(), replaceDbgValueForAlloca(), replaceDominatedUsesWith(), replaceNonLocalUsesWith(), salvageDebugInfo(), salvageDebugInfoForDbgValues(), salvageDebugInfoImpl(), salvageDebugInfoOrMarkUndef(), SI, and llvm::Sched::Source.
Referenced by AddAlignmentAssumptions(), despeculateCountZeros(), getNegativeIsTrueBoolVec(), and optimizeMemCmpConstantSize().
Definition at line 40 of file LanaiBaseInfo.h.
References llvm_unreachable, R2, R4, and R6.
Referenced by adjustPqBits(), and FixupKind().
| Expected< std::unique_ptr< Module > > llvm::getLazyBitcodeModule | ( | MemoryBufferRef | Buffer, |
| LLVMContext & | Context, | ||
| bool | ShouldLazyLoadMetadata = false, |
||
| bool | IsImporting = false |
||
| ) |
Read the header of the specified bitcode buffer and prepare for lazy deserialization of function bodies.
If ShouldLazyLoadMetadata is true, lazily load metadata as well. If IsImporting is true, this module is being parsed for ThinLTO importing into another module.
Definition at line 6645 of file BitcodeReader.cpp.
References getSingleModule(), and llvm::Expected< T >::takeError().
Referenced by getOwningLazyBitcodeModule(), and parseBitcodeFileImpl().
| std::unique_ptr< Module > llvm::getLazyIRFileModule | ( | StringRef | Filename, |
| SMDiagnostic & | Err, | ||
| LLVMContext & | Context, | ||
| bool | ShouldLazyLoadMetadata = false |
||
| ) |
If the given file holds a bitcode image, return a Module for it which does lazy deserialization of function bodies.
Otherwise, attempt to parse it as LLVM Assembly and return a fully populated Module. The ShouldLazyLoadMetadata flag is passed down to the bitcode reader to optionally enable lazy metadata loading.
Definition at line 52 of file IRReader.cpp.
| std::unique_ptr< Module > llvm::getLazyIRModule | ( | std::unique_ptr< MemoryBuffer > | Buffer, |
| SMDiagnostic & | Err, | ||
| LLVMContext & | Context, | ||
| bool | ShouldLazyLoadMetadata = false |
||
| ) |
If the given MemoryBuffer holds a bitcode image, return a Module for it which does lazy deserialization of function bodies.
Otherwise, attempt to parse it as LLVM Assembly and return a fully populated Module. The ShouldLazyLoadMetadata flag is passed down to the bitcode reader to optionally enable lazy metadata loading. This takes ownership of Buffer.
Definition at line 33 of file IRReader.cpp.
| void llvm::getLibcallSignature | ( | const WebAssemblySubtarget & | Subtarget, |
| RTLIB::Libcall | LC, | ||
| SmallVectorImpl< wasm::ValType > & | Rets, | ||
| SmallVectorImpl< wasm::ValType > & | Params | ||
| ) |
Definition at line 512 of file WebAssemblyRuntimeLibcallSignatures.cpp.
References assert(), llvm::SmallVectorBase::empty(), llvm::wasm::F32, llvm::wasm::F64, llvm::WebAssemblySubtarget::hasAddr64(), llvm::wasm::I32, llvm::wasm::I64, llvm_unreachable, and llvm::SmallVectorTemplateBase< T >::push_back().
Referenced by getLibcallSignature().
| void llvm::getLibcallSignature | ( | const WebAssemblySubtarget & | Subtarget, |
| const char * | Name, | ||
| SmallVectorImpl< wasm::ValType > & | Rets, | ||
| SmallVectorImpl< wasm::ValType > & | Params | ||
| ) |
Definition at line 881 of file WebAssemblyRuntimeLibcallSignatures.cpp.
References getLibcallSignature(), llvm_unreachable, and Name.
| LaneBitmask llvm::getLiveLaneMask | ( | unsigned | Reg, |
| SlotIndex | SI, | ||
| const LiveIntervals & | LIS, | ||
| const MachineRegisterInfo & | MRI | ||
| ) |
Definition at line 256 of file GCNRegPressure.cpp.
References assert(), llvm::LiveIntervals::getInterval(), and llvm::MachineRegisterInfo::getMaxLaneMaskForVReg().
Referenced by getLiveRegs(), and getUsedRegMask().
| DenseMap<MachineInstr*, GCNRPTracker::LiveRegSet> llvm::getLiveRegMap | ( | Range && | R, |
| bool | After, | ||
| LiveIntervals & | LIS | ||
| ) |
creates a map MachineInstr -> LiveRegSet R - range of iterators on instructions After - upon entry or exit of every instruction Note: there is no entry in the map for instructions with empty live reg set Complexity = O(NumVirtRegs * averageLiveRangeSegmentsPerReg * lg(R))
Definition at line 203 of file GCNRegPressure.h.
References llvm::SmallVectorImpl< T >::clear(), E, llvm::SlotIndex::getBaseIndex(), llvm::SlotIndex::getDeadSlot(), llvm::LiveIntervals::getInterval(), getParent(), llvm::LiveIntervals::getSlotIndexes(), llvm::LiveIntervals::hasInterval(), I, llvm::Register::index2VirtReg(), Reg, and sort().
Referenced by llvm::GCNScheduleDAGMILive::schedule().
| GCNRPTracker::LiveRegSet llvm::getLiveRegs | ( | SlotIndex | SI, |
| const LiveIntervals & | LIS, | ||
| const MachineRegisterInfo & | MRI | ||
| ) |
Definition at line 275 of file GCNRegPressure.cpp.
References E, getLiveLaneMask(), llvm::MachineRegisterInfo::getNumVirtRegs(), llvm::LiveIntervals::hasInterval(), I, and llvm::Register::index2VirtReg().
Referenced by getLiveRegsAfter(), getLiveRegsBefore(), and llvm::GCNUpwardRPTracker::isValid().
|
inline |
Definition at line 240 of file GCNRegPressure.h.
References llvm::SlotIndex::getDeadSlot(), llvm::LiveIntervals::getInstructionIndex(), getLiveRegs(), llvm::MachineBasicBlock::getParent(), llvm::MachineInstr::getParent(), and llvm::MachineFunction::getRegInfo().
Referenced by llvm::GCNRPTracker::reset().
|
inline |
Definition at line 246 of file GCNRegPressure.h.
References llvm::SlotIndex::getBaseIndex(), llvm::LiveIntervals::getInstructionIndex(), getLiveRegs(), llvm::MachineBasicBlock::getParent(), llvm::MachineInstr::getParent(), and llvm::MachineFunction::getRegInfo().
Referenced by printLivenessInfo(), llvm::GCNRPTracker::reset(), and llvm::GCNScheduleDAGMILive::schedule().
Get a rough equivalent of an LLT for a given MVT.
LLT does not yet support scalarable vector types, and will assert if used.
Definition at line 54 of file LowLevelType.cpp.
References llvm::MVT::getSizeInBits(), llvm::MVT::getVectorElementType(), llvm::MVT::getVectorNumElements(), llvm::MVT::isVector(), llvm::LLT::scalar(), and llvm::LLT::vector().
Referenced by llvm::CallLowering::handleAssignments(), and llvm::SelectionDAGISel::IsLegalToFold().
| LLT llvm::getLLTForType | ( | Type & | Ty, |
| const DataLayout & | DL | ||
| ) |
Construct a low-level type based on an LLVM type.
Definition at line 20 of file LowLevelType.cpp.
References assert(), llvm::LLT::getNumElements(), llvm::DataLayout::getPointerSizeInBits(), llvm::DataLayout::getTypeSizeInBits(), llvm::Type::isSized(), llvm::LLT::pointer(), llvm::LLT::scalar(), and llvm::LLT::vector().
Referenced by llvm::AMDGPUCallLowering::AMDGPUCallLowering(), computeValueLLTs(), llvm::IRTranslator::getAnalysisUsage(), getOffsetFromIndices(), isSwiftError(), llvm::AMDGPUCallLowering::lowerFormalArgumentsKernel(), llvm::AMDGPUCallLowering::lowerReturn(), llvm::CallLowering::packRegs(), and llvm::X86CallLowering::X86CallLowering().
A helper function that returns the address space of the pointer operand of load or store instruction.
Definition at line 5296 of file Instructions.h.
Referenced by llvm::InterleavedAccessInfo::analyzeInterleaving(), and isStrideMul().
|
inline |
A helper function that returns the alignment of load or store instruction.
Definition at line 5286 of file Instructions.h.
References assert(), and llvm::AllocaInst::getAlignment().
Referenced by llvm::LoopVectorizationCostModel::interleavedAccessCanBeWidened(), llvm::LoopVectorizationCostModel::isLegalGatherOrScatter(), llvm::LoopVectorizationCostModel::isScalarWithPredication(), isStrideMul(), llvm::LoopVectorizationLegality::isUniform(), possiblyDemandedEltsInMask(), and llvm::InnerLoopVectorizer::vectorizeMemoryInstruction().
A helper function that returns the pointer operand of a load or store instruction.
Returns nullptr if not load or store.
Definition at line 5260 of file Instructions.h.
References llvm::SPII::Load, and llvm::SPII::Store.
Referenced by llvm::InterleavedAccessInfo::analyzeInterleaving(), llvm::LoopVectorizationLegality::blockNeedsPredication(), createLoopVectorizePass(), llvm::DependenceInfo::depends(), getConstantPart(), getLoadStorePointerOperand(), getPointerOperand(), llvm::DependenceInfo::getSplitIteration(), isConsecutiveAccess(), isKnownNonNullFromDominatingCondition(), llvm::LoopVectorizationCostModel::isScalarWithPredication(), isStrideMul(), llvm::LoopVectorizationCostModel::memoryInstructionCanBeWidened(), possiblyDemandedEltsInMask(), propagateMetadata(), llvm::LoopVectorizationCostModel::setCostBasedWideningDecision(), llvm::VPRecipeBuilder::tryToWidenMemory(), and llvm::VPlanTransforms::VPInstructionsToVPRecipes().
Definition at line 5267 of file Instructions.h.
References getLoadStorePointerOperand().
| void llvm::getLoopAnalysisUsage | ( | AnalysisUsage & | AU | ) |
Helper to consistently add the set of standard passes to a loop pass's AnalysisUsage.
All loop passes should call this as part of implementing their getAnalysisUsage.
Definition at line 138 of file LoopUtils.cpp.
References llvm::AnalysisUsage::addPreserved(), llvm::AnalysisUsage::addPreservedID(), llvm::AnalysisUsage::addRequired(), llvm::AnalysisUsage::addRequiredID(), LCSSAID, and LoopSimplifyID.
Referenced by getInductionVariable(), llvm::LoopRotatePass::run(), llvm::IndVarSimplifyPass::run(), llvm::LoopDeletionPass::run(), llvm::LoopSimplifyCFGPass::run(), llvm::GuardWideningPass::run(), llvm::LoopSinkPass::run(), llvm::SimpleLoopUnswitchPass::run(), simplifyLoopInst(), and tryToUnrollLoop().
Get a loop's estimated trip count based on branch weight metadata.
Returns 0 when the count is estimated to be 0, or None when a meaningful estimate can not be made.
Definition at line 691 of file LoopUtils.cpp.
References any_of(), assert(), divideNearest(), dyn_cast(), llvm::Instruction::extractProfMetadata(), llvm::LoopBase< BlockT, LoopT >::getHeader(), llvm::LoopBase< BlockT, LoopT >::getLoopLatch(), llvm::BranchInst::getNumSuccessors(), llvm::BranchInst::getSuccessor(), llvm::BasicBlock::getTerminatingDeoptimizeCall(), llvm::BasicBlock::getTerminator(), llvm::LoopBase< BlockT, LoopT >::getUniqueNonLatchExitBlocks(), llvm::LoopBase< BlockT, LoopT >::isLoopExiting(), None, and std::swap().
Referenced by computePeelCount(), computeUnrollCount(), and getSmallBestKnownTC().
| PreservedAnalyses llvm::getLoopPassPreservedAnalyses | ( | ) |
Returns the minimum set of Analyses that all loop passes must preserve.
Definition at line 138 of file LoopAnalysisManager.cpp.
References llvm::PreservedAnalyses::preserve().
Referenced by llvm::IRCEPass::run(), llvm::LoopPredicationPass::run(), llvm::LoopRotatePass::run(), llvm::LoopUnrollAndJamPass::run(), llvm::IndVarSimplifyPass::run(), llvm::LoopInstSimplifyPass::run(), llvm::LoopDeletionPass::run(), llvm::LoopSimplifyCFGPass::run(), llvm::GuardWideningPass::run(), llvm::LoopIdiomRecognizePass::run(), llvm::LoopStrengthReducePass::run(), llvm::LoopFullUnrollPass::run(), llvm::LICMPass::run(), llvm::SimpleLoopUnswitchPass::run(), and llvm::LoopUnrollPass::run().
| COFF::MachineTypes llvm::getMachineType | ( | StringRef | S | ) |
Definition at line 22 of file WindowsMachineFlag.cpp.
References llvm::StringSwitch< T, R >::Case(), llvm::StringSwitch< T, R >::Cases(), llvm::StringSwitch< T, R >::Default(), llvm::COFF::IMAGE_FILE_MACHINE_AMD64, llvm::COFF::IMAGE_FILE_MACHINE_ARM64, llvm::COFF::IMAGE_FILE_MACHINE_ARMNT, llvm::COFF::IMAGE_FILE_MACHINE_I386, llvm::COFF::IMAGE_FILE_MACHINE_UNKNOWN, and llvm::StringRef::lower().
Referenced by llvm::pdb::PDBSymbolExe::getPointerByteSize().
| Type * llvm::getMallocAllocatedType | ( | const CallInst * | CI, |
| const TargetLibraryInfo * | TLI | ||
| ) |
getMallocAllocatedType - Returns the Type allocated by malloc call.
The Type depends on the number of bitcast uses of the malloc call: 0: PointerType is the malloc calls' return type. 1: PointerType is the bitcast's result type. >1: Unique PointerType cannot be determined, return NULL.
Definition at line 388 of file MemoryBuiltins.cpp.
References llvm::PointerType::getElementType(), and getMallocType().
Referenced by computeArraySize(), extractMallocCall(), optimizeOnceStoredGlobal(), PerformHeapAllocSRoA(), and tryToOptimizeStoreOfMallocToGlobal().
| Value * llvm::getMallocArraySize | ( | CallInst * | CI, |
| const DataLayout & | DL, | ||
| const TargetLibraryInfo * | TLI, | ||
| bool | LookThroughSExt = false |
||
| ) |
getMallocArraySize - Returns the array size of a malloc call.
If the argument passed to malloc is a multiple of the size of the malloced type, then return that multiple. For non-array mallocs, the multiple is constant 1. Otherwise, return NULL for mallocs whose array size cannot be determined.
Definition at line 399 of file MemoryBuiltins.cpp.
References assert(), computeArraySize(), and isMallocLikeFn().
Referenced by extractMallocCall(), and tryToOptimizeStoreOfMallocToGlobal().
| PointerType * llvm::getMallocType | ( | const CallInst * | CI, |
| const TargetLibraryInfo * | TLI | ||
| ) |
getMallocType - Returns the PointerType resulting from the malloc call.
The PointerType depends on the number of bitcast uses of the malloc call: 0: PointerType is the malloc calls' return type. 1: PointerType is the bitcast's result type. >1: Unique PointerType cannot be determined, return NULL.
The PointerType depends on the number of bitcast uses of the malloc call: 0: PointerType is the calls' return type. 1: PointerType is the bitcast's result type. >1: Unique PointerType cannot be determined, return NULL.
Definition at line 356 of file MemoryBuiltins.cpp.
References assert(), E, llvm::Value::getType(), isMallocLikeFn(), llvm::Value::user_begin(), and llvm::Value::user_end().
Referenced by extractMallocCall(), and getMallocAllocatedType().
Definition at line 2134 of file ARMBaseInstrInfo.cpp.
References B, and llvm_unreachable.
Referenced by isValidCoprocessorNumber(), and llvm::ARMBaseInstrInfo::PredicateInstruction().
Definition at line 270 of file NVPTXUtilities.cpp.
References findOneNVVMAnnotation().
Referenced by llvm::NVPTXAsmPrinter::getFunctionFrameSymbol().
Definition at line 242 of file NVPTXUtilities.cpp.
References findOneNVVMAnnotation().
Referenced by llvm::NVPTXAsmPrinter::getFunctionFrameSymbol().
Definition at line 246 of file NVPTXUtilities.cpp.
References findOneNVVMAnnotation().
Referenced by llvm::NVPTXAsmPrinter::getFunctionFrameSymbol().
Definition at line 250 of file NVPTXUtilities.cpp.
References findOneNVVMAnnotation().
Referenced by llvm::NVPTXAsmPrinter::getFunctionFrameSymbol().
| void llvm::getMemOPSizeRangeFromOption | ( | StringRef | Str, |
| int64_t & | RangeStart, | ||
| int64_t & | RangeLast | ||
| ) |
Definition at line 1111 of file InstrProf.cpp.
References assert(), llvm::StringRef::empty(), llvm::StringRef::find(), llvm::StringRef::getAsInteger(), llvm::StringRef::size(), and llvm::StringRef::substr().
Referenced by llvm::InstrProfiling::run().
Definition at line 266 of file NVPTXUtilities.cpp.
References findOneNVVMAnnotation().
Referenced by llvm::NVPTXAsmPrinter::getFunctionFrameSymbol().
| CmpInst::Predicate llvm::getMinMaxPred | ( | SelectPatternFlavor | SPF, |
| bool | Ordered = false |
||
| ) |
Return the canonical comparison predicate for the specified minimum/maximum flavor.
Definition at line 5286 of file ValueTracking.cpp.
References llvm::CmpInst::FCMP_OGT, llvm::CmpInst::FCMP_OLT, llvm::CmpInst::FCMP_UGT, llvm::CmpInst::FCMP_ULT, llvm::CmpInst::ICMP_SGT, llvm::CmpInst::ICMP_SLT, llvm::CmpInst::ICMP_UGT, llvm::CmpInst::ICMP_ULT, llvm_unreachable, SPF_FMAXNUM, SPF_FMINNUM, SPF_SMAX, SPF_SMIN, SPF_UMAX, and SPF_UMIN.
Referenced by canonicalizeSaturatedAdd(), createMinMax(), getInverseMinMaxPred(), and matchSelectPattern().
| Expected< std::unique_ptr< ModuleSummaryIndex > > llvm::getModuleSummaryIndex | ( | MemoryBufferRef | Buffer | ) |
Parse the specified bitcode buffer, returning the module summary index.
Definition at line 6715 of file BitcodeReader.cpp.
References getSingleModule(), and llvm::Expected< T >::takeError().
Referenced by getModuleSummaryIndexForFile().
| Expected< std::unique_ptr< ModuleSummaryIndex > > llvm::getModuleSummaryIndexForFile | ( | StringRef | Path, |
| bool | IgnoreEmptyThinLTOIndexFile = false |
||
| ) |
Parse the module summary index out of an IR file and return the module summary index object if found, or an empty summary if not.
If Path refers to an empty file and IgnoreEmptyThinLTOIndexFile is true, then this function will return nullptr.
Definition at line 6732 of file BitcodeReader.cpp.
References errorCodeToError(), llvm::ErrorOr< T >::getError(), llvm::MemoryBuffer::getFileOrSTDIN(), and getModuleSummaryIndex().
Referenced by doImportingForModule().
Get a rough equivalent of an MVT for a given LLT.
MVT can't distinguish pointers, so these will convert to a plain integer.
Definition at line 45 of file LowLevelType.cpp.
References llvm::LLT::getElementType(), llvm::MVT::getIntegerVT(), llvm::LLT::getNumElements(), llvm::LLT::getSizeInBits(), llvm::MVT::getVectorVT(), and llvm::LLT::isVector().
Referenced by findGISelOptimalMemOpLowering(), and getMemsetValue().
| int llvm::getNextAvailablePluginDiagnosticKind | ( | ) |
Get the next available kind ID for a plugin diagnostic.
Each time this function is called, it returns a different number. Therefore, a plugin that wants to "identify" its own classes with a dynamic identifier, just have to use this method to get a new ID and assign it to each of its classes. The returned ID will be greater than or equal to DK_FirstPluginKind. Thus, the plugin identifiers will not conflict with the DiagnosticKind values.
Definition at line 46 of file DiagnosticInfo.cpp.
References llvm::OptimizationRemarkAnalysis::AlwaysPrint, and DK_FirstPluginKind.
|
inline |
Definition at line 55 of file IntervalIterator.h.
Referenced by llvm::IntervalIterator< NodeTy, OrigContainer_t, GT, IGT >::operator++().
|
inline |
Definition at line 56 of file IntervalIterator.h.
References llvm::Interval::getHeaderNode().
Definition at line 519 of file ConvertUTF.cpp.
References first.
Referenced by llvm::sys::unicode::columnWidthUTF8(), and convertUTF8Sequence().
Definition at line 743 of file InstrProf.cpp.
Definition at line 738 of file InstrProf.cpp.
ValueProfRecordClosure Interface implementation for InstrProfRecord class.
These C wrappers are used as adaptors so that C++ code can be invoked as callbacks.
Definition at line 729 of file InstrProf.cpp.
Definition at line 733 of file InstrProf.cpp.
| std::string llvm::getNVPTXRegClassName | ( | TargetRegisterClass const * | RC | ) |
Definition at line 28 of file NVPTXRegisterInfo.cpp.
Referenced by llvm::NVPTXRegisterInfo::getName(), and getOpenCLAlignment().
| std::string llvm::getNVPTXRegClassStr | ( | TargetRegisterClass const * | RC | ) |
Definition at line 72 of file NVPTXRegisterInfo.cpp.
Referenced by llvm::NVPTXRegisterInfo::getName(), getOpenCLAlignment(), and llvm::NVPTXAsmPrinter::getVirtualRegisterName().
| bool llvm::getObjectSize | ( | const Value * | Ptr, |
| uint64_t & | Size, | ||
| const DataLayout & | DL, | ||
| const TargetLibraryInfo * | TLI, | ||
| ObjectSizeOpts | Opts = {} |
||
| ) |
Compute the size of the object pointed by Ptr.
Returns true and the object size in Size if successful, and false otherwise. In this context, by object we mean the region of memory starting at Ptr to the end of the underlying object pointed to by Ptr.
Returns true and the object size in Size if successful, and false otherwise. If RoundToAlign is true, then Size is rounded up to the alignment of allocas, byval arguments, and global variables.
Definition at line 491 of file MemoryBuiltins.cpp.
References Data, llvm::Value::getContext(), getSizeWithOverflow(), and llvm::APInt::getZExtValue().
Referenced by computePointerICmp(), getObjectSize(), getPointerSize(), isObjectSize(), isObjectSmallerThan(), and lowerObjectSizeCall().
|
static |
Definition at line 170 of file RuntimeDyld.cpp.
References llvm::object::SectionRef::getAddress(), llvm::object::SymbolRef::getAddress(), llvm::Error::success(), and llvm::Expected< T >::takeError().
Referenced by AddNodeIDCustom(), CheckBundleSubtargets(), llvm::DIE::computeOffsetsAndAbbrevs(), llvm::DWARFDie::dump(), llvm::MCWasmStreamer::EmitIdent(), llvm::MCWinCOFFStreamer::EmitInstToData(), expandDisp(), llvm::DWARFDie::find(), llvm::sampleprof::FunctionSamples::findFunctionSamples(), llvm::DIE::getDebugSectionOffset(), llvm::sampleprof::FunctionSamples::getNameInModule(), LowerEXTRACT_SUBVECTOR(), llvm::LanaiTargetLowering::LowerGlobalAddress(), llvm::MSP430TargetLowering::LowerGlobalAddress(), mayTailCallThisCC(), and llvm::HexagonDAGToDAGISel::SelectAnyImmediate().
| llvm::MachineInstr * llvm::getOpcodeDef | ( | unsigned | Opcode, |
| Register | Reg, | ||
| const MachineRegisterInfo & | MRI | ||
| ) |
See if Reg is defined by an single def instruction that is Opcode.
Also try to do trivial folding if it's a COPY with same types. Returns null otherwise.
Definition at line 319 of file Utils.cpp.
References DefMI, getDefIgnoringCopies(), and llvm::MachineInstr::getOpcode().
Referenced by llvm::CombinerHelper::dominates(), getImmedFromMO(), getInsertVecEltOpInfo(), getMemsetValue(), getVectorSHLImm(), llvm::LegalizerHelper::narrowScalarShift(), and llvm::LegalizationArtifactCombiner::tryFoldImplicitDef().
|
static |
Definition at line 110 of file DWARFExpression.cpp.
References getDescriptions().
Referenced by llvm::DWARFExpression::Operation::extract().
| llvm::Optional< int > llvm::getOptionalIntLoopAttribute | ( | Loop * | TheLoop, |
| StringRef | Name | ||
| ) |
Find named metadata for a loop with an integer value.
Definition at line 288 of file LoopUtils.cpp.
References findStringMetadataForLoop(), llvm::ConstantInt::getSExtValue(), and None.
Referenced by computePeelCount(), hasUnrollAndJamTransformation(), hasUnrollTransformation(), hasVectorizeTransformation(), peelLoop(), and warnAboutLeftoverTransformations().
Definition at line 76 of file Instrumentation.cpp.
References assert(), C, llvm::GlobalObject::getComdat(), llvm::Value::getName(), llvm::GlobalValue::getParent(), llvm::GlobalValue::hasLocalLinkage(), llvm::Value::hasName(), llvm::Triple::isOSBinFormatCOFF(), llvm::Triple::isOSBinFormatELF(), llvm::GlobalValue::isWeakForLinker(), Name, llvm::Comdat::NoDuplicates, llvm::GlobalObject::setComdat(), and llvm::Comdat::setSelectionKind().
Referenced by IsInterestingCmp().
Definition at line 167 of file ModuleUtils.cpp.
References assert(), llvm::StringRef::empty(), F(), llvm::Module::getContext(), llvm::Module::getFunction(), and llvm::Type::getVoidTy().
| std::pair< Function *, FunctionCallee > llvm::getOrCreateSanitizerCtorAndInitFunctions | ( | Module & | M, |
| StringRef | CtorName, | ||
| StringRef | InitName, | ||
| ArrayRef< Type *> | InitArgTypes, | ||
| ArrayRef< Value *> | InitArgs, | ||
| function_ref< void(Function *, FunctionCallee)> | FunctionsCreatedCallback, | ||
| StringRef | VersionCheckName = StringRef() |
||
| ) |
Creates sanitizer constructor function lazily.
If a constructor and init function already exist, this function returns it. Otherwise it calls createSanitizerCtorAndInitFunctions. The FunctionsCreatedCallback is invoked in that case, passing the new Ctor and Init function.
Definition at line 145 of file ModuleUtils.cpp.
References assert(), createSanitizerCtorAndInitFunctions(), declareSanitizerInitFunction(), llvm::StringRef::empty(), llvm::Module::getContext(), llvm::Module::getFunction(), and llvm::Type::getVoidTy().
Referenced by llvm::HWAddressSanitizerPass::run().
| Value * llvm::getOrderedReduction | ( | IRBuilder<> & | Builder, |
| Value * | Acc, | ||
| Value * | Src, | ||
| unsigned | Op, | ||
| RecurrenceDescriptor::MinMaxRecurrenceKind | MinMaxKind = RecurrenceDescriptor::MRK_Invalid, |
||
| ArrayRef< Value *> | RedOps = None |
||
| ) |
Generates an ordered vector reduction using extracts to reduce the value.
Definition at line 801 of file LoopUtils.cpp.
References assert(), llvm::IRBuilder< T, Inserter >::CreateBinOp(), llvm::IRBuilder< T, Inserter >::CreateExtractElement(), createMinMaxOp(), llvm::ArrayRef< T >::empty(), llvm::MipsISD::Ext, llvm::IRBuilderBase::getInt32(), llvm::Value::getType(), llvm::Type::getVectorNumElements(), llvm::RecurrenceDescriptor::MRK_Invalid, and propagateIRFlags().
Returns the English suffix for an ordinal integer (-st, -nd, -rd, -th).
Definition at line 266 of file StringExtras.h.
References Name, printEscapedString(), printHTMLEscaped(), and printLowerCase().
Referenced by llvm::yaml::convertYAML().
| unsigned llvm::getOrEnforceKnownAlignment | ( | Value * | V, |
| unsigned | PrefAlign, | ||
| const DataLayout & | DL, | ||
| const Instruction * | CxtI = nullptr, |
||
| AssumptionCache * | AC = nullptr, |
||
| const DominatorTree * | DT = nullptr |
||
| ) |
Try to ensure that the alignment of V is at least PrefAlign bytes.
If the owning object can be modified and has an alignment less than PrefAlign, it will be increased and PrefAlign returned. If the alignment cannot be increased, the known alignment of the value is returned.
It is not always possible to modify the alignment of the underlying object, so if alignment is important, a more reliable approach is to simply align all global variables and allocation instructions to their preferred alignment from the beginning.
Definition at line 1181 of file Local.cpp.
References llvm::AMDGPU::HSAMD::Kernel::Arg::Key::Align, assert(), computeKnownBits(), enforceKnownAlignment(), llvm::Value::getType(), llvm::Type::isPointerTy(), and llvm::Value::MaximumAlignment.
Referenced by getChainID(), getKnownAlignment(), HandleByValArgument(), hasUndefContents(), llvm::SimplifyCFGOptions::setAssumptionCache(), llvm::InstCombiner::visitAllocaInst(), llvm::InstCombiner::visitLoadInst(), and llvm::InstCombiner::visitStoreInst().
| Expected< std::unique_ptr< Module > > llvm::getOwningLazyBitcodeModule | ( | std::unique_ptr< MemoryBuffer > && | Buffer, |
| LLVMContext & | Context, | ||
| bool | ShouldLazyLoadMetadata = false, |
||
| bool | IsImporting = false |
||
| ) |
Like getLazyBitcodeModule, except that the module takes ownership of the memory buffer if successful.
If successful, this moves Buffer. On error, this does not move Buffer. If IsImporting is true, this module is being parsed for ThinLTO importing into another module.
Definition at line 6654 of file BitcodeReader.cpp.
References getLazyBitcodeModule().
Referenced by LLVMGetBitcodeModuleInContext(), and LLVMGetBitcodeModuleInContext2().
Request the timer for this legacy-pass-manager's pass instance.
Definition at line 150 of file PassTimingInfo.cpp.
References llvm::cl::init().
Referenced by llvm::FPPassManager::doFinalization(), llvm::PMDataManager::freePass(), llvm::RGPassManager::runOnFunction(), llvm::LPPassManager::runOnFunction(), llvm::FPPassManager::runOnFunction(), and llvm::PMDataManager::verifyPreservedAnalysis().
| std::string llvm::getPGOFuncName | ( | const Function & | F, |
| bool | InLTO = false, |
||
| uint64_t | Version = INSTR_PROF_INDEX_VERSION |
||
| ) |
Return the modified name for function F suitable to be used the key for profile lookup.
Variable InLTO indicates if this is called in LTO optimization passes.
Definition at line 253 of file InstrProf.cpp.
References llvm::GlobalValue::ExternalLinkage, llvm::GlobalValue::getLinkage(), llvm::Value::getName(), llvm::GlobalValue::getParent(), getPGOFuncNameMetadata(), llvm::Module::getSourceFileName(), StaticFuncFullModulePrefix, StaticFuncStripDirNamePrefix, llvm::StringRef::str(), stripDirPrefix(), and llvm::IndexedInstrProf::Version.
Referenced by llvm::InstrProfSymtab::create(), getInstrProfNameSeparator(), and INITIALIZE_PASS().
| std::string llvm::getPGOFuncName | ( | StringRef | RawFuncName, |
| GlobalValue::LinkageTypes | Linkage, | ||
| StringRef | FileName, | ||
| uint64_t Version | LLVM_ATTRIBUTE_UNUSED = INSTR_PROF_INDEX_VERSION |
||
| ) |
Return the modified name for a function suitable to be used the key for profile lookup.
The function's original name is RawFuncName and has linkage of type Linkage. The function is defined in module FileName.
Definition at line 215 of file InstrProf.cpp.
References llvm::GlobalValue::getGlobalIdentifier().
Return the PGOFuncName meta data associated with a function.
Definition at line 1028 of file InstrProf.cpp.
References llvm::GlobalObject::getMetadata(), and getPGOFuncNameMetadataName().
Referenced by createPGOFuncNameMetadata(), getPGOFuncName(), and getPGOFuncNameMetadataName().
|
inline |
Definition at line 259 of file InstrProf.h.
References createPGOFuncNameMetadata(), error_category, getPGOFuncNameMetadata(), instrprof_category(), and needsComdatForCounter().
Referenced by createPGOFuncNameMetadata(), and getPGOFuncNameMetadata().
| StringRef llvm::getPGOFuncNameVarInitializer | ( | GlobalVariable * | NameVar | ) |
Return the initializer in string of the PGO name var NameVar.
Definition at line 419 of file InstrProf.cpp.
References llvm::GlobalVariable::getInitializer().
Referenced by collectPGOFuncNameStrings(), and getInstrProfNameSeparator().
| std::string llvm::getPGOFuncNameVarName | ( | StringRef | FuncName, |
| GlobalValue::LinkageTypes | Linkage | ||
| ) |
Return the name of the global variable used to store a function name in PGO instrumentation.
FuncName is the name of the function returned by the getPGOFuncName call.
Definition at line 287 of file InstrProf.cpp.
References getInstrProfNameVarPrefix(), llvm::GlobalValue::isLocalLinkage(), and llvm::tgtok::VarName.
Referenced by createPGOFuncNameVar(), and getInstrProfNameSeparator().
Definition at line 131 of file TypeMetadataUtils.cpp.
References C, llvm::Module::getDataLayout(), llvm::StructLayout::getElementContainingOffset(), llvm::StructLayout::getElementOffset(), llvm::SequentialType::getElementType(), llvm::User::getNumOperands(), llvm::User::getOperand(), llvm::StructLayout::getSizeInBytes(), llvm::DataLayout::getStructLayout(), llvm::Value::getType(), llvm::DataLayout::getTypeAllocSize(), I, and llvm::Type::isPointerTy().
Referenced by isEmptyFunction(), and updateIndexWPDForExports().
|
inline |
Analyze the specified pointer to see if it can be expressed as a base pointer plus a constant offset.
Return the base and offset to the caller.
This is a wrapper around Value::stripAndAccumulateConstantOffsets that creates and later unpacks the required APInt.
Definition at line 250 of file ValueTracking.h.
References llvm::DataLayout::getIndexTypeSizeInBits(), llvm::APInt::getSExtValue(), llvm::Value::getType(), and llvm::Value::stripAndAccumulateConstantOffsets().
Referenced by llvm::VNCoercion::analyzeLoadFromClobberingLoad(), llvm::VNCoercion::analyzeLoadFromClobberingWrite(), FixedPointIntrinsicToOpcode(), llvm::IRPosition::getAttrs(), getBasePointerOfAccessPointerOperand(), llvm::MemoryDependenceResults::getLoadLoadClobberFullWidthSize(), GetPointerBaseWithConstantOffset(), INITIALIZE_PASS(), isOverwrite(), and removePartiallyOverlappedStores().
|
inline |
Definition at line 261 of file ValueTracking.h.
References GEP, GetPointerBaseWithConstantOffset(), and isGEPBasedOnPointerToString().
A helper function that returns the pointer operand of a load, store or GEP instruction.
Returns nullptr if not load, store, or GEP.
Definition at line 5274 of file Instructions.h.
References getLoadStorePointerOperand().
Referenced by llvm::LoopVersioning::annotateInstWithNoAlias(), llvm::IndexedReference::computeRefCost(), createCallInst(), llvm::IRPosition::getAttrs(), getGuaranteedNonFullPoisonOp(), llvm::AtomicCmpXchgInst::getPointerAddressSpace(), llvm::AtomicRMWInst::getPointerAddressSpace(), llvm::PtrToIntInst::getPointerAddressSpace(), getPointerOperand(), llvm::LoadInst::getPointerOperandType(), llvm::StoreInst::getPointerOperandType(), llvm::GEPOperator::getPointerOperandType(), llvm::PtrToIntOperator::getPointerOperandType(), llvm::GetElementPtrInst::getPointerOperandType(), llvm::AddrSpaceCastInst::getSrcAddressSpace(), llvm::Attributor::identifyDefaultAbstractAttributes(), isAtomic(), isSafeToExecuteUnconditionally(), isUseTriviallyOptimizableToLiveOnEntry(), processMemAccess(), shouldInstrumentReadWriteFromAddress(), and tryPromoteAllocaToVector().
Definition at line 5281 of file Instructions.h.
References getPointerOperand().
| Constant * llvm::getPredForICmpCode | ( | unsigned | Code, |
| bool | Sign, | ||
| Type * | OpTy, | ||
| CmpInst::Predicate & | Pred | ||
| ) |
This is the complement of getICmpCode.
It turns a predicate code into either a constant true or false or the predicate for a new ICmp. The sign is passed in to determine which kind of predicate to use in the new ICmp instruction. Non-NULL return value will be a true or false constant. NULL return means a new ICmp is needed. The predicate is output in Pred.
Definition at line 42 of file CmpInstAnalysis.cpp.
References llvm::ConstantInt::get(), llvm::CmpInst::ICMP_EQ, llvm::CmpInst::ICMP_NE, llvm::CmpInst::ICMP_SGE, llvm::CmpInst::ICMP_SGT, llvm::CmpInst::ICMP_SLE, llvm::CmpInst::ICMP_SLT, llvm::CmpInst::ICMP_UGE, llvm::CmpInst::ICMP_UGT, llvm::CmpInst::ICMP_ULE, llvm::CmpInst::ICMP_ULT, llvm_unreachable, and llvm::CmpInst::makeCmpResultType().
Referenced by getNewICmpValue().
| int64_t llvm::getPtrStride | ( | PredicatedScalarEvolution & | PSE, |
| Value * | Ptr, | ||
| const Loop * | Lp, | ||
| const ValueToValueMap & | StridesMap = ValueToValueMap(), |
||
| bool | Assume = false, |
||
| bool | ShouldCheckWrap = true |
||
| ) |
If the pointer has a constant stride return it in units of its element size.
Check whether the access through Ptr has a constant stride.
Otherwise return zero.
Ensure that it does not wrap in the address space, assuming the predicate associated with PSE is true.
If necessary this method will version the stride of the pointer according to PtrToStride and therefore add further predicates to PSE. The Assume parameter indicates if we are allowed to make additional run-time assumptions.
Definition at line 991 of file LoopAccessAnalysis.cpp.
References assert(), C, dbgs(), dyn_cast(), llvm::GlobalValue::getAddressSpace(), llvm::SCEVConstant::getAPInt(), llvm::PredicatedScalarEvolution::getAsAddRec(), llvm::APInt::getBitWidth(), llvm::Module::getDataLayout(), llvm::LoopBase< BlockT, LoopT >::getHeader(), llvm::SCEVAddRecExpr::getLoop(), llvm::BasicBlock::getModule(), llvm::BasicBlock::getParent(), llvm::PredicatedScalarEvolution::getSE(), llvm::APInt::getSExtValue(), llvm::SCEVAddRecExpr::getStepRecurrence(), llvm::Value::getType(), llvm::PredicatedScalarEvolution::hasNoOverflow(), llvm::SCEVWrapPredicate::IncrementNUSW, isInBoundsGep(), isNoWrapAddRec(), llvm::Type::isPointerTy(), LLVM_DEBUG, NullPointerIsDefined(), replaceSymbolicStrideSCEV(), llvm::PredicatedScalarEvolution::setNoOverflow(), and Size.
Referenced by llvm::InterleavedAccessInfo::analyzeInterleaving(), areStridedAccessesIndependent(), canTailPredicateLoop(), llvm::LoopAccessInfo::getPSE(), llvm::LoopVectorizationLegality::isConsecutivePtr(), isNoWrap(), possiblyDemandedEltsInMask(), and llvm::MemoryDepChecker::Dependence::print().
| std::error_code llvm::getRandomBytes | ( | void * | Buffer, |
| size_t | Size | ||
| ) |
Definition at line 58 of file RandomNumberGenerator.cpp.
References llvm::support::endian::read(), and llvm::MipsISD::Ret.
|
static |
Definition at line 119 of file DWARFExpression.cpp.
Referenced by llvm::DWARFExpression::Operation::extract().
| GCNRegPressure llvm::getRegPressure | ( | const MachineRegisterInfo & | MRI, |
| Range && | LiveRegs | ||
| ) |
Definition at line 253 of file GCNRegPressure.h.
References llvm::LaneBitmask::getNone(), llvm::GCNRegPressure::inc(), isEqual(), printLivesAt(), and llvm::NVPTX::PTXCvtMode::RM.
Referenced by llvm::GCNUpwardRPTracker::isValid(), printLivenessInfo(), llvm::GCNUpwardRPTracker::recede(), llvm::GCNRPTracker::reset(), and llvm::GCNScheduleDAGMILive::schedule().
| TargetInstrInfo::RegSubRegPair llvm::getRegSequenceSubReg | ( | MachineInstr & | MI, |
| unsigned | SubReg | ||
| ) |
Return the SubReg component from REG_SEQUENCE.
Definition at line 6415 of file SIInstrInfo.cpp.
References assert(), E, llvm::MachineOperand::getImm(), llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOperand(), getRegOrUndef(), I, llvm::MachineInstr::isRegSequence(), and SubReg.
Referenced by followSubRegDef(), and getRegSubRegPair().
|
inline |
Get all register state flags from machine operand RegOp.
Definition at line 496 of file MachineInstrBuilder.h.
References assert(), getDeadRegState(), getDebugRegState(), getDefRegState(), getImplRegState(), getInternalReadRegState(), getKillRegState(), llvm::MachineOperand::getReg(), getRenamableRegState(), getUndefRegState(), llvm::MachineOperand::isDead(), llvm::MachineOperand::isDebug(), llvm::MachineOperand::isDef(), llvm::MachineOperand::isImplicit(), llvm::MachineOperand::isInternalRead(), llvm::MachineOperand::isKill(), llvm::Register::isPhysicalRegister(), llvm::MachineOperand::isReg(), llvm::MachineOperand::isRenamable(), and llvm::MachineOperand::isUndef().
Referenced by llvm::HexagonInstrInfo::expandPostRAPseudo(), llvm::X86InstrInfo::expandPostRAPseudo(), INITIALIZE_PASS(), llvm::UnreachableBlockElimPass::run(), and llvm::MachinePipeliner::runOnMachineFunction().
|
inline |
Create RegSubRegPair from a register MachineOperand.
Definition at line 1066 of file SIInstrInfo.h.
References assert(), DefMI, execMayBeModifiedBeforeAnyUse(), execMayBeModifiedBeforeUse(), llvm::AMDGPU::getAddr64Inst(), llvm::AMDGPU::getAtomicNoRetOp(), llvm::AMDGPU::getAtomicRetOp(), llvm::AMDGPU::getBasicFromSDWAOp(), llvm::AMDGPU::getCommuteOrig(), llvm::AMDGPU::getCommuteRev(), llvm::AMDGPU::getDPPOp32(), llvm::AMDGPU::getGlobalSaddrOp(), llvm::AMDGPU::getIfAddr64Inst(), llvm::AMDGPU::getMUBUFNoLdsInst(), llvm::MachineOperand::getReg(), getRegSequenceSubReg(), llvm::AMDGPU::getSDWAOp(), llvm::AMDGPU::getSOPKOp(), llvm::MachineOperand::getSubReg(), llvm::AMDGPU::getVCMPXNoSDstOp(), llvm::AMDGPU::getVOPe32(), llvm::AMDGPU::getVOPe64(), getVRegSubRegDef(), llvm::MachineOperand::isReg(), LLVM_READONLY, MI, MRI, P, SubReg, and UseMI.
Referenced by createGCNDPPCombinePass(), getRegOrUndef(), getVRegSubRegDef(), isIdentityValue(), and tryToFoldACImm().
Definition at line 491 of file MachineInstrBuilder.h.
References llvm::RegState::Renamable.
Referenced by getRegState().
Definition at line 254 of file NVPTXUtilities.cpp.
References findOneNVVMAnnotation().
Referenced by llvm::NVPTXAsmPrinter::getFunctionFrameSymbol().
Definition at line 258 of file NVPTXUtilities.cpp.
References findOneNVVMAnnotation().
Referenced by llvm::NVPTXAsmPrinter::getFunctionFrameSymbol().
Definition at line 262 of file NVPTXUtilities.cpp.
References findOneNVVMAnnotation().
Referenced by llvm::NVPTXAsmPrinter::getFunctionFrameSymbol().
| void llvm::GetReturnInfo | ( | CallingConv::ID | CC, |
| Type * | ReturnType, | ||
| AttributeList | attr, | ||
| SmallVectorImpl< ISD::OutputArg > & | Outs, | ||
| const TargetLowering & | TLI, | ||
| const DataLayout & | DL | ||
| ) |
Given an LLVM IR type and return type attributes, compute the return value EVTs and flags, and optionally also the offsets, if the return value is being lowered to memory.
Get the EVTs and ArgFlags collections that represent the legalized return type of the given function.
This does not require a DAG or a return value, and is suitable for use before any DAGs for the function are constructed. TODO: Move this out of TargetLowering.cpp.
Definition at line 1466 of file TargetLoweringBase.cpp.
References llvm::ISD::ANY_EXTEND, llvm::EVT::bitsLT(), ComputeValueVTs(), llvm::Type::getContext(), llvm::TargetLoweringBase::getNumRegistersForCallingConv(), llvm::TargetLoweringBase::getRegisterType(), llvm::TargetLoweringBase::getRegisterTypeForCallingConv(), llvm::AttributeList::hasAttribute(), llvm::MVT::i32, llvm::EVT::isInteger(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::AttributeList::ReturnIndex, llvm::ISD::ArgFlagsTy::setInReg(), llvm::ISD::ArgFlagsTy::setSExt(), llvm::ISD::ArgFlagsTy::setZExt(), llvm::ISD::SIGN_EXTEND, llvm::SmallVectorBase::size(), and llvm::ISD::ZERO_EXTEND.
Referenced by llvm::TargetLowering::expandIndirectJTBranch(), getComparePred(), llvm::FastISel::lowerCallTo(), llvm::TargetLowering::LowerCallTo(), and llvm::FunctionLoweringInfo::set().
|
inlinestatic |
Some binary operators require special handling to avoid poison and undefined behavior.
If a constant vector has undef elements, replace those undefs with identity constants if possible because those are always safe to execute. If no identity constant exists, replace undef with some other safe constant.
Definition at line 245 of file InstCombineInternal.h.
References assert(), C, llvm::ConstantInt::get(), llvm::ConstantFP::get(), llvm::ConstantVector::get(), llvm::Constant::getAggregateElement(), llvm::ConstantExpr::getBinOpIdentity(), llvm::Constant::getNullValue(), llvm::Value::getType(), llvm::Type::getVectorElementType(), llvm::Type::getVectorNumElements(), llvm::Type::isVectorTy(), and llvm_unreachable.
Referenced by foldSelectShuffle(), foldSelectShuffleWith1Binop(), and shouldMergeGEPs().
Definition at line 237 of file NVPTXUtilities.cpp.
References assert(), llvm::Value::getName(), and llvm::Value::hasName().
Referenced by llvm::NVPTXAsmPrinter::doFinalization().
| void llvm::getSelectionDAGFallbackAnalysisUsage | ( | AnalysisUsage & | AU | ) |
Modify analysis usage so it preserves passes required for the SelectionDAG fallback.
Definition at line 431 of file Utils.cpp.
References llvm::AnalysisUsage::addPreserved().
Referenced by llvm::InstructionSelect::getAnalysisUsage(), llvm::Legalizer::getAnalysisUsage(), llvm::Localizer::getAnalysisUsage(), llvm::RegBankSelect::getAnalysisUsage(), and llvm::IRTranslator::getAnalysisUsage().
| SmallVector< uint8_t, 64 > llvm::GetShadowBytes | ( | const SmallVectorImpl< ASanStackVariableDescription > & | Vars, |
| const ASanStackFrameLayout & | Layout | ||
| ) |
Definition at line 116 of file ASanStackFrameLayout.cpp.
References assert(), llvm::SmallVectorImpl< T >::clear(), llvm::ASanStackFrameLayout::FrameSize, llvm::ASanStackFrameLayout::Granularity, kAsanStackLeftRedzoneMagic, kAsanStackMidRedzoneMagic, kAsanStackRightRedzoneMagic, and llvm::SmallVectorBase::size().
Referenced by GetShadowBytesAfterScope().
| SmallVector< uint8_t, 64 > llvm::GetShadowBytesAfterScope | ( | const SmallVectorImpl< ASanStackVariableDescription > & | Vars, |
| const ASanStackFrameLayout & | Layout | ||
| ) |
Definition at line 134 of file ASanStackFrameLayout.cpp.
References assert(), llvm::SmallVectorTemplateCommon< T >::begin(), GetShadowBytes(), llvm::ASanStackFrameLayout::Granularity, and kAsanStackUseAfterScopeMagic.
| Value * llvm::getShuffleReduction | ( | IRBuilder<> & | Builder, |
| Value * | Src, | ||
| unsigned | Op, | ||
| RecurrenceDescriptor::MinMaxRecurrenceKind | MinMaxKind = RecurrenceDescriptor::MRK_Invalid, |
||
| ArrayRef< Value *> | RedOps = None |
||
| ) |
Generates a vector reduction using shufflevectors to reduce the value.
Fast-math-flags are propagated using the IRBuilder's setting.
Definition at line 832 of file LoopUtils.cpp.
References assert(), llvm::IRBuilder< T, Inserter >::CreateBinOp(), llvm::IRBuilder< T, Inserter >::CreateExtractElement(), createMinMaxOp(), llvm::IRBuilder< T, Inserter >::CreateShuffleVector(), llvm::ArrayRef< T >::empty(), llvm::SmallVectorTemplateCommon< T >::end(), llvm::ConstantVector::get(), llvm::UndefValue::get(), llvm::IRBuilderBase::getInt32(), llvm::IRBuilderBase::getInt32Ty(), llvm::Value::getType(), llvm::Type::getVectorNumElements(), isPowerOf2_32(), llvm::RecurrenceDescriptor::MRK_Invalid, and propagateIRFlags().
Referenced by createSimpleTargetReduction().
| unsigned llvm::getSizeInBits | ( | Register | Reg, |
| const MachineRegisterInfo & | MRI, | ||
| const TargetRegisterInfo & | TRI | ||
| ) | const |
Get the size in bits of Reg.
Utility method to get the size of any registers. Unlike MachineRegisterInfo::getSize, the register does not need to be a virtual register.
Reg != 0 (NoRegister). Referenced by llvm::AMDGPURegisterBankInfo::addMappingFromTable(), llvm::RegisterBankInfo::applyDefaultMapping(), applyMapping(), llvm::MachineIRBuilder::buildInsert(), llvm::MachineIRBuilder::buildInstr(), canTurnIntoCOPY(), llvm::GISelKnownBits::computeKnownBitsImpl(), EnsureStackAlignment(), llvm::InstructionSelector::executeMatchTable(), llvm::AMDGPURegisterBankInfo::getAGPROpMapping(), llvm::DIVariable::getAlignInBytes(), getConstantVRegValWithLookThrough(), llvm::AMDGPURegisterBankInfo::getDefaultMappingAllVGPR(), llvm::AMDGPURegisterBankInfo::getDefaultMappingSOP(), llvm::AMDGPURegisterBankInfo::getDefaultMappingVOP(), llvm::AMDGPURegisterBankInfo::getImageMapping(), getImmedFromMO(), getInsertVecEltOpInfo(), llvm::X86RegisterBankInfo::getInstrAlternativeMappings(), llvm::AArch64RegisterBankInfo::getInstrAlternativeMappings(), llvm::AMDGPURegisterBankInfo::getInstrAlternativeMappings(), llvm::ARMRegisterBankInfo::getInstrMapping(), llvm::MipsRegisterBankInfo::getInstrMapping(), llvm::AArch64RegisterBankInfo::getInstrMapping(), llvm::AMDGPURegisterBankInfo::getInstrMapping(), llvm::AMDGPURegisterBankInfo::getInstrMappingForLoad(), llvm::RegisterBankInfo::getInstrMappingImpl(), getMemsetValue(), llvm::AMDGPURegisterBankInfo::getSGPROpMapping(), getShiftTypeForInst(), llvm::DataLayout::getTypeSizeInBits(), getVectorSHLImm(), llvm::AMDGPURegisterBankInfo::getVGPROpMapping(), llvm::ARMLegalizerInfo::legalizeCustom(), llvm::LegalizerHelper::libcall(), LLVMDITypeGetSizeInBits(), llvm::HexagonTargetLowering::LowerBITCAST(), llvm::LegalizerHelper::narrowScalar(), llvm::LegalizerHelper::narrowScalarExtract(), llvm::LegalizerHelper::narrowScalarInsert(), selectFCMPOpc(), and selectI64Imm().
| unsigned llvm::getSLEB128Size | ( | int64_t | Value | ) |
Utility function to get the size of the SLEB128-encoded value.
Definition at line 29 of file LEB128.cpp.
References Size.
Referenced by llvm::EHStreamer::computeActionsTable(), decodeSLEB128(), EmitDebugSectionImpl(), and llvm::DIEInteger::SizeOf().
|
inline |
Definition at line 61 of file IntervalIterator.h.
Referenced by llvm::IntervalIterator< NodeTy, OrigContainer_t, GT, IGT >::operator++().
|
inline |
Definition at line 64 of file IntervalIterator.h.
References llvm::IntervalPartition::getBlockInterval().
| const llvm::Value * llvm::getSplatValue | ( | const Value * | V | ) |
Get splat value if the input is a splat vector or return nullptr.
The value may be extracted from a splat constants vector or from a sequence of instructions that broadcast a single value into a vector.
This function is not fully general. It checks only 2 cases: the input value is (1) a splat constant vector or (2) a sequence of instructions that broadcasts a scalar at element 0.
Definition at line 314 of file VectorUtils.cpp.
References C, llvm::Value::getType(), llvm::PatternMatch::m_InsertElement(), llvm::PatternMatch::m_ShuffleVector(), llvm::PatternMatch::m_Value(), llvm::PatternMatch::m_ZeroInt(), and llvm::PatternMatch::match().
Referenced by llvm::BuildVectorSDNode::getConstantFPSplatNode(), llvm::BuildVectorSDNode::getConstantFPSplatPow2ToLog2Int(), llvm::BuildVectorSDNode::getConstantSplatNode(), llvm::TargetTransformInfoImplCRTPBase< AMDGPUTTIImpl >::getGEPCost(), llvm::TargetTransformInfo::getOperandInfo(), llvm::BuildVectorSDNode::getSplatValue(), getUniformBase(), llvm::X86TTIImpl::getUserCost(), llvm::SelectionDAG::isKnownNeverSNaN(), and reduceBuildVecToShuffleWithZero().
| std::unique_ptr< CSEConfigBase > llvm::getStandardCSEConfigForOpt | ( | CodeGenOpt::Level | Level | ) |
Definition at line 71 of file CSEInfo.cpp.
References llvm::CodeGenOpt::None.
Referenced by llvm::AArch64TargetMachine::createPassConfig(), llvm::X86TargetMachine::createPassConfig(), llvm::ARMBaseTargetMachine::createPassConfig(), llvm::MipsTargetMachine::createPassConfig(), and llvm::GCNTargetMachine::getTargetTransformInfo().
Get the statistics.
This can be used to look up the value of statistics without needing to parse JSON.
This function does not prevent statistics being updated by other threads during it's execution. It will return the value at the point that it is read. However, it will prevent new statistics from registering until it completes.
Definition at line 254 of file Statistic.cpp.
| Value * llvm::getStrideFromPointer | ( | Value * | Ptr, |
| ScalarEvolution * | SE, | ||
| Loop * | Lp | ||
| ) |
Get the stride of a pointer access in a loop.
Looks for symbolic strides "a[i*stride]". Returns the symbolic stride, or null otherwise.
Definition at line 186 of file VectorUtils.cpp.
References C, dyn_cast(), llvm::APInt::getBitWidth(), llvm::User::getOperand(), llvm::ScalarEvolution::getSCEV(), llvm::APInt::getSExtValue(), llvm::SCEVAddRecExpr::getStepRecurrence(), llvm::Value::getType(), getUniqueCastUse(), llvm::SCEVUnknown::getValue(), llvm::Loop::isLoopInvariant(), scConstant, and stripGetElementPtr().
Referenced by llvm::LoopAccessInfo::addRuntimeChecks().
If we can compute the length of the string pointed to by the specified pointer, return 'len+1'.
If we can't, return 0.
Definition at line 3815 of file ValueTracking.cpp.
References GetStringLengthH(), llvm::Value::getType(), and llvm::Type::isPointerTy().
Referenced by annotateAnyAllocSite(), annotateNonNullAndDereferenceable(), isReportingError(), llvm::LibCallSimplifier::LibCallSimplifier(), llvm::ConstantDataArraySlice::operator[](), and llvm::ObjectSizeOffsetVisitor::visitCallSite().
|
static |
Definition at line 25 of file Chrono.cpp.
References assert(), llvm::AArch64CC::LT, and llvm::sys::toTimeT().
Referenced by operator<<().
| unsigned llvm::GetSuccessorNumber | ( | const BasicBlock * | BB, |
| const BasicBlock * | Succ | ||
| ) |
Search for the specified successor of basic block BB and return its position in the terminator instruction's list of successors.
GetSuccessorNumber - Search for the specified successor of basic block BB and return its position in the terminator instruction's list of successors.
It is an error to call this with a block that is not a successor.
Definition at line 72 of file CFG.cpp.
References assert(), llvm::numbers::e, llvm::Instruction::getNumSuccessors(), llvm::Instruction::getSuccessor(), and llvm::BasicBlock::getTerminator().
Referenced by canRenameComdat(), DemoteRegToStack(), isOnlyReachableViaThisEdge(), SplitCriticalSideEffectEdges(), and SplitEdge().
Definition at line 232 of file NVPTXUtilities.cpp.
References assert(), llvm::Value::getName(), and llvm::Value::hasName().
Referenced by llvm::NVPTXAsmPrinter::doFinalization().
Needed by swapByteOrder().
Definition at line 37 of file DataExtractor.h.
References llvm::Uint24::Bytes.
Definition at line 227 of file NVPTXUtilities.cpp.
References assert(), llvm::Value::getName(), and llvm::Value::hasName().
Referenced by llvm::NVPTXAsmPrinter::doFinalization().
| Target & llvm::getTheAArch64_32Target | ( | ) |
Definition at line 21 of file AArch64TargetInfo.cpp.
Referenced by LLVMInitializeAArch64AsmParser(), LLVMInitializeAArch64AsmPrinter(), LLVMInitializeAArch64Disassembler(), LLVMInitializeAArch64Target(), LLVMInitializeAArch64TargetInfo(), and LLVMInitializeAArch64TargetMC().
| Target & llvm::getTheAArch64beTarget | ( | ) |
Definition at line 17 of file AArch64TargetInfo.cpp.
Referenced by LLVMInitializeAArch64AsmParser(), LLVMInitializeAArch64AsmPrinter(), LLVMInitializeAArch64Disassembler(), LLVMInitializeAArch64Target(), LLVMInitializeAArch64TargetInfo(), and LLVMInitializeAArch64TargetMC().
| Target & llvm::getTheAArch64leTarget | ( | ) |
Definition at line 13 of file AArch64TargetInfo.cpp.
Referenced by LLVMInitializeAArch64AsmParser(), LLVMInitializeAArch64AsmPrinter(), LLVMInitializeAArch64Disassembler(), LLVMInitializeAArch64Target(), LLVMInitializeAArch64TargetInfo(), and LLVMInitializeAArch64TargetMC().
| Target & llvm::getTheAMDGPUTarget | ( | ) |
The target which supports all AMD GPUs.
This will eventually be deprecated and there will be a R600 target and a GCN target.
Definition at line 20 of file AMDGPUTargetInfo.cpp.
Referenced by LLVMInitializeAMDGPUAsmParser(), LLVMInitializeAMDGPUAsmPrinter(), LLVMInitializeAMDGPUTarget(), LLVMInitializeAMDGPUTargetInfo(), and LLVMInitializeAMDGPUTargetMC().
| Target & llvm::getTheARCTarget | ( | ) |
Definition at line 14 of file ARCTargetInfo.cpp.
Referenced by LLVMInitializeARCAsmPrinter(), LLVMInitializeARCDisassembler(), LLVMInitializeARCTarget(), LLVMInitializeARCTargetInfo(), and LLVMInitializeARCTargetMC().
| Target & llvm::getTheARM64_32Target | ( | ) |
Definition at line 29 of file AArch64TargetInfo.cpp.
Referenced by LLVMInitializeAArch64AsmParser(), LLVMInitializeAArch64AsmPrinter(), LLVMInitializeAArch64Disassembler(), LLVMInitializeAArch64Target(), LLVMInitializeAArch64TargetInfo(), and LLVMInitializeAArch64TargetMC().
| Target & llvm::getTheARM64Target | ( | ) |
Definition at line 25 of file AArch64TargetInfo.cpp.
Referenced by LLVMInitializeAArch64AsmParser(), LLVMInitializeAArch64AsmPrinter(), LLVMInitializeAArch64Disassembler(), LLVMInitializeAArch64Target(), LLVMInitializeAArch64TargetInfo(), and LLVMInitializeAArch64TargetMC().
| Target & llvm::getTheARMBETarget | ( | ) |
Definition at line 17 of file ARMTargetInfo.cpp.
Referenced by LLVMInitializeARMAsmParser(), LLVMInitializeARMAsmPrinter(), LLVMInitializeARMDisassembler(), LLVMInitializeARMTarget(), LLVMInitializeARMTargetInfo(), and LLVMInitializeARMTargetMC().
| Target & llvm::getTheARMLETarget | ( | ) |
Definition at line 13 of file ARMTargetInfo.cpp.
Referenced by LLVMInitializeARMAsmParser(), LLVMInitializeARMAsmPrinter(), LLVMInitializeARMDisassembler(), LLVMInitializeARMTarget(), LLVMInitializeARMTargetInfo(), and LLVMInitializeARMTargetMC().
| Target & llvm::getTheAVRTarget | ( | ) |
Definition at line 12 of file AVRTargetInfo.cpp.
Referenced by LLVMInitializeAVRAsmParser(), LLVMInitializeAVRAsmPrinter(), LLVMInitializeAVRDisassembler(), LLVMInitializeAVRTarget(), LLVMInitializeAVRTargetInfo(), and LLVMInitializeAVRTargetMC().
| Target & llvm::getTheBPFbeTarget | ( | ) |
Definition at line 18 of file BPFTargetInfo.cpp.
Referenced by LLVMInitializeBPFAsmParser(), LLVMInitializeBPFAsmPrinter(), LLVMInitializeBPFDisassembler(), LLVMInitializeBPFTarget(), LLVMInitializeBPFTargetInfo(), and LLVMInitializeBPFTargetMC().
| Target & llvm::getTheBPFleTarget | ( | ) |
Definition at line 14 of file BPFTargetInfo.cpp.
Referenced by LLVMInitializeBPFAsmParser(), LLVMInitializeBPFAsmPrinter(), LLVMInitializeBPFDisassembler(), LLVMInitializeBPFTarget(), LLVMInitializeBPFTargetInfo(), and LLVMInitializeBPFTargetMC().
| Target & llvm::getTheBPFTarget | ( | ) |
Definition at line 22 of file BPFTargetInfo.cpp.
Referenced by LLVMInitializeBPFAsmParser(), LLVMInitializeBPFAsmPrinter(), LLVMInitializeBPFDisassembler(), LLVMInitializeBPFTarget(), LLVMInitializeBPFTargetInfo(), and LLVMInitializeBPFTargetMC().
| Target & llvm::getTheGCNTarget | ( | ) |
The target for GCN GPUs.
Definition at line 25 of file AMDGPUTargetInfo.cpp.
Referenced by LLVMInitializeAMDGPUAsmParser(), LLVMInitializeAMDGPUAsmPrinter(), LLVMInitializeAMDGPUDisassembler(), LLVMInitializeAMDGPUTarget(), LLVMInitializeAMDGPUTargetInfo(), and LLVMInitializeAMDGPUTargetMC().
| Target & llvm::getTheHexagonTarget | ( | ) |
Definition at line 13 of file HexagonTargetInfo.cpp.
Referenced by LLVMInitializeHexagonAsmParser(), LLVMInitializeHexagonAsmPrinter(), LLVMInitializeHexagonDisassembler(), LLVMInitializeHexagonTarget(), LLVMInitializeHexagonTargetInfo(), and LLVMInitializeHexagonTargetMC().
| Target & llvm::getTheLanaiTarget | ( | ) |
Definition at line 14 of file LanaiTargetInfo.cpp.
Referenced by LLVMInitializeLanaiAsmParser(), LLVMInitializeLanaiAsmPrinter(), LLVMInitializeLanaiDisassembler(), LLVMInitializeLanaiTarget(), LLVMInitializeLanaiTargetInfo(), and LLVMInitializeLanaiTargetMC().
| Target & llvm::getTheMips64elTarget | ( | ) |
Definition at line 25 of file MipsTargetInfo.cpp.
Referenced by LLVMInitializeMipsAsmParser(), LLVMInitializeMipsAsmPrinter(), LLVMInitializeMipsDisassembler(), LLVMInitializeMipsTarget(), LLVMInitializeMipsTargetInfo(), and LLVMInitializeMipsTargetMC().
| Target & llvm::getTheMips64Target | ( | ) |
Definition at line 21 of file MipsTargetInfo.cpp.
Referenced by LLVMInitializeMipsAsmParser(), LLVMInitializeMipsAsmPrinter(), LLVMInitializeMipsDisassembler(), LLVMInitializeMipsTarget(), LLVMInitializeMipsTargetInfo(), and LLVMInitializeMipsTargetMC().
| Target & llvm::getTheMipselTarget | ( | ) |
Definition at line 17 of file MipsTargetInfo.cpp.
Referenced by LLVMInitializeMipsAsmParser(), LLVMInitializeMipsAsmPrinter(), LLVMInitializeMipsDisassembler(), LLVMInitializeMipsTarget(), LLVMInitializeMipsTargetInfo(), and LLVMInitializeMipsTargetMC().
| Target & llvm::getTheMipsTarget | ( | ) |
Definition at line 13 of file MipsTargetInfo.cpp.
Referenced by LLVMInitializeMipsAsmParser(), LLVMInitializeMipsAsmPrinter(), LLVMInitializeMipsDisassembler(), LLVMInitializeMipsTarget(), LLVMInitializeMipsTargetInfo(), and LLVMInitializeMipsTargetMC().
| Target & llvm::getTheMSP430Target | ( | ) |
Definition at line 13 of file MSP430TargetInfo.cpp.
Referenced by LLVMInitializeMSP430AsmParser(), LLVMInitializeMSP430AsmPrinter(), LLVMInitializeMSP430Disassembler(), LLVMInitializeMSP430Target(), LLVMInitializeMSP430TargetInfo(), and LLVMInitializeMSP430TargetMC().
| Target & llvm::getTheNVPTXTarget32 | ( | ) |
Definition at line 13 of file NVPTXTargetInfo.cpp.
Referenced by LLVMInitializeNVPTXAsmPrinter(), LLVMInitializeNVPTXTarget(), LLVMInitializeNVPTXTargetInfo(), and LLVMInitializeNVPTXTargetMC().
| Target & llvm::getTheNVPTXTarget64 | ( | ) |
Definition at line 17 of file NVPTXTargetInfo.cpp.
Referenced by LLVMInitializeNVPTXAsmPrinter(), LLVMInitializeNVPTXTarget(), LLVMInitializeNVPTXTargetInfo(), and LLVMInitializeNVPTXTargetMC().
| Target & llvm::getThePPC32Target | ( | ) |
Definition at line 13 of file PowerPCTargetInfo.cpp.
Referenced by LLVMInitializePowerPCAsmParser(), LLVMInitializePowerPCAsmPrinter(), LLVMInitializePowerPCDisassembler(), LLVMInitializePowerPCTarget(), LLVMInitializePowerPCTargetInfo(), and LLVMInitializePowerPCTargetMC().
| Target & llvm::getThePPC64LETarget | ( | ) |
Definition at line 21 of file PowerPCTargetInfo.cpp.
Referenced by LLVMInitializePowerPCAsmParser(), LLVMInitializePowerPCAsmPrinter(), LLVMInitializePowerPCDisassembler(), LLVMInitializePowerPCTarget(), LLVMInitializePowerPCTargetInfo(), and LLVMInitializePowerPCTargetMC().
| Target & llvm::getThePPC64Target | ( | ) |
Definition at line 17 of file PowerPCTargetInfo.cpp.
Referenced by LLVMInitializePowerPCAsmParser(), LLVMInitializePowerPCAsmPrinter(), LLVMInitializePowerPCDisassembler(), LLVMInitializePowerPCTarget(), LLVMInitializePowerPCTargetInfo(), and LLVMInitializePowerPCTargetMC().
| Target & llvm::getTheRISCV32Target | ( | ) |
Definition at line 13 of file RISCVTargetInfo.cpp.
Referenced by LLVMInitializeRISCVAsmParser(), LLVMInitializeRISCVAsmPrinter(), LLVMInitializeRISCVDisassembler(), LLVMInitializeRISCVTarget(), LLVMInitializeRISCVTargetInfo(), and LLVMInitializeRISCVTargetMC().
| Target & llvm::getTheRISCV64Target | ( | ) |
Definition at line 18 of file RISCVTargetInfo.cpp.
Referenced by LLVMInitializeRISCVAsmParser(), LLVMInitializeRISCVAsmPrinter(), LLVMInitializeRISCVDisassembler(), LLVMInitializeRISCVTarget(), LLVMInitializeRISCVTargetInfo(), and LLVMInitializeRISCVTargetMC().
| Target & llvm::getTheSparcelTarget | ( | ) |
Definition at line 21 of file SparcTargetInfo.cpp.
Referenced by LLVMInitializeSparcAsmParser(), LLVMInitializeSparcAsmPrinter(), LLVMInitializeSparcDisassembler(), LLVMInitializeSparcTarget(), LLVMInitializeSparcTargetInfo(), and LLVMInitializeSparcTargetMC().
| Target & llvm::getTheSparcTarget | ( | ) |
Definition at line 13 of file SparcTargetInfo.cpp.
Referenced by LLVMInitializeSparcAsmParser(), LLVMInitializeSparcAsmPrinter(), LLVMInitializeSparcDisassembler(), LLVMInitializeSparcTarget(), LLVMInitializeSparcTargetInfo(), and LLVMInitializeSparcTargetMC().
| Target & llvm::getTheSparcV9Target | ( | ) |
Definition at line 17 of file SparcTargetInfo.cpp.
Referenced by LLVMInitializeSparcAsmParser(), LLVMInitializeSparcAsmPrinter(), LLVMInitializeSparcDisassembler(), LLVMInitializeSparcTarget(), LLVMInitializeSparcTargetInfo(), and LLVMInitializeSparcTargetMC().
| Target & llvm::getTheSystemZTarget | ( | ) |
Definition at line 14 of file SystemZTargetInfo.cpp.
Referenced by LLVMInitializeSystemZAsmParser(), LLVMInitializeSystemZAsmPrinter(), LLVMInitializeSystemZDisassembler(), LLVMInitializeSystemZTarget(), LLVMInitializeSystemZTargetInfo(), and LLVMInitializeSystemZTargetMC().
| Target & llvm::getTheThumbBETarget | ( | ) |
Definition at line 25 of file ARMTargetInfo.cpp.
Referenced by LLVMInitializeARMAsmParser(), LLVMInitializeARMAsmPrinter(), LLVMInitializeARMDisassembler(), LLVMInitializeARMTarget(), LLVMInitializeARMTargetInfo(), and LLVMInitializeARMTargetMC().
| Target & llvm::getTheThumbLETarget | ( | ) |
Definition at line 21 of file ARMTargetInfo.cpp.
Referenced by LLVMInitializeARMAsmParser(), LLVMInitializeARMAsmPrinter(), LLVMInitializeARMDisassembler(), LLVMInitializeARMTarget(), LLVMInitializeARMTargetInfo(), and LLVMInitializeARMTargetMC().
| Target & llvm::getTheVETarget | ( | ) |
Definition at line 15 of file VETargetInfo.cpp.
Referenced by LLVMInitializeVEAsmPrinter(), LLVMInitializeVETarget(), LLVMInitializeVETargetInfo(), and LLVMInitializeVETargetMC().
| Target & llvm::getTheWebAssemblyTarget32 | ( | ) |
Definition at line 20 of file WebAssemblyTargetInfo.cpp.
Referenced by LLVMInitializeWebAssemblyAsmParser(), LLVMInitializeWebAssemblyAsmPrinter(), LLVMInitializeWebAssemblyDisassembler(), LLVMInitializeWebAssemblyTarget(), LLVMInitializeWebAssemblyTargetInfo(), and LLVMInitializeWebAssemblyTargetMC().
| Target & llvm::getTheWebAssemblyTarget64 | ( | ) |
Definition at line 24 of file WebAssemblyTargetInfo.cpp.
Referenced by LLVMInitializeWebAssemblyAsmParser(), LLVMInitializeWebAssemblyAsmPrinter(), LLVMInitializeWebAssemblyDisassembler(), LLVMInitializeWebAssemblyTarget(), LLVMInitializeWebAssemblyTargetInfo(), and LLVMInitializeWebAssemblyTargetMC().
| Target & llvm::getTheX86_32Target | ( | ) |
Definition at line 13 of file X86TargetInfo.cpp.
Referenced by LLVMInitializeX86AsmParser(), LLVMInitializeX86AsmPrinter(), LLVMInitializeX86Disassembler(), LLVMInitializeX86Target(), LLVMInitializeX86TargetInfo(), and LLVMInitializeX86TargetMC().
| Target & llvm::getTheX86_64Target | ( | ) |
Definition at line 17 of file X86TargetInfo.cpp.
Referenced by LLVMInitializeX86AsmParser(), LLVMInitializeX86AsmPrinter(), LLVMInitializeX86Disassembler(), LLVMInitializeX86Target(), LLVMInitializeX86TargetInfo(), and LLVMInitializeX86TargetMC().
| Target & llvm::getTheXCoreTarget | ( | ) |
Definition at line 13 of file XCoreTargetInfo.cpp.
Referenced by LLVMInitializeXCoreAsmPrinter(), LLVMInitializeXCoreDisassembler(), LLVMInitializeXCoreTarget(), LLVMInitializeXCoreTargetInfo(), and LLVMInitializeXCoreTargetMC().
| std::pair< StringRef, StringRef > llvm::getToken | ( | StringRef | Source, |
| StringRef | Delimiters = " \t\n\v\f\r" |
||
| ) |
getToken - This function extracts one token from source, ignoring any leading characters that appear in the Delimiters string, and ending the token at any of the characters that appear in the Delimiters string.
If there are no tokens in the source string, an empty string is returned. The function returns a pair containing the extracted token and the remaining tail string.
Definition at line 37 of file StringExtras.cpp.
Referenced by addNegOperand(), convertFPR64ToFPR32(), encodeCnt(), getRealVLDOpcode(), getRegNum(), IsCPSRDead< MCInst >(), isMatchingOrAlias(), IsRevOpcode(), itostr(), MaybePredicatedInst(), parseSymbolString(), previousEqual(), printMCExpr(), shouldBeSls(), and SplitString().
|
inline |
We provide a function which tries to compute the (demangled) name of a type statically.
This routine may fail on some platforms or for particularly unusual types. Do not use it for anything other than logging and debugging aids. It isn't portable or dependendable in any real sense.
The returned StringRef will point into a static storage duration string. However, it may not be null terminated and may be some strangely aligned inner substring of a larger string.
Definition at line 27 of file TypeName.h.
References assert(), llvm::StringRef::drop_front(), llvm::StringRef::empty(), llvm::StringRef::find(), Name, llvm::StringRef::npos, llvm::cl::Prefix, llvm::StringRef::rfind(), llvm::StringRef::size(), and llvm::StringRef::substr().
Referenced by LLVMGetRelocationTypeName().
| unsigned llvm::getULEB128Size | ( | uint64_t | Value | ) |
Utility function to get the size of the ULEB128-encoded value.
Definition at line 19 of file LEB128.cpp.
References Size.
Referenced by llvm::EHStreamer::computeActionsTable(), llvm::DIE::computeOffsetsAndAbbrevs(), decodeSLEB128(), EmitDebugSectionImpl(), EmitDwarfLineTable(), GetAEABIUnwindPersonalityName(), llvm::DIEInteger::SizeOf(), llvm::DIEEntry::SizeOf(), llvm::DIELocList::SizeOf(), llvm::DIELoc::SizeOf(), and llvm::DIEBlock::SizeOf().
Definition at line 482 of file MachineInstrBuilder.h.
References llvm::RegState::Undef.
Referenced by llvm::SplitEditor::dump(), emitLoadM0FromVGPRLoop(), emitLoadSRsrcFromVGPRLoop(), llvm::X86FrameLowering::emitSPUpdate(), expandSHXDROT(), finalizeBundle(), GetDSubRegs(), getLogicalBitOpcode(), getRegState(), InsertLDR_STR(), loadRegPairFromStackSlot(), moveAndTeeForMultiUse(), optimizeVcndVcmpPair(), llvm::ARMBaseInstrInfo::setExecutionDomain(), llvm::SystemZInstrInfo::SystemZInstrInfo(), and llvm::X86InstrInfo::unfoldMemoryOperand().
| Value * llvm::GetUnderlyingObject | ( | Value * | V, |
| const DataLayout & | DL, | ||
| unsigned | MaxLookup = 6 |
||
| ) |
This method strips off any GEP address adjustments and pointer casts from the specified value, returning the original object being addressed.
Note that the returned value has pointer type if the specified value does. If the MaxLookup value is non-zero, it limits the number of instructions to be stripped off.
Definition at line 3877 of file ValueTracking.cpp.
References assert(), GEP, getArgumentAliasingToReturnedPointer(), llvm::Operator::getOpcode(), llvm::Value::getType(), llvm::Type::isPointerTy(), llvm::NVPTX::PTXCvtMode::RP, llvm::JumpTable::Simplified, and SimplifyInstruction().
Referenced by llvm::GlobalsAAResult::alias(), llvm::VNCoercion::analyzeLoadFromClobberingMemInst(), llvm::AAResults::callCapturesBefore(), ConstantFoldLoadFromConstPtr(), createAMDGPUFunctionInliningPass(), eliminateDeadStores(), eliminateNoopStore(), getArgumentAliasingToReturnedPointer(), getChainID(), getMemSetPatternValue(), llvm::GlobalsAAResult::getModRefBehavior(), llvm::BasicAAResult::getModRefInfo(), llvm::GlobalsAAResult::getModRefInfo(), llvm::MemoryDependenceResults::getSimplePointerDependencyFrom(), llvm::objcarc::GetUnderlyingObjCPtr(), GetUnderlyingObject(), GetUnderlyingObjects(), llvm::AMDGPUTTIImpl::getUnrollingPreferences(), handleFree(), INITIALIZE_PASS(), InstructionDereferencesPointer(), instrumentMaskedLoadOrStore(), isCallPromotable(), isNonEscapingGlobalNoAliasWithLoad(), isObjectDereferencedInBlock(), isOverwrite(), isZero(), memOpsHaveSameBasePtr(), MergeAliasResults(), llvm::AMDGPUAAResult::pointsToConstantMemory(), llvm::BasicAAResult::pointsToConstantMemory(), promoteLoopAccessesToScalars(), removeAccessedObjects(), llvm::SLPVectorizerPass::runImpl(), shouldInstrumentReadWriteFromAddress(), sortPtrAccesses(), and underlyingObjectsAlias().
|
inline |
Definition at line 346 of file ValueTracking.h.
References GetUnderlyingObject(), GetUnderlyingObjects(), getUnderlyingObjectsForCodeGen(), I, isAssumeLikeIntrinsic(), isSafeToSpeculativelyExecute(), isValidAssumeForContext(), mayBeMemoryDependent(), mustSuppressSpeculation(), and onlyUsedByLifetimeMarkers().
| void llvm::GetUnderlyingObjects | ( | const Value * | V, |
| SmallVectorImpl< const Value *> & | Objects, | ||
| const DataLayout & | DL, | ||
| LoopInfo * | LI = nullptr, |
||
| unsigned | MaxLookup = 6 |
||
| ) |
This method is similar to GetUnderlyingObject except that it can look through phi and select instructions and return multiple objects.
If LoopInfo is passed, loop phis are further analyzed. If a pointer accesses different objects in each iteration, we don't look through the phi node. E.g. consider this loop nest:
int **A; for (i) for (j) { A[i][j] = A[i-1][j] * B[j] }
This is transformed by Load-PRE to stash away A[i] for the next iteration of the outer loop:
Curr = A[0]; // Prev_0 for (i: 1..N) { Prev = Curr; // Prev = PHI (Prev_0, Curr) Curr = A[i]; for (j: 0..N) { Curr[j] = Prev[j] * B[j] } }
Since A[i] and A[i-1] are independent pointers, getUnderlyingObjects should not assume that Curr and Prev share the same underlying object thus it shouldn't look through the phi above.
Definition at line 3926 of file ValueTracking.cpp.
References llvm::SmallVectorBase::empty(), GetUnderlyingObject(), llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::LoopInfoBase< BlockT, LoopT >::isLoopHeader(), isSameUnderlyingObjectInLoop(), P, llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SmallVectorTemplateBase< T >::push_back(), and SI.
Referenced by AddAliasScopeMetadata(), llvm::GlobalsAAResult::alias(), canLowerToLDG(), computePointerICmp(), FixedPointIntrinsicToOpcode(), getOffsetFromIndices(), GetUnderlyingObject(), getUnderlyingObjects(), getUnderlyingObjectsForCodeGen(), handleEndBlock(), INITIALIZE_PASS(), and isNoWrap().
| bool llvm::getUnderlyingObjectsForCodeGen | ( | const Value * | V, |
| SmallVectorImpl< Value *> & | Objects, | ||
| const DataLayout & | DL | ||
| ) |
This is a wrapper around GetUnderlyingObjects and adds support for basic ptrtoint+arithmetic+inttoptr sequences.
It returns false if unidentified object is found in GetUnderlyingObjects.
Definition at line 3999 of file ValueTracking.cpp.
References llvm::SmallVectorImpl< T >::clear(), llvm::SmallVectorBase::empty(), llvm::Operator::getOpcode(), llvm::Value::getType(), getUnderlyingObjectFromInt(), GetUnderlyingObjects(), llvm::SmallPtrSetImpl< PtrType >::insert(), isIdentifiedObject(), llvm::Type::isPointerTy(), llvm::RISCVFenceField::O, llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T >::push_back(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by getStartOrEndSlot(), GetUnderlyingObject(), and getUnderlyingObjectsForInstr().
If a value has only one user that is a CastInst, return it.
Definition at line 170 of file VectorUtils.cpp.
References dyn_cast(), llvm::Value::getType(), and llvm::Value::users().
Referenced by getStrideFromPointer().
|
static |
Definition at line 22 of file MetadataImpl.h.
References llvm::detail::DenseSetImpl< ValueT, DenseMap< ValueT, detail::DenseSetEmpty, ValueInfoT, detail::DenseSetPair< ValueT > >, ValueInfoT >::end(), llvm::detail::DenseSetImpl< ValueT, DenseMap< ValueT, detail::DenseSetEmpty, ValueInfoT, detail::DenseSetPair< ValueT > >, ValueInfoT >::find_as(), and I.
Referenced by adjustColumn(), isCanonical(), and uniquifyImpl().
| void llvm::getUniqueExitBlocksHelper | ( | const LoopT * | L, |
| SmallVectorImpl< BlockT *> & | ExitBlocks, | ||
| PredicateT | Pred | ||
| ) |
Definition at line 101 of file LoopInfoImpl.h.
References assert(), make_filter_range(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and Successor.
Referenced by llvm::LoopBase< BasicBlock, Loop >::getUniqueExitBlocks(), and llvm::LoopBase< BasicBlock, Loop >::getUniqueNonLatchExitBlocks().
| std::string llvm::getUniqueModuleId | ( | Module * | M | ) |
Produce a unique identifier for this module by taking the MD5 sum of the names of the module's strong external symbols that are not comdat members.
This identifier is normally guaranteed to be unique, or the program would fail to link due to multiply defined symbols.
If the module has no strong external symbols (such a module may still have a semantic effect if it performs global initialization), we cannot produce a unique identifier for this module, so we return the empty string.
Definition at line 253 of file ModuleUtils.cpp.
References F(), llvm::MD5::final(), llvm::AMDGPUISD::IF, llvm::MD5::stringifyResult(), and llvm::MD5::update().
Referenced by instrumentMaskedLoadOrStore(), and llvm::ModuleSanitizerCoveragePass::run().
Definition at line 37 of file ProfileCommon.h.
Given an llvm.loop loop id metadata node, returns the loop hint metadata node with the given name (for example, "llvm.loop.unroll.count").
If no such metadata node exists, then nullptr is returned.
Definition at line 963 of file LoopUnroll.cpp.
References assert(), dyn_cast(), llvm::numbers::e, llvm::StringRef::equals(), llvm::MDNode::getNumOperands(), llvm::MDNode::getOperand(), and llvm::MDString::getString().
Referenced by GetUnrollMetadataForLoop(), and VisitGlobalVariableForEmission().
| void llvm::getValueForSiteInstrProf | ( | const void * | R, |
| InstrProfValueData * | Dst, | ||
| uint32_t | K, | ||
| uint32_t | S | ||
| ) |
Definition at line 749 of file InstrProf.cpp.
| bool llvm::getValueProfDataFromInst | ( | const Instruction & | Inst, |
| InstrProfValueKind | ValueKind, | ||
| uint32_t | MaxNumValueData, | ||
| InstrProfValueData | ValueData[], | ||
| uint32_t & | ActualNumValueData, | ||
| uint64_t & | TotalC | ||
| ) |
Extract the value profile data from Inst which is annotated with value profile meta data.
Return false if there is no value data annotated, otherwise return true.
Definition at line 976 of file InstrProf.cpp.
References llvm::StringRef::equals(), llvm::Instruction::getMetadata(), llvm::MDNode::getNumOperands(), llvm::MDNode::getOperand(), llvm::MDString::getString(), llvm::ConstantInt::getZExtValue(), I, Tag, and llvm::Value::Value().
Referenced by llvm::ICallPromotionAnalysis::getPromotionCandidatesForInstruction(), and llvm::CGProfilePass::run().
| Intrinsic::ID llvm::getVectorIntrinsicIDForCall | ( | const CallInst * | CI, |
| const TargetLibraryInfo * | TLI | ||
| ) |
Returns intrinsic ID for call.
For the input call instruction it finds mapping intrinsic and returns its intrinsic ID, in case it does not found it return not_intrinsic.
For the input call instruction it finds mapping intrinsic and returns its ID, in case it does not found it return not_intrinsic.
Definition at line 113 of file VectorUtils.cpp.
References getIntrinsicForCallSite(), isTriviallyVectorizable(), and llvm::Intrinsic::not_intrinsic.
Referenced by llvm::slpvectorizer::BoUpSLP::canMapToVector(), llvm::slpvectorizer::BoUpSLP::eraseInstructions(), llvm::LoopVectorizationCostModel::getVectorIntrinsicCost(), InTreeUserNeedToExtract(), llvm::LoopVectorizationLegality::isUniform(), llvm::MemoryDepChecker::Dependence::print(), llvm::LoopVectorizationCostModel::setCostBasedWideningDecision(), and llvm::VPRecipeBuilder::tryToWiden().
| ARMVCC::VPTCodes llvm::getVPTInstrPredicate | ( | const MachineInstr & | MI, |
| unsigned & | PredReg | ||
| ) |
Definition at line 729 of file Thumb2InstrInfo.cpp.
References findFirstVPTPredOperandIdx(), llvm::MachineOperand::getImm(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), and llvm::ARMVCC::None.
Referenced by findVCMPToFoldIntoVPST(), and llvm::Thumb2InstrInfo::getRegisterInfo().
| MachineInstr * llvm::getVRegSubRegDef | ( | const TargetInstrInfo::RegSubRegPair & | P, |
| MachineRegisterInfo & | MRI | ||
| ) |
Return the defining instruction for a given reg:subreg pair skipping copy like instructions and subreg-manipulation pseudos.
Following another subreg of a reg:subreg isn't supported.
Definition at line 6452 of file SIInstrInfo.cpp.
References assert(), followSubRegDef(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), getRegSubRegPair(), llvm::MachineRegisterInfo::getVRegDef(), llvm::MachineRegisterInfo::isSSA(), llvm::Register::isVirtualRegister(), MI, P, and llvm::TargetInstrInfo::RegSubRegPair::Reg.
Referenced by createGCNDPPCombinePass(), and getRegSubRegPair().
Definition at line 2902 of file MachineScheduler.cpp.
References llvm::SUnit::WeakPredsLeft, and llvm::SUnit::WeakSuccsLeft.
Referenced by llvm::GenericSchedulerBase::GenericSchedulerBase(), llvm::ConvergingVLIWScheduler::pickNodeFromQueue(), llvm::ConvergingVLIWScheduler::releaseBottomNode(), llvm::ConvergingVLIWScheduler::SchedulingCost(), and llvm::GenericScheduler::tryCandidate().
|
inline |
Definition at line 1303 of file BlockFrequencyInfoImpl.h.
References assert(), dbgs(), llvm::bfi_detail::getBlockName(), llvm::BranchProbability::getNumerator(), LLVM_DEBUG, and SI.
|
static |
Definition at line 381 of file LoopVectorizationLegality.cpp.
References convertPointerToIntegerType(), and llvm::Type::getScalarSizeInBits().
Referenced by llvm::ScalarEvolution::getContext(), llvm::ScalarEvolution::getUMinFromMismatchedTypes(), IsKnownPredicateViaMinOrMax(), and llvm::LoopVectorizationLegality::isUniform().
| llvm::VersionTuple llvm::GetWindowsOSVersion | ( | ) |
Returns the Windows version as Major.Minor.0.BuildNumber.
Uses RtlGetVersion or GetVersionEx under the hood depending on what is available. GetVersionEx is deprecated, but this API exposes the build number which can be useful for working around certain kernel bugs.
Definition at line 29 of file AArch64BaseInfo.h.
References Reg.
Referenced by isMatchingOrAlias(), llvm::AArch64InstPrinter::printGPR64as32(), and llvm::AArch64InstPrinter::printInst().
| MCRegister llvm::getX86SubSuperRegister | ( | MCRegister | Reg, |
| unsigned | Size, | ||
| bool | High = false |
||
| ) |
Returns the sub or super register of a specific X86 register.
e.g. getX86SubSuperRegister(X86::EAX, 16) returns X86::AX. Aborts on error.
Definition at line 772 of file X86MCTargetDesc.cpp.
References assert(), and getX86SubSuperRegisterOrZero().
Referenced by llvm::X86Operand::addGR32orGR64Operands(), NoAutoPaddingScope::changeAndComment(), llvm::X86InstrInfo::classifyLEAReg(), createX86FixupBWInsts(), llvm::X86FrameLowering::determineCalleeSaves(), llvm::X86RegisterInfo::eliminateFrameIndex(), llvm::X86FrameLowering::emitEpilogue(), llvm::X86AsmPrinter::EmitFunctionBodyEnd(), llvm::X86FrameLowering::emitPrologue(), ExpandMOVImmSExti8(), llvm::X86RegisterInfo::getPtrSizedFrameRegister(), llvm::X86RegisterInfo::getPtrSizedStackRegister(), llvm::X86RegisterInfo::getReservedRegs(), printAsmMRegister(), and tryOptimizeLEAtoMOV().
| MCRegister llvm::getX86SubSuperRegisterOrZero | ( | MCRegister | Reg, |
| unsigned | Size, | ||
| bool | High = false |
||
| ) |
Returns the sub or super register of a specific X86 register.
Like getX86SubSuperRegister() but returns 0 on error.
Definition at line 599 of file X86MCTargetDesc.cpp.
References llvm::AArch64CC::AL, llvm::ARCISD::BL, llvm::N86::EAX, llvm::N86::EBX, llvm::N86::ECX, llvm::N86::EDI, llvm::N86::EDX, llvm::N86::ESI, llvm::N86::ESP, llvm::MCRegister::id(), and SI.
Referenced by llvm::X86TargetLowering::getRegForInlineAsmConstraint(), and getX86SubSuperRegister().
Return the greatest common divisor of the values using Euclid's algorithm.
Definition at line 610 of file MathExtras.h.
References B.
Referenced by llvm::IRPosition::getAttrs(), getGCDType(), and llvm::LegalizerHelper::narrowScalar().
|
inline |
Definition at line 619 of file MathExtras.h.
References B.
Referenced by llvm::NVPTXTargetLowering::LowerCall(), llvm::mca::ResourceCycles::operator+=(), and UnrollLoop().
| void llvm::guessSuccessors | ( | const MachineBasicBlock & | MBB, |
| SmallVectorImpl< MachineBasicBlock *> & | Result, | ||
| bool & | IsFallthrough | ||
| ) |
Determine a possible list of successors of a basic block based on the basic block machine operand being used inside the block.
This should give you the correct list of successor blocks in most cases except for things like jump tables where the basic block references can't easily be found. The MIRPRinter will skip printing successors if they match the result of this funciton and the parser will use this function to construct a list if it is missing.
Definition at line 549 of file MIRPrinter.cpp.
References llvm::SmallVectorTemplateCommon< T >::begin(), llvm::MachineFunction::end(), llvm::lltok::equal, llvm::object::Equal, llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::MachineBasicBlock::getParent(), llvm::MachineBasicBlock::hasSuccessorProbabilities(), I, llvm::SmallPtrSetImpl< PtrType >::insert(), is_contained(), MI, llvm::BranchProbability::normalizeProbabilities(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::NVPTX::PTXCvtMode::RP, llvm::SmallVectorBase::size(), llvm::MachineBasicBlock::succ_begin(), llvm::MachineBasicBlock::succ_end(), and llvm::MachineBasicBlock::succ_size().
Referenced by toString().
|
inline |
Definition at line 50 of file GenericValue.h.
References llvm::GenericValue::PointerVal.
Referenced by lle_X_atexit(), lle_X_fprintf(), lle_X_memcpy(), lle_X_memset(), lle_X_scanf(), lle_X_sprintf(), lle_X_sscanf(), lookupFunction(), llvm::MCJIT::runFunction(), llvm::orc::OrcMCJITReplacement::runFunction(), llvm::ExecutionEngine::runFunctionAsMain(), llvm::Interpreter::visitCallSite(), llvm::Interpreter::visitIndirectBrInst(), llvm::Interpreter::visitLoadInst(), and llvm::Interpreter::visitStoreInst().
| void llvm::handleAllErrors | ( | Error | E, |
| HandlerTs &&... | Handlers | ||
| ) |
Behaves the same as handleErrors, except that by contract all errors must be handled by the given handlers (i.e.
there must be no remaining errors after running the handlers, or llvm_unreachable is called).
Definition at line 924 of file Error.h.
References cantFail(), and handleErrors().
Referenced by annotateAllFunctions(), llvm::sampleprof::SampleProfileReaderItaniumRemapper::create(), llvm::DWARFContext::dumpWarning(), fatalOpenError(), llvm::object::getELFAddend(), llvm::DWARFDebugNames::NameIndex::getHashArrayEntry(), getMinVisibility(), getNames(), llvm::object::ELFObjectFile< ELFT >::getSectionIndex(), llvm::Pattern::printSubstitutions(), llvm::RemarkSetupErrorInfo< RemarkSetupFormatError >::RemarkSetupErrorInfo(), llvm::legacy::FunctionPassManager::run(), sumEdgeCount(), and toString().
|
inline |
Check that E is a non-error, then drop it.
If E is an error, llvm_unreachable will be called.
Definition at line 930 of file Error.h.
References cantFail(), and T.
|
inline |
Definition at line 880 of file Error.h.
References Error.
Referenced by handleErrorImpl(), and handleErrors().
| Error llvm::handleErrorImpl | ( | std::unique_ptr< ErrorInfoBase > | Payload, |
| HandlerT && | Handler, | ||
| HandlerTs &&... | Handlers | ||
| ) |
Definition at line 885 of file Error.h.
References llvm::cl::apply(), and handleErrorImpl().
Pass the ErrorInfo(s) contained in E to their respective handlers.
Any unhandled errors (or Errors returned by handlers) are re-concatenated and returned. Because this function returns an error, its result must also be checked or returned. If you intend to handle all errors use handleAllErrors (which returns void, and will abort() on unhandled errors) instead.
Definition at line 901 of file Error.h.
References handleErrorImpl(), List, P, and llvm::Error::success().
Referenced by llvm::InstrProfReaderItaniumRemapper< HashTableImpl >::getRecords(), handleAllErrors(), handleMaybeNoDataFoundError(), llvm::lto::localCache(), and PrintNoMatch().
| void llvm::handleExecNameEncodedBEOpts | ( | StringRef | ExecName | ) |
Handle backend options that are encoded in the executable name.
Parses some common backend options out of a specially crafted executable name (argv[0]). For example, a name like llvm-foo-fuzzer–aarch64-gisel might set up an AArch64 triple and the Global ISel selector. This should be called before parseFuzzerCLOpts if calling both.
This is meant to be used for environments like OSS-Fuzz that aren't capable of passing in command line arguments in the normal way.
Definition at line 38 of file FuzzerCLI.cpp.
References llvm::AMDGPU::HSAMD::Kernel::Key::Args, E, errs(), llvm::Triple::getArch(), I, llvm::cl::ParseCommandLineOptions(), and llvm::StringRef::split().
| void llvm::handleExecNameEncodedOptimizerOpts | ( | StringRef | ExecName | ) |
Handle optimizer options which are encoded in the executable name.
Same semantics as in 'handleExecNameEncodedBEOpts'.
Definition at line 74 of file FuzzerCLI.cpp.
References llvm::AMDGPU::HSAMD::Kernel::Key::Args, E, errs(), I, llvm::cl::ParseCommandLineOptions(), and llvm::StringRef::split().
| Expected<T> llvm::handleExpected | ( | Expected< T > | ValOrErr, |
| RecoveryFtor && | RecoveryPath, | ||
| HandlerTs &&... | Handlers | ||
| ) |
Handle any errors (if present) in an Expected<T>, then try a recovery path.
If the incoming value is a success value it is returned unmodified. If it is a failure value then it the contained error is passed to handleErrors. If handleErrors is able to handle the error then the RecoveryPath functor is called to supply the final result. If handleErrors is not able to handle all errors then the unhandled errors are returned.
This utility enables the follow pattern:
| unsigned llvm::hardware_concurrency | ( | ) |
Get the number of threads that the current program can execute concurrently.
On some systems std::thread::hardware_concurrency() returns the total number of cores, without taking affinity into consideration. Returns 1 when LLVM is configured with LLVM_ENABLE_THREADS=OFF. Fallback to std::thread::hardware_concurrency() if sched_getaffinity is not available.
Definition at line 95 of file Threading.cpp.
Referenced by call_once(), heavyweight_hardware_concurrency(), and llvm_is_multithreaded().
Look for the loop attribute that disables all transformation heuristic.
Definition at line 383 of file LoopUtils.cpp.
References getBooleanLoopAttribute().
Referenced by llvm::LoopVectorizeHints::getForce(), hasDistributeTransformation(), hasLICMVersioningTransformation(), hasUnrollAndJamTransformation(), hasUnrollTransformation(), and hasVectorizeTransformation().
Look for the loop attribute that disables the LICM transformation heuristics.
Definition at line 387 of file LoopUtils.cpp.
References getBooleanLoopAttribute().
Referenced by createLICMPass().
| TransformationMode llvm::hasDistributeTransformation | ( | Loop * | L | ) |
Definition at line 465 of file LoopUtils.cpp.
References getBooleanLoopAttribute(), hasDisableAllTransformsHint(), TM_Disable, TM_ForcedByUser, and TM_Unspecified.
Referenced by warnAboutLeftoverTransformations().
| bool llvm::hasFloatFn | ( | const TargetLibraryInfo * | TLI, |
| Type * | Ty, | ||
| LibFunc | DoubleFn, | ||
| LibFunc | FloatFn, | ||
| LibFunc | LongDoubleFn | ||
| ) |
Check whether the overloaded floating point function corresponding to Ty is available.
Definition at line 788 of file BuildLibCalls.cpp.
References llvm::Type::DoubleTyID, llvm::Type::FloatTyID, llvm::Type::getTypeID(), llvm::Type::HalfTyID, and llvm::TargetLibraryInfo::has().
Referenced by createPowWithIntegerExponent(), getFloatFnName(), getIntToFPVal(), getSqrtCall(), and llvm::InstCombiner::visitFDiv().
Combine values into a single hash_code.
This routine accepts a varying number of arguments of any type. It will attempt to combine them into a single hash_code. For user-defined types it attempts to call a
The result is suitable for returning from a user's hash_value implementation for their user-defined type. Consumers of a type should not call this routine, they should instead call 'hash_value'.
Definition at line 600 of file Hashing.h.
References llvm::hashing::detail::hash_combine_recursive_helper::buffer, and llvm::hashing::detail::hash_combine_recursive_helper::combine().
Referenced by llvm::GVNExpression::Expression::dump(), EliminateDuplicatePHINodes(), llvm::InnerLoopVectorizer::fixupIVUsers(), llvm::DeclContextTree::getChildDeclContext(), llvm::InlineAsmKeyType::getHash(), llvm::ConstantExprKeyType::getHash(), llvm::DenseMapInfo< wasm::WasmSignature >::getHashValue(), llvm::DenseMapInfo< wasm::WasmGlobalType >::getHashValue(), llvm::DenseMapInfo< gsym::FileEntry >::getHashValue(), llvm::DenseMapInfo< BasicBlockEdge >::getHashValue(), llvm::AnonStructTypeKeyInfo::getHashValue(), llvm::DenseMapInfo< MemOpKey >::getHashValue(), llvm::DenseMapInfo< SymbolsMapKey >::getHashValue(), llvm::FunctionTypeKeyInfo::getHashValue(), llvm::DenseMapInfo< MemoryLocOrCall >::getHashValue(), llvm::GVNExpression::BasicExpression::getHashValue(), llvm::GVNExpression::MemoryExpression::getHashValue(), llvm::MDNodeKeyImpl< DILocation >::getHashValue(), llvm::MDNodeKeyImpl< GenericDINode >::getHashValue(), llvm::MDNodeKeyImpl< DISubrange >::getHashValue(), llvm::MDNodeKeyImpl< DIEnumerator >::getHashValue(), llvm::MDNodeKeyImpl< DIBasicType >::getHashValue(), llvm::MDNodeKeyImpl< DIDerivedType >::getHashValue(), llvm::GVNExpression::AggregateValueExpression::getHashValue(), llvm::GVNExpression::PHIExpression::getHashValue(), llvm::MDNodeKeyImpl< DICompositeType >::getHashValue(), llvm::GVNExpression::VariableExpression::getHashValue(), llvm::DenseMapInfo< object::SectionRef >::getHashValue(), llvm::MDNodeKeyImpl< DISubroutineType >::getHashValue(), llvm::MDNodeKeyImpl< DIFile >::getHashValue(), llvm::GVNExpression::ConstantExpression::getHashValue(), llvm::GVNExpression::UnknownExpression::getHashValue(), llvm::MDNodeKeyImpl< DISubprogram >::getHashValue(), llvm::MDNodeKeyImpl< DILexicalBlock >::getHashValue(), llvm::MDNodeKeyImpl< DILexicalBlockFile >::getHashValue(), llvm::MDNodeKeyImpl< DINamespace >::getHashValue(), llvm::MDNodeKeyImpl< DICommonBlock >::getHashValue(), llvm::DenseMapInfo< coverage::CounterExpression >::getHashValue(), llvm::MDNodeKeyImpl< DIModule >::getHashValue(), llvm::MDNodeKeyImpl< DITemplateTypeParameter >::getHashValue(), llvm::MDNodeKeyImpl< DITemplateValueParameter >::getHashValue(), llvm::MDNodeKeyImpl< DIGlobalVariable >::getHashValue(), llvm::MDNodeKeyImpl< DILocalVariable >::getHashValue(), llvm::MDNodeKeyImpl< DILabel >::getHashValue(), llvm::MDNodeKeyImpl< DIGlobalVariableExpression >::getHashValue(), llvm::MDNodeKeyImpl< DIObjCProperty >::getHashValue(), llvm::MDNodeKeyImpl< DIImportedEntity >::getHashValue(), llvm::MDNodeKeyImpl< DIMacro >::getHashValue(), llvm::MDNodeKeyImpl< DIMacroFile >::getHashValue(), llvm::DenseMapInfo< CIEKey >::getHashValue(), llvm::DenseMapInfo< DebugVariable >::getHashValue(), getHashValueImpl(), llvm::DenseMapInfo< CallValue >::getTombstoneKey(), llvm::PBQP::hash_value(), hash_value(), llvm::PBQP::RegAlloc::hash_value(), llvm::detail::hash_value(), hashInstructionMapping(), hashPartialMapping(), and llvm::IRMover::StructTypeKeyInfo::KeyTy::operator!=().
| hash_code llvm::hash_combine_range | ( | InputIteratorT | first, |
| InputIteratorT | last | ||
| ) |
Compute a hash_code for a sequence of values.
This hashes a sequence of values. It produces the same hash_code as 'hash_combine(a, b, c, ...)', but can run over arbitrary sized sequences and is significantly faster given pointers and types which can be hashed as a sequence of bytes.
Definition at line 478 of file Hashing.h.
References llvm::hashing::detail::hash_combine_range_impl().
Referenced by llvm::MDNodeOpsKey::calculateHash(), llvm::FoldingSetNodeIDRef::ComputeHash(), DeleteTriviallyDeadInstructions(), llvm::GVNExpression::Expression::dump(), EliminateDuplicatePHINodes(), llvm::coverage::CounterMappingContext::evaluate(), llvm::InnerLoopVectorizer::fixupIVUsers(), llvm::ConstantAggrKeyType< ConstantClass >::getHash(), llvm::ConstantExprKeyType::getHash(), llvm::AnonStructTypeKeyInfo::getHashValue(), llvm::FunctionTypeKeyInfo::getHashValue(), llvm::GVNExpression::BasicExpression::getHashValue(), llvm::GVNExpression::AggregateValueExpression::getHashValue(), llvm::MDNodeKeyImpl< DIExpression >::getHashValue(), llvm::MachineInstrExpressionTrait::getHashValue(), llvm::DenseMapInfo< CallValue >::getTombstoneKey(), llvm::PBQP::hash_value(), llvm::PBQP::RegAlloc::hash_value(), hash_value(), llvm::detail::hash_value(), hashValueMapping(), llvm::slpvectorizer::BoUpSLP::BlockScheduling::ReadyList::insert(), markAliveBlocks(), and llvm::IRMover::StructTypeKeyInfo::KeyTy::operator!=().
| std::enable_if< is_integral_or_enum< T >::value, hash_code >::type llvm::hash_value | ( | T | value | ) |
Compute a hash_code for any integer value.
Note that this function is intended to compute the same hash_code for a particular value without regard to the pre-promotion type. This is in contrast to hash_combine which may produce different hash_codes for differing argument types even if they would implicit promote to a common type without changing the value.
Definition at line 631 of file Hashing.h.
References llvm::hashing::detail::hash_integer_value().
Compute a hash_code for a pointer's address.
N.B.: This hashes the address. Not the value and not the type.
Definition at line 638 of file Hashing.h.
References llvm::hashing::detail::hash_integer_value().
Compute a hash_code for a pair of objects.
Definition at line 646 of file Hashing.h.
References hash_combine().
Compute a hash_code for a standard string.
Definition at line 653 of file Hashing.h.
References hash_combine_range().
Definition at line 544 of file ArrayRef.h.
References llvm::ArrayRef< T >::begin(), llvm::ArrayRef< T >::end(), and hash_combine_range().
Compute a hash_code for a StringRef.
Definition at line 606 of file StringRef.cpp.
References llvm::StringRef::begin(), llvm::StringRef::end(), and hash_combine_range().
| hash_code llvm::hash_value | ( | const MachineOperand & | MO | ) |
Note that this includes the same information in the hash that isIdenticalTo uses for comparison. It is thus suited for use in hash tables which use that function for equality comparisons only. This must stay exactly in sync with isIdenticalTo above.
Definition at line 344 of file MachineOperand.cpp.
References llvm::MachineOperand::getBlockAddress(), llvm::MachineOperand::getCFIIndex(), llvm::MachineOperand::getCImm(), llvm::MachineOperand::getFPImm(), llvm::MachineOperand::getGlobal(), llvm::MachineOperand::getImm(), llvm::MachineOperand::getIndex(), llvm::MachineOperand::getIntrinsicID(), llvm::MachineOperand::getMBB(), llvm::MachineOperand::getMCSymbol(), llvm::MachineOperand::getMetadata(), llvm::MachineOperand::getOffset(), llvm::MachineOperand::getPredicate(), llvm::MachineOperand::getReg(), llvm::MachineOperand::getRegMask(), llvm::MachineOperand::getShuffleMask(), llvm::MachineOperand::getSubReg(), llvm::MachineOperand::getSymbolName(), llvm::MachineOperand::getTargetFlags(), llvm::MachineOperand::getType(), hash_combine(), llvm::MachineOperand::isDef(), llvm_unreachable, llvm::MachineOperand::MO_BlockAddress, llvm::MachineOperand::MO_CFIIndex, llvm::MachineOperand::MO_CImmediate, llvm::MachineOperand::MO_ConstantPoolIndex, llvm::MachineOperand::MO_ExternalSymbol, llvm::MachineOperand::MO_FPImmediate, llvm::MachineOperand::MO_FrameIndex, llvm::MachineOperand::MO_GlobalAddress, llvm::MachineOperand::MO_Immediate, llvm::MachineOperand::MO_IntrinsicID, llvm::MachineOperand::MO_JumpTableIndex, llvm::MachineOperand::MO_MachineBasicBlock, llvm::MachineOperand::MO_MCSymbol, llvm::MachineOperand::MO_Metadata, llvm::MachineOperand::MO_Predicate, llvm::MachineOperand::MO_Register, llvm::MachineOperand::MO_RegisterLiveOut, llvm::MachineOperand::MO_RegisterMask, llvm::MachineOperand::MO_ShuffleMask, and llvm::MachineOperand::MO_TargetIndex.
See friend declarations above.
These additional declarations are required in order to compile LLVM with IBM xlC compiler.
Definition at line 4510 of file APFloat.cpp.
References llvm::APFloat::getSemantics(), llvm::detail::DoubleAPFloat::hash_value, and llvm_unreachable.
Referenced by llvm::coverage::CounterMappingContext::evaluate(), llvm::APFloat::getExactInverse(), getFilename(), llvm::DenseMapInfo< wasm::WasmSignature >::getHashValue(), llvm::DenseMapAPIntKeyInfo::getHashValue(), llvm::DenseMapAPFloatKeyInfo::getHashValue(), llvm::DenseMapInfo< SymbolsMapKey >::getHashValue(), llvm::DenseMapInfo< GVN::Expression >::getHashValue(), llvm::DenseMapInfo< StringRef >::getHashValue(), llvm::DenseMapInfo< ArrayRef< T > >::getHashValue(), llvm::MachineInstrExpressionTrait::getHashValue(), llvm::detail::DoubleAPFloat::getSecond(), hashPartialMapping(), llvm::codeview::LocallyHashedType::hashType(), hashValueMapping(), llvm::codeview::MergingTypeTableBuilder::insertRecordBytes(), llvm::detail::IEEEFloat::isNegZero(), llvm::APInt::isSameValue(), operator+=(), operator<<(), llvm::APIntOps::RoundFloatToAPInt(), and shouldKeepInEntry().
Definition at line 549 of file APInt.cpp.
References llvm::APInt::getNumWords(), hash_combine(), hash_combine_range(), llvm::APInt::pVal, and llvm::APInt::VAL.
| bool llvm::hasInlineAsmMemConstraint | ( | InlineAsm::ConstraintInfoVector & | CInfos, |
| const TargetLowering & | TLI | ||
| ) |
hasInlineAsmMemConstraint - Return true if the inline asm instruction being processed uses a memory 'm' constraint.
Definition at line 179 of file Analysis.cpp.
References llvm::TargetLowering::C_Memory, llvm::InlineAsm::ConstraintInfo::Codes, llvm::numbers::e, llvm::TargetLowering::getConstraintType(), and llvm::InlineAsm::ConstraintInfo::isIndirect.
Referenced by ComputeLinearIndex().
| bool llvm::hasIterationCountInvariantInParent | ( | Loop * | L, |
| ScalarEvolution & | SE | ||
| ) |
Check inner loop (L) backedge count is known to be invariant on all iterations of its outer loop.
If the loop has no parent, this is trivially true.
Definition at line 732 of file LoopUtils.cpp.
References llvm::ScalarEvolution::getExitCount(), llvm::ScalarEvolution::getLoopDisposition(), llvm::LoopBase< BlockT, LoopT >::getLoopLatch(), llvm::LoopBase< BlockT, LoopT >::getParentLoop(), llvm::SCEV::getType(), llvm::Type::isIntegerTy(), llvm::ARM_MB::LD, and llvm::ScalarEvolution::LoopInvariant.
Referenced by isSafeToUnrollAndJam().
| TransformationMode llvm::hasLICMVersioningTransformation | ( | Loop * | L | ) |
Definition at line 475 of file LoopUtils.cpp.
References getBooleanLoopAttribute(), hasDisableAllTransformsHint(), TM_Disable, TM_SuppressedByUser, and TM_Unspecified.
| bool llvm::HasLowerConstantMaterializationCost | ( | unsigned | Val1, |
| unsigned | Val2, | ||
| const ARMSubtarget * | Subtarget, | ||
| bool | ForCodesize = false |
||
| ) |
Returns true if Val1 has a lower Constant Materialization Cost than Val2.
Uses the cost from ConstantMaterializationCost, first with ForCodesize as specified. If the scores are equal, return the comparison for !ForCodesize.
Definition at line 5448 of file ARMBaseInstrInfo.cpp.
References ConstantMaterializationCost().
Referenced by isLowerSaturatingConditional().
| bool llvm::hasNItems | ( | IterTy && | Begin, |
| IterTy && | End, | ||
| unsigned | N, | ||
| typename std::enable_if< !std::is_same< typename std::iterator_traits< typename std::remove_reference< decltype(Begin)>::type >::iterator_category, std::random_access_iterator_tag >::value, void >::type * | = nullptr |
||
| ) |
Return true if the sequence [Begin, End) has exactly N items.
Runs in O(N) time. Not meant for use with random-access iterators.
Definition at line 1543 of file STLExtras.h.
References N.
Referenced by llvm::BasicBlock::hasNPredecessors(), and llvm::Value::hasNUses().
| bool llvm::hasNItemsOrMore | ( | IterTy && | Begin, |
| IterTy && | End, | ||
| unsigned | N, | ||
| typename std::enable_if< !std::is_same< typename std::iterator_traits< typename std::remove_reference< decltype(Begin)>::type >::iterator_category, std::random_access_iterator_tag >::value, void >::type * | = nullptr |
||
| ) |
Return true if the sequence [Begin, End) has N or more items.
Runs in O(N) time. Not meant for use with random-access iterators.
Definition at line 1560 of file STLExtras.h.
References N.
Referenced by llvm::BasicBlock::hasNPredecessorsOrMore(), and llvm::Value::hasNUsesOrMore().
|
static |
Check that the instruction has outside loop users and is not an identified reduction variable.
Definition at line 391 of file LoopVectorizationLegality.cpp.
References llvm::LoopBase< BlockT, LoopT >::contains(), llvm::SmallPtrSetImpl< PtrType >::count(), dbgs(), LLVM_DEBUG, and llvm::Value::users().
Referenced by llvm::LoopVectorizationLegality::isUniform().
| TransformationMode llvm::hasUnrollAndJamTransformation | ( | Loop * | L | ) |
Definition at line 412 of file LoopUtils.cpp.
References getBooleanLoopAttribute(), getOptionalIntLoopAttribute(), llvm::Optional< T >::getValue(), hasDisableAllTransformsHint(), llvm::Optional< T >::hasValue(), TM_Disable, TM_ForcedByUser, TM_SuppressedByUser, and TM_Unspecified.
Referenced by tryToUnrollAndJamLoop(), and warnAboutLeftoverTransformations().
| TransformationMode llvm::hasUnrollTransformation | ( | Loop * | L | ) |
Get the mode for LLVM's supported loop transformations.
Definition at line 391 of file LoopUtils.cpp.
References getBooleanLoopAttribute(), getOptionalIntLoopAttribute(), llvm::Optional< T >::getValue(), hasDisableAllTransformsHint(), llvm::Optional< T >::hasValue(), TM_Disable, TM_ForcedByUser, TM_SuppressedByUser, and TM_Unspecified.
Referenced by tryToUnrollLoop(), and warnAboutLeftoverTransformations().
Returns true if a blob of text starts with a UTF-16 big or little endian byte order mark.
Definition at line 80 of file ConvertUTFWrapper.cpp.
References llvm::ArrayRef< T >::size().
Referenced by convertUTF8Sequence(), and ExpandResponseFile().
| detail::ValueMatchesPoly<M> llvm::HasValue | ( | M | Matcher | ) |
Definition at line 158 of file Error.h.
Referenced by llvm::json::OStream::attributeObject(), llvm::orc::rpc::SerializationTraits< ChannelT, Expected< T1 >, Expected< T2 > >::deserialize(), and simplifyDivRem().
| bool llvm::hasVectorInstrinsicScalarOpd | ( | Intrinsic::ID | ID, |
| unsigned | ScalarOpdIdx | ||
| ) |
Identifies if the vector form of the intrinsic has a scalar operand.
Definition at line 93 of file VectorUtils.cpp.
Referenced by canConstantFoldCallTo(), llvm::slpvectorizer::BoUpSLP::eraseInstructions(), getScalarIntrinsicDeclaration(), InTreeUserNeedToExtract(), and llvm::LoopVectorizationLegality::isUniform().
| TransformationMode llvm::hasVectorizeTransformation | ( | Loop * | L | ) |
Definition at line 430 of file LoopUtils.cpp.
References Enable, getBooleanLoopAttribute(), getOptionalBoolLoopAttribute(), getOptionalIntLoopAttribute(), hasDisableAllTransformsHint(), TM_Disable, TM_Enable, TM_ForcedByUser, TM_SuppressedByUser, and TM_Unspecified.
Referenced by warnAboutLeftoverTransformations().
| bool llvm::haveNoCommonBitsSet | ( | const Value * | LHS, |
| const Value * | RHS, | ||
| const DataLayout & | DL, | ||
| AssumptionCache * | AC = nullptr, |
||
| const Instruction * | CxtI = nullptr, |
||
| const DominatorTree * | DT = nullptr, |
||
| bool | UseInstrInfo = true |
||
| ) |
Return true if LHS and RHS have no common bits set.
Definition at line 191 of file ValueTracking.cpp.
References assert(), computeKnownBits(), llvm::IntegerType::getBitWidth(), llvm::Type::getScalarType(), llvm::Value::getType(), llvm::Type::isIntOrIntVectorTy(), IT, llvm::PatternMatch::m_c_And(), llvm::PatternMatch::m_Not(), llvm::PatternMatch::m_Specific(), llvm::PatternMatch::m_Value(), and llvm::PatternMatch::match().
Referenced by createSeparateConstOffsetFromGEPPass(), llvm::SelectionDAG::isKnownNeverSNaN(), matchesOr(), and llvm::InstCombiner::visitAdd().
| unsigned llvm::heavyweight_hardware_concurrency | ( | ) |
Get the amount of currency to use for tasks requiring significant memory or other resources.
Currently based on physical cores, if available for the host system, otherwise falls back to thread::hardware_concurrency(). Returns 1 when LLVM is configured with LLVM_ENABLE_THREADS=OFF
Definition at line 82 of file Threading.cpp.
References llvm::sys::getHostNumPhysicalCores(), and hardware_concurrency().
Referenced by call_once(), llvm::lto::InputFile::getSingleBitcodeModule(), and llvm_is_multithreaded().
| unsigned llvm::HexagonGetLastSlot | ( | ) |
Definition at line 128 of file HexagonMCTargetDesc.cpp.
References Address, assert(), llvm::HexagonMCInstrInfo::bundleSize(), llvm::LCOMM::ByteAlignment, llvm::StringRef::empty(), llvm::Hexagon_MC::GetELFFlags(), HEXAGON_PACKET_SIZE, llvm::HexagonMCELFStreamer::HexagonMCEmitCommonSymbol(), llvm::HexagonMCELFStreamer::HexagonMCEmitLocalCommonSymbol(), llvm::HexagonMCInstrInfo::isBundle(), llvm::HexagonMCInstrInfo::isMemReorderDisabled(), llvm::MCInstPrinter::printInst(), llvm::StringRef::rsplit(), llvm::MCAssembler::setELFHeaderEFlags(), Size, llvm::StringRef::split(), and llvm::ARMBuildAttrs::Symbol.
Referenced by llvm::HexagonMCInstrInfo::getOtherReservedSlots().
| void llvm::HexagonLowerToMC | ( | const MCInstrInfo & | MCII, |
| const MachineInstr * | MI, | ||
| MCInst & | MCB, | ||
| HexagonAsmPrinter & | AP | ||
| ) |
Definition at line 97 of file HexagonMCInstLower.cpp.
References llvm::MCInst::addOperand(), assert(), llvm::APFloat::bitcastToAPInt(), llvm::HexagonMCExpr::create(), llvm::MCConstantExpr::create(), llvm::MCSymbolRefExpr::create(), llvm::MCOperand::createExpr(), llvm::MCOperand::createInst(), llvm::MCOperand::createReg(), llvm::numbers::e, errs(), llvm::HexagonMCInstrInfo::extendIfNeeded(), llvm::MachineOperand::getBlockAddress(), llvm::AsmPrinter::GetBlockAddressSymbol(), llvm::AsmPrinter::GetCPISymbol(), llvm::AsmPrinter::GetExternalSymbolSymbol(), llvm::MachineOperand::getFPImm(), llvm::MachineOperand::getGlobal(), llvm::MachineOperand::getImm(), llvm::MachineOperand::getIndex(), llvm::AsmPrinter::GetJTISymbol(), llvm::MachineOperand::getMBB(), llvm::MachineInstr::getNumOperands(), llvm::MCInst::getOpcode(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::APInt::getRawData(), llvm::MachineOperand::getReg(), llvm::AsmPrinter::getSymbol(), llvm::MachineBasicBlock::getSymbol(), llvm::MachineOperand::getSymbolName(), GetSymbolRef(), llvm::MachineOperand::getTargetFlags(), llvm::MachineOperand::getType(), llvm::ConstantFP::getValueAPF(), llvm::HexagonAsmPrinter::HexagonProcessInstruction(), llvm::HexagonII::HMOTF_ConstExtended, llvm::MachineOperand::isImplicit(), llvm_unreachable, llvm::MachineOperand::MO_BlockAddress, llvm::MachineOperand::MO_ConstantPoolIndex, llvm::MachineOperand::MO_ExternalSymbol, llvm::MachineOperand::MO_FPImmediate, llvm::MachineOperand::MO_GlobalAddress, llvm::MachineOperand::MO_Immediate, llvm::MachineOperand::MO_JumpTableIndex, llvm::MachineOperand::MO_MachineBasicBlock, llvm::MachineOperand::MO_Register, llvm::MachineOperand::MO_RegisterMask, llvm::AsmPrinter::OutContext, llvm::MachineInstr::print(), llvm::HexagonMCInstrInfo::setInnerLoop(), llvm::HexagonMCInstrInfo::setMustExtend(), llvm::MCInst::setOpcode(), and llvm::HexagonMCInstrInfo::setOuterLoop().
Referenced by llvm::HexagonAsmPrinter::EmitInstruction().
| bool llvm::HexagonMCShuffle | ( | MCContext & | Context, |
| bool | Fatal, | ||
| MCInstrInfo const & | MCII, | ||
| MCSubtargetInfo const & | STI, | ||
| MCInst & | MCB | ||
| ) |
Definition at line 104 of file HexagonMCShuffler.cpp.
References llvm::HexagonMCInstrInfo::bundleSize(), dbgs(), DisableShuffle, llvm::HexagonMCInstrInfo::isBundle(), LLVM_DEBUG, and llvm::HexagonMCShuffler::reshuffleTo().
Referenced by llvm::HexagonMCInstrInfo::canonicalizePacket(), llvm::HexagonMCShuffler::HexagonMCShuffler(), and llvm::HexagonMCInstrInfo::tryCompound().
| bool llvm::HexagonMCShuffle | ( | MCContext & | Context, |
| MCInstrInfo const & | MCII, | ||
| MCSubtargetInfo const & | STI, | ||
| MCInst & | MCB, | ||
| MCInst const & | AddMI, | ||
| int | fixupCount | ||
| ) |
Definition at line 182 of file HexagonMCShuffler.cpp.
References llvm::HexagonMCInstrInfo::bundleSize(), DisableShuffle, llvm::HexagonMCInstrInfo::hasDuplex(), llvm::HexagonMCInstrInfo::hasImmExt(), HEXAGON_PACKET_SIZE, llvm::HexagonMCInstrInfo::isBundle(), and llvm::HexagonMCShuffler::reshuffleTo().
| bool llvm::HexagonMCShuffle | ( | MCContext & | Context, |
| MCInstrInfo const & | MCII, | ||
| MCSubtargetInfo const & | STI, | ||
| MCInst & | MCB, | ||
| SmallVector< DuplexCandidate, 8 > | possibleDuplexes | ||
| ) |
Definition at line 132 of file HexagonMCShuffler.cpp.
References llvm::HexagonMCInstrInfo::bundleSize(), llvm::HexagonMCShuffler::copyTo(), dbgs(), DisableShuffle, llvm::HexagonMCInstrInfo::isBundle(), LLVM_DEBUG, llvm::SmallVectorImpl< T >::pop_back_val(), llvm::HexagonMCInstrInfo::replaceDuplex(), llvm::HexagonMCShuffler::reshuffleTo(), llvm::SmallVectorBase::size(), and llvm::HexagonShuffler::size().
hexdigit - Return the hexadecimal character for the given number X (which should be less than 16).
Definition at line 36 of file StringExtras.h.
References X.
Referenced by llvm::MCFragment::dump(), llvm::dwarf::CIE::dump(), printEscapedString(), printMetadataIdentifier(), utohexstr(), write_hex(), and llvm::yaml::BinaryRef::writeAsHex().
Interpret the given character C as a hexadecimal digit and return its value.
If C is not a valid hex digit, -1U is returned.
Definition at line 68 of file StringExtras.h.
Referenced by llvm::detail::IEEEFloat::convertFromZeroExtendedInteger(), llvm::detail::IEEEFloat::convertToHexString(), hexFromNibbles(), isHexDigit(), isOperator(), trailingHexadecimalFraction(), UnEscapeLexed(), unescapeQuotedString(), and llvm::yaml::BinaryRef::writeAsBinary().
Definition at line 160 of file StringExtras.h.
References assert(), and hexDigitValue().
Referenced by fromHex().
|
inlinestatic |
Definition at line 149 of file Sparc.h.
Referenced by HIX22(), replaceFI(), and llvm::SparcFrameLowering::SparcFrameLowering().
|
inlinestatic |
Definition at line 100 of file VE.h.
Referenced by llvm::VEFrameLowering::emitEpilogueInsns().
|
inline |
Return the high 32 bits of a 64 bit value.
Definition at line 320 of file MathExtras.h.
Referenced by bitOpWithConstantIsReducible(), convertIntToDoubleImm(), covertDoubleImmToSingleImm(), findMemSDNode(), isDebug(), KnuthDiv(), makeCombineInst(), and llvm::AMDGPUTargetLowering::PerformDAGCombine().
|
inlinestatic |
Definition at line 157 of file Sparc.h.
References HI22().
Referenced by replaceFI(), and llvm::SparcFrameLowering::SparcFrameLowering().
| void llvm::hoistAllInstructionsInto | ( | BasicBlock * | DomBlock, |
| Instruction * | InsertPt, | ||
| BasicBlock * | BB | ||
| ) |
Hoist all of the instructions in the IfBlock to the dominant block DomBlock, by moving its instructions to the insertion point InsertPt.
The moved instructions receive the insertion point debug location values (DILocations) and their debug intrinsic instructions are removed.
Definition at line 2608 of file Local.cpp.
References llvm::BasicBlock::begin(), dropDebugUsers(), llvm::Instruction::dropUnknownNonDebugMetadata(), llvm::BasicBlock::end(), llvm::Instruction::eraseFromParent(), llvm::Instruction::getDebugLoc(), llvm::BasicBlock::getInstList(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::BasicBlock::getTerminator(), I, llvm::ARM_PROC::IE, llvm::Value::isUsedByMetadata(), P, llvm::Instruction::setDebugLoc(), and llvm::iplist_impl< IntrusiveListT, TraitsT >::splice().
Referenced by FoldTwoEntryPHINode(), and getKnownAlignment().
| bool llvm::hoistRegion | ( | DomTreeNode * | N, |
| AliasAnalysis * | AA, | ||
| LoopInfo * | LI, | ||
| DominatorTree * | DT, | ||
| TargetLibraryInfo * | TLI, | ||
| Loop * | CurLoop, | ||
| AliasSetTracker * | CurAST, | ||
| MemorySSAUpdater * | MSSAU, | ||
| ScalarEvolution * | SE, | ||
| ICFLoopSafetyInfo * | SafetyInfo, | ||
| SinkAndHoistLICMFlags & | Flags, | ||
| OptimizationRemarkEmitter * | ORE | ||
| ) |
Walk the specified region of the CFG (defined by all blocks dominated by the specified block, and that are in the current loop) in depth first order w.r.t the DominatorTree.
This allows us to visit definitions before uses, allowing us to hoist a loop body in one pass without iteration. Takes DomTreeNode, AliasAnalysis, LoopInfo, DominatorTree, DataLayout, TargetLibraryInfo, Loop, AliasSet information for all instructions of the loop and loop safety information as arguments. Diagnostics is emitted via ORE. It returns changed status.
This allows us to visit definitions before uses, allowing us to hoist a loop body in one pass without iteration.
Definition at line 798 of file LICM.cpp.
References all_of(), assert(), C, canSinkOrHoistInst(), ConstantFoldInstruction(), ControlFlowHoisting, llvm::AliasSetTracker::copyValue(), dbgs(), llvm::ICFLoopSafetyInfo::doesNotWriteMemoryBefore(), llvm::DominatorTree::dominates(), E, eraseInstruction(), llvm::CallingConv::Fast, llvm::ConstantFP::get(), llvm::DomTreeNodeBase< NodeT >::getBlock(), llvm::Module::getDataLayout(), llvm::Instruction::getFastMathFlags(), llvm::LoopBase< BlockT, LoopT >::getLoopPreheader(), llvm::MemorySSAUpdater::getMemorySSA(), llvm::Instruction::getModule(), llvm::Value::getName(), llvm::DominatorTreeBase< NodeT, IsPostDom >::getNode(), llvm::Instruction::getOpcode(), llvm::User::getOperand(), llvm::Instruction::getParent(), llvm::BasicBlock::getTerminator(), llvm::Instruction::hasAllowReciprocal(), llvm::Loop::hasLoopInvariantOperands(), hoist(), I, llvm::ICFLoopSafetyInfo::insertInstructionTo(), inSubLoop(), llvm::ICFLoopSafetyInfo::isGuaranteedToExecute(), isGuard(), isInstructionTriviallyDead(), llvm::Loop::isLoopInvariant(), isSafeToExecuteUnconditionally(), LLVM_DEBUG, llvm::PatternMatch::match(), moveInstructionBefore(), llvm::LoopBlocksRPO::perform(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::Value::replaceAllUsesWith(), reverse(), llvm::Value::use_empty(), llvm::DominatorTreeBase< NodeT, IsPostDom >::verify(), llvm::LoopInfoBase< BlockT, LoopT >::verify(), VerifyMemorySSA, and llvm::MemorySSA::verifyMemorySSA().
Referenced by createLICMPass().
|
static |
Definition at line 527 of file APFloat.cpp.
References assert().
Referenced by llvm::detail::IEEEFloat::convertFromZeroExtendedInteger().
| file_magic llvm::identify_magic | ( | StringRef | magic | ) |
Identify the type of a binary file based on how magical it is.
Identify the magic in magic.
Definition at line 34 of file Magic.cpp.
References llvm::COFF::BigObjMagic, llvm::file_magic::coff_import_library, offsetof, llvm::StringRef::size(), startswith(), and llvm::file_magic::unknown.
Referenced by appendFile(), llvm::object::createBinary(), doList(), llvm::object::IRObjectFile::findBitcodeInMemBuffer(), getSymbols(), identify_magic(), llvm::jitlink::jitLink(), llvm::object::ObjectFile::makeTriple(), llvm::file_magic::operator Impl(), and llvm::object::SymbolicFile::SymbolicFile().
| std::error_code llvm::identify_magic | ( | const Twine & | path, |
| file_magic & | result | ||
| ) |
Get and identify path's type based on its content.
| path | Input path. |
| result | Set to the type of file, or file_magic::unknown. |
Definition at line 224 of file Magic.cpp.
References llvm::MemoryBuffer::getFile(), and identify_magic().
| idf_iterator<T> llvm::idf_begin | ( | const T & | G | ) |
Definition at line 265 of file DepthFirstIterator.h.
References llvm::df_iterator< Inverse< T >, SetTy, External >::begin().
Referenced by inverse_depth_first(), and llvm::GVNHoist::rank().
| idf_iterator<T> llvm::idf_end | ( | const T & | G | ) |
Definition at line 270 of file DepthFirstIterator.h.
References llvm::df_iterator< Inverse< T >, SetTy, External >::end().
Referenced by inverse_depth_first(), and llvm::GVNHoist::rank().
| idf_ext_iterator<T, SetTy> llvm::idf_ext_begin | ( | const T & | G, |
| SetTy & | S | ||
| ) |
Definition at line 290 of file DepthFirstIterator.h.
References llvm::df_iterator< Inverse< T >, SetTy, External >::begin().
Referenced by inverse_depth_first_ext().
| idf_ext_iterator<T, SetTy> llvm::idf_ext_end | ( | const T & | G, |
| SetTy & | S | ||
| ) |
Definition at line 295 of file DepthFirstIterator.h.
References llvm::df_iterator< Inverse< T >, SetTy, External >::end().
Referenced by inverse_depth_first_ext().
| std::error_code llvm::inconvertibleErrorCode | ( | ) |
The value returned by this function can be returned from convertToErrorCode for Error values where no sensible translation to std::error_code exists.
It should only be used in this situation, and should never be used where a sensible conversion to std::error_code is available, as attempts to convert to/from this error will result in a fatal error. (i.e. it is a programmatic error to try to convert such a value).
Definition at line 77 of file Error.cpp.
Referenced by llvm::OrcCBindingsStack::addIRModuleLazy(), llvm::jitlink::InProcessMemoryManager::allocate(), llvm::orc::LLJIT::applyDataLayout(), checkParametrizedPassName(), llvm::remarks::EndOfFileError::convertToErrorCode(), llvm::BinaryStreamError::convertToErrorCode(), llvm::mca::InstructionError< T >::convertToErrorCode(), llvm::remarks::YAMLParseError::convertToErrorCode(), llvm::UndefVarError::convertToErrorCode(), llvm::SymbolRemappingParseError::convertToErrorCode(), llvm::ErrorDiagnostic::convertToErrorCode(), llvm::DWARFDebugNames::SentinelError::convertToErrorCode(), llvm::NotFoundError::convertToErrorCode(), llvm::json::ParseError::convertToErrorCode(), createError(), llvm::orc::createLocalCompileCallbackManager(), llvm::orc::createLocalLazyCallThroughManager(), createResolverError(), llvm::orc::JITTargetMachineBuilder::createTargetMachine(), llvm::RuntimeDyldMachOAArch64::decodeAddend(), llvm::RuntimeDyldMachOARM::decodeAddend(), llvm::orc::JITCompileCallbackManager::executeCompileCallback(), llvm::RuntimeDyldImpl::finalizeAsync(), llvm::DWARFDie::getLocations(), llvm::lto::LTO::getMaxTasks(), llvm::pdb::hashTagRecord(), jitLinkForORC(), llvm::PassPlugin::Load(), llvm::orc::DynamicLibrarySearchGenerator::Load(), llvm::orc::SimpleCompiler::operator()(), llvm::PassBuilder::parseAAPipeline(), parseCachePruningPolicy(), parseDuration(), llvm::PassBuilder::parsePassPipeline(), llvm::LinkDiagnosticInfo::print(), llvm::RuntimeDyldMachOAArch64::processRelocationRef(), llvm::irsymtab::readBitcode(), and llvm::MCDwarfLineTableHeader::tryGetFile().
| bool llvm::inferLibFuncAttributes | ( | Function & | F, |
| const TargetLibraryInfo & | TLI | ||
| ) |
Analyze the name and prototype of the given function and set any applicable attributes.
If the library function is unavailable, this doesn't modify it.
Returns true if any attributes were set and false otherwise.
Definition at line 147 of file BuildLibCalls.cpp.
References llvm::TargetLibraryInfo::getLibFunc(), llvm::GlobalValue::getParent(), llvm::Module::getRtLibUseGOT(), llvm::TargetLibraryInfo::has(), isLibFreeFunction(), isReallocLikeFn(), LLVM_FALLTHROUGH, setDoesNotAccessMemory(), setDoesNotAlias(), setDoesNotCapture(), setDoesNotFreeMemory(), setDoesNotThrow(), setNonLazyBind(), setOnlyAccessesArgMemory(), setOnlyReadsMemory(), setRetDoesNotAlias(), setRetNonNull(), and setReturnedArg().
Referenced by emitCalloc(), emitFGetCUnlocked(), emitFGetSUnlocked(), emitFPutC(), emitFPutCUnlocked(), emitFPutS(), emitFPutSUnlocked(), emitFReadUnlocked(), emitFWrite(), emitFWriteUnlocked(), emitLibCall(), emitMalloc(), emitPutChar(), emitPutS(), inferAllPrototypeAttributes(), inferLibFuncAttributes(), and isLocallyOpenedFile().
| bool llvm::inferLibFuncAttributes | ( | Module * | M, |
| StringRef | Name, | ||
| const TargetLibraryInfo & | TLI | ||
| ) |
Definition at line 139 of file BuildLibCalls.cpp.
References F(), llvm::Module::getFunction(), and inferLibFuncAttributes().
|
static |
Check if the DIE at Idx is in the scope of a function.
Definition at line 15 of file DWARFLinkerCompileUnit.cpp.
References llvm::DWARFUnit::getDIEAtIndex(), llvm::CompileUnit::getInfo(), llvm::CompileUnit::getOrigUnit(), llvm::DWARFDie::getTag(), and llvm::CompileUnit::DIEInfo::ParentIdx.
Referenced by llvm::CompileUnit::markEverythingAsKept().
| void llvm::initializeAAEvalLegacyPassPass | ( | PassRegistry & | ) |
Referenced by llvm::AAEvalLegacyPass::AAEvalLegacyPass(), and initializeAnalysis().
| void llvm::initializeAArch64A53Fix835769Pass | ( | PassRegistry & | ) |
Referenced by isSecondInstructionInSequence(), and LLVMInitializeAArch64Target().
| void llvm::initializeAArch64A57FPLoadBalancingPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
| void llvm::initializeAArch64AdvSIMDScalarPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
| void llvm::initializeAArch64BranchTargetsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
| void llvm::initializeAArch64CollectLOHPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
| void llvm::initializeAArch64CompressJumpTablesPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
| void llvm::initializeAArch64CondBrTuningPass | ( | PassRegistry & | ) |
| void llvm::initializeAArch64ConditionalComparesPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
| void llvm::initializeAArch64ConditionOptimizerPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
| void llvm::initializeAArch64DeadRegisterDefinitionsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
| void llvm::initializeAArch64ExpandPseudoPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
| void llvm::initializeAArch64LoadStoreOptPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
| void llvm::initializeAArch64PreLegalizerCombinerPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
| void llvm::initializeAArch64PromoteConstantPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
| void llvm::initializeAArch64RedundantCopyEliminationPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
| void llvm::initializeAArch64SIMDInstrOptPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
| void llvm::initializeAArch64SpeculationHardeningPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
| void llvm::initializeAArch64StackTaggingPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
| void llvm::initializeAArch64StackTaggingPreRAPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
| void llvm::initializeAArch64StorePairSuppressPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
| void llvm::initializeAAResultsWrapperPassPass | ( | PassRegistry & | ) |
| void llvm::initializeADCELegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts(), and llvm::ADCEPass::run().
| void llvm::initializeAddDiscriminatorsLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeTransformUtils().
| void llvm::initializeAddressSanitizerLegacyPassPass | ( | PassRegistry & | ) |
Referenced by GetCtorAndDtorPriority(), and initializeInstrumentation().
| aggressive Combine pattern based false void llvm::initializeAggressiveInstCombine | ( | PassRegistry & | Registry | ) |
Initialize all passes linked into the AggressiveInstCombine library.
Definition at line 404 of file AggressiveInstCombine.cpp.
References initializeAggressiveInstCombinerLegacyPassPass().
| void llvm::initializeAggressiveInstCombinerLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeAggressiveInstCombine(), and LLVMInitializeAggressiveInstCombiner().
| void llvm::initializeAliasSetPrinterPass | ( | PassRegistry & | ) |
Referenced by llvm::AliasSetTracker::dump(), and initializeAnalysis().
| void llvm::initializeAlignmentFromAssumptionsPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
|
inline |
InitializeAllAsmParsers - The main program should call this function if it wants all asm parsers that LLVM is configured to support, to make them available via the TargetRegistry.
It is legal for a client to make multiple calls to this function.
Definition at line 95 of file TargetSelect.h.
|
inline |
InitializeAllAsmPrinters - The main program should call this function if it wants all asm printers that LLVM is configured to support, to make them available via the TargetRegistry.
It is legal for a client to make multiple calls to this function.
Definition at line 85 of file TargetSelect.h.
|
inline |
InitializeAllDisassemblers - The main program should call this function if it wants all disassemblers that LLVM is configured to support, to make them available via the TargetRegistry.
It is legal for a client to make multiple calls to this function.
Definition at line 105 of file TargetSelect.h.
|
inline |
InitializeAllTargetInfos - The main program should call this function if it wants access to all available targets that LLVM is configured to support, to make them available via the TargetRegistry.
It is legal for a client to make multiple calls to this function.
Definition at line 52 of file TargetSelect.h.
Referenced by InitializeAllTargets().
|
inline |
InitializeAllTargetMCs - The main program should call this function if it wants access to all available target MC that LLVM is configured to support, to make them available via the TargetRegistry.
It is legal for a client to make multiple calls to this function.
Definition at line 75 of file TargetSelect.h.
|
inline |
InitializeAllTargets - The main program should call this function if it wants access to all available target machines that LLVM is configured to support, to make them available via the TargetRegistry.
It is legal for a client to make multiple calls to this function.
Definition at line 62 of file TargetSelect.h.
References InitializeAllTargetInfos().
| void llvm::initializeAlwaysInlinerLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeIPO(), and llvm::AlwaysInlinerPass::run().
| void llvm::initializeAMDGPUAAWrapperPassPass | ( | PassRegistry & | ) |
Referenced by llvm::AMDGPUAAWrapperPass::AMDGPUAAWrapperPass(), and LLVMInitializeAMDGPUTarget().
| void llvm::initializeAMDGPUAlwaysInlinePass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
| void llvm::initializeAMDGPUAnnotateKernelFeaturesPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
| void llvm::initializeAMDGPUAnnotateUniformValuesPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
| void llvm::initializeAMDGPUArgumentUsageInfoPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
| void llvm::initializeAMDGPUAtomicOptimizerPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
| void llvm::initializeAMDGPUCFGStructurizerPass | ( | PassRegistry & | ) |
| void llvm::initializeAMDGPUCodeGenPreparePass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
| void llvm::initializeAMDGPUDAGToDAGISelPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
| void llvm::initializeAMDGPUExternalAAWrapperPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
| void llvm::initializeAMDGPUFixFunctionBitcastsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
| void llvm::initializeAMDGPUInlinerPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
| void llvm::initializeAMDGPULowerIntrinsicsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
| void llvm::initializeAMDGPULowerKernelArgumentsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
| void llvm::initializeAMDGPULowerKernelAttributesPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
| void llvm::initializeAMDGPUMachineCFGStructurizerPass | ( | PassRegistry & | ) |
| void llvm::initializeAMDGPUOpenCLEnqueuedBlockLoweringPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
| void llvm::initializeAMDGPUPerfHintAnalysisPass | ( | PassRegistry & | ) |
| void llvm::initializeAMDGPUPrintfRuntimeBindingPass | ( | PassRegistry & | ) |
Referenced by createAMDGPUPrintfRuntimeBinding(), and LLVMInitializeAMDGPUTarget().
| void llvm::initializeAMDGPUPromoteAllocaPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
| void llvm::initializeAMDGPUPropagateAttributesEarlyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
| void llvm::initializeAMDGPUPropagateAttributesLatePass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
| void llvm::initializeAMDGPURewriteOutArgumentsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
| void llvm::initializeAMDGPUSimplifyLibCallsPass | ( | PassRegistry & | ) |
Referenced by llvm::AMDGPULibCalls::AMDGPULibCalls(), and LLVMInitializeAMDGPUTarget().
| void llvm::initializeAMDGPUUnifyDivergentExitNodesPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
| void llvm::initializeAMDGPUUnifyMetadataPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
| void llvm::initializeAMDGPUUseNativeCallsPass | ( | PassRegistry & | ) |
Referenced by llvm::AMDGPULibCalls::AMDGPULibCalls(), and LLVMInitializeAMDGPUTarget().
| void llvm::initializeAnalysis | ( | PassRegistry & | Registry | ) |
Initialize all passes linked into the Analysis library.
initializeAnalysis - Initialize all passes linked into the Analysis library.
Definition at line 21 of file Analysis.cpp.
References initializeAAEvalLegacyPassPass(), initializeAAResultsWrapperPassPass(), initializeAliasSetPrinterPass(), initializeBasicAAWrapperPassPass(), initializeBlockFrequencyInfoWrapperPassPass(), initializeBranchProbabilityInfoWrapperPassPass(), initializeCallGraphDOTPrinterPass(), initializeCallGraphPrinterLegacyPassPass(), initializeCallGraphViewerPass(), initializeCallGraphWrapperPassPass(), initializeCFGOnlyPrinterLegacyPassPass(), initializeCFGOnlyViewerLegacyPassPass(), initializeCFGPrinterLegacyPassPass(), initializeCFGViewerLegacyPassPass(), initializeCFLAndersAAWrapperPassPass(), initializeCFLSteensAAWrapperPassPass(), initializeCostModelAnalysisPass(), initializeDelinearizationPass(), initializeDemandedBitsWrapperPassPass(), initializeDependenceAnalysisWrapperPassPass(), initializeDominanceFrontierWrapperPassPass(), initializeDomOnlyPrinterPass(), initializeDomOnlyViewerPass(), initializeDomPrinterPass(), initializeDomViewerPass(), initializeGlobalsAAWrapperPassPass(), initializeInstCountPass(), initializeIntervalPartitionPass(), initializeIVUsersWrapperPassPass(), initializeLazyBlockFrequencyInfoPassPass(), initializeLazyBranchProbabilityInfoPassPass(), initializeLazyValueInfoPrinterPass(), initializeLazyValueInfoWrapperPassPass(), initializeLCSSAVerificationPassPass(), initializeLegacyDivergenceAnalysisPass(), initializeLintPass(), initializeLoopInfoWrapperPassPass(), initializeMemDepPrinterPass(), initializeMemDerefPrinterPass(), initializeMemoryDependenceWrapperPassPass(), initializeMemorySSAPrinterLegacyPassPass(), initializeMemorySSAWrapperPassPass(), initializeModuleDebugInfoPrinterPass(), initializeModuleSummaryIndexWrapperPassPass(), initializeMustBeExecutedContextPrinterPass(), initializeMustExecutePrinterPass(), initializeObjCARCAAWrapperPassPass(), initializeOptimizationRemarkEmitterWrapperPassPass(), initializePhiValuesWrapperPassPass(), initializePostDominatorTreeWrapperPassPass(), initializePostDomOnlyPrinterPass(), initializePostDomOnlyViewerPass(), initializePostDomPrinterPass(), initializePostDomViewerPass(), initializeRegionInfoPassPass(), initializeRegionOnlyPrinterPass(), initializeRegionOnlyViewerPass(), initializeRegionPrinterPass(), initializeRegionViewerPass(), initializeScalarEvolutionWrapperPassPass(), initializeSCEVAAWrapperPassPass(), initializeScopedNoAliasAAWrapperPassPass(), initializeStackSafetyGlobalInfoWrapperPassPass(), initializeStackSafetyInfoWrapperPassPass(), initializeTargetTransformInfoWrapperPassPass(), and initializeTypeBasedAAWrapperPassPass().
Referenced by LLVMInitializeAnalysis(), and LLVMInitializeIPA().
| void llvm::initializeARCBranchFinalizePass | ( | PassRegistry & | Registry | ) |
| void llvm::initializeARCOptAddrModePass | ( | PassRegistry & | ) |
| void llvm::initializeArgPromotionPass | ( | PassRegistry & | ) |
Referenced by initializeIPO(), llvm::ArgumentPromotionPass::run(), and llvm::LTOCodeGenerator::~LTOCodeGenerator().
| void llvm::initializeARMConstantIslandsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeARMTarget().
| void llvm::initializeARMExecutionDomainFixPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeARMTarget().
| void llvm::initializeARMExpandPseudoPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeARMTarget().
| void llvm::initializeARMLoadStoreOptPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeARMTarget().
| void llvm::initializeARMLowOverheadLoopsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeARMTarget().
| void llvm::initializeARMParallelDSPPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeARMTarget().
| void llvm::initializeARMPreAllocLoadStoreOptPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeARMTarget().
| void llvm::initializeASanGlobalsMetadataWrapperPassPass | ( | PassRegistry & | ) |
Referenced by GetCtorAndDtorPriority().
| void llvm::initializeAssumptionCacheTrackerPass | ( | PassRegistry & | ) |
Referenced by llvm::AssumptionCacheTracker::AssumptionCacheTracker().
| void llvm::initializeAtomicExpandPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeAttributorLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeIPO(), llvm::AttributorPass::run(), and llvm::LTOCodeGenerator::~LTOCodeGenerator().
| void llvm::initializeAVRExpandPseudoPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAVRTarget().
| void llvm::initializeAVRRelaxMemPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAVRTarget().
| void llvm::initializeBarrierNoopPass | ( | PassRegistry & | ) |
Referenced by initializeIPO().
| void llvm::initializeBasicAAWrapperPassPass | ( | PassRegistry & | ) |
| void llvm::initializeBDCELegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts(), and llvm::BDCEPass::run().
| void llvm::initializeBlockExtractorPass | ( | PassRegistry & | ) |
Referenced by initializeIPO().
| void llvm::initializeBlockFrequencyInfoWrapperPassPass | ( | PassRegistry & | ) |
| void llvm::initializeBoundsCheckingLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeInstrumentation(), and llvm::BoundsCheckingPass::run().
| void llvm::initializeBPFAbstractMemberAccessPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeBPFTarget().
| void llvm::initializeBPFMIPeepholePass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeBPFTarget().
| void llvm::initializeBPFMIPeepholeTruncElimPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeBPFTarget().
| void llvm::initializeBPFMIPreEmitCheckingPass | ( | PassRegistry & | ) |
| void llvm::initializeBPFMIPreEmitPeepholePass | ( | PassRegistry & | ) |
| void llvm::initializeBPFMISimplifyPatchablePass | ( | PassRegistry & | ) |
| void llvm::initializeBranchFolderPassPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeBranchProbabilityInfoWrapperPassPass | ( | PassRegistry & | ) |
| void llvm::initializeBranchRelaxationPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeBreakCriticalEdgesPass | ( | PassRegistry & | ) |
Referenced by initializeTransformUtils().
| void llvm::initializeBreakFalseDepsPass | ( | PassRegistry & | ) |
Referenced by llvm::BreakFalseDeps::BreakFalseDeps().
| void llvm::initializeCalledValuePropagationLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeIPO(), and llvm::CalledValuePropagationPass::run().
| void llvm::initializeCallGraphDOTPrinterPass | ( | PassRegistry & | ) |
Referenced by llvm::AnalysisCallGraphWrapperPassTraits::getGraph(), and initializeAnalysis().
| void llvm::initializeCallGraphPrinterLegacyPassPass | ( | PassRegistry & | ) |
Referenced by llvm::CallGraphWrapperPass::dump(), and initializeAnalysis().
| void llvm::initializeCallGraphViewerPass | ( | PassRegistry & | ) |
Referenced by llvm::AnalysisCallGraphWrapperPassTraits::getGraph(), and initializeAnalysis().
| void llvm::initializeCallGraphWrapperPassPass | ( | PassRegistry & | ) |
Referenced by llvm::CallGraphWrapperPass::CallGraphWrapperPass(), and initializeAnalysis().
| void llvm::initializeCallSiteSplittingLegacyPassPass | ( | PassRegistry & | ) |
Referenced by doCallSiteSplitting(), and initializeScalarOpts().
| void llvm::initializeCanonicalizeAliasesLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeTransformUtils().
| void llvm::initializeCFGOnlyPrinterLegacyPassPass | ( | PassRegistry & | ) |
Referenced by INITIALIZE_PASS(), and initializeAnalysis().
| void llvm::initializeCFGOnlyViewerLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis(), and llvm::CFGViewerPass::run().
| void llvm::initializeCFGPrinterLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis(), and writeCFGToDotFile().
| void llvm::initializeCFGSimplifyPassPass | ( | PassRegistry & | ) |
| void llvm::initializeCFGuardLongjmpPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeCFGuardPass | ( | PassRegistry & | ) |
| void llvm::initializeCFGViewerLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis().
| void llvm::initializeCFIInstrInserterPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeCFLAndersAAWrapperPassPass | ( | PassRegistry & | ) |
Referenced by llvm::CFLAndersAAWrapperPass::CFLAndersAAWrapperPass(), and initializeAnalysis().
| void llvm::initializeCFLSteensAAWrapperPassPass | ( | PassRegistry & | ) |
Referenced by llvm::CFLSteensAAWrapperPass::CFLSteensAAWrapperPass(), and initializeAnalysis().
| void llvm::initializeCodeGen | ( | PassRegistry & | Registry | ) |
Initialize all passes linked into the CodeGen library.
initializeCodeGen - Initialize all passes linked into the CodeGen library.
Definition at line 21 of file CodeGen.cpp.
References initializeAtomicExpandPass(), initializeBranchFolderPassPass(), initializeBranchRelaxationPass(), initializeCFGuardLongjmpPass(), initializeCFIInstrInserterPass(), initializeCodeGenPreparePass(), initializeDeadMachineInstructionElimPass(), initializeDetectDeadLanesPass(), initializeDwarfEHPreparePass(), initializeEarlyIfConverterPass(), initializeEarlyIfPredicatorPass(), initializeEarlyMachineLICMPass(), initializeEarlyTailDuplicatePass(), initializeExpandMemCmpPassPass(), initializeExpandPostRAPass(), initializeFEntryInserterPass(), initializeFinalizeISelPass(), initializeFinalizeMachineBundlesPass(), initializeFuncletLayoutPass(), initializeGCMachineCodeAnalysisPass(), initializeGCModuleInfoPass(), initializeHardwareLoopsPass(), initializeIfConverterPass(), initializeImplicitNullChecksPass(), initializeIndirectBrExpandPassPass(), initializeInterleavedAccessPass(), initializeInterleavedLoadCombinePass(), initializeLiveDebugValuesPass(), initializeLiveDebugVariablesPass(), initializeLiveIntervalsPass(), initializeLiveRangeShrinkPass(), initializeLiveStacksPass(), initializeLiveVariablesPass(), initializeLocalStackSlotPassPass(), initializeLowerIntrinsicsPass(), initializeMachineBlockFrequencyInfoPass(), initializeMachineBlockPlacementPass(), initializeMachineBlockPlacementStatsPass(), initializeMachineCombinerPass(), initializeMachineCopyPropagationPass(), initializeMachineCSEPass(), initializeMachineDominatorTreePass(), initializeMachineFunctionPrinterPassPass(), initializeMachineLICMPass(), initializeMachineLoopInfoPass(), initializeMachineModuleInfoWrapperPassPass(), initializeMachineOptimizationRemarkEmitterPassPass(), initializeMachineOutlinerPass(), initializeMachinePipelinerPass(), initializeMachinePostDominatorTreePass(), initializeMachineRegionInfoPassPass(), initializeMachineSchedulerPass(), initializeMachineSinkingPass(), initializeMachineVerifierPassPass(), initializeMIRCanonicalizerPass(), initializeMIRNamerPass(), initializeModuloScheduleTestPass(), initializeOptimizePHIsPass(), initializePatchableFunctionPass(), initializePeepholeOptimizerPass(), initializePEIPass(), initializePHIEliminationPass(), initializePostMachineSchedulerPass(), initializePostRAHazardRecognizerPass(), initializePostRAMachineSinkingPass(), initializePostRASchedulerPass(), initializePreISelIntrinsicLoweringLegacyPassPass(), initializeProcessImplicitDefsPass(), initializeRABasicPass(), initializeRAGreedyPass(), initializeRegAllocFastPass(), initializeRegisterCoalescerPass(), initializeRegUsageInfoCollectorPass(), initializeRegUsageInfoPropagationPass(), initializeRenameIndependentSubregsPass(), initializeSafeStackLegacyPassPass(), initializeScalarizeMaskedMemIntrinPass(), initializeShrinkWrapPass(), initializeSlotIndexesPass(), initializeStackColoringPass(), initializeStackMapLivenessPass(), initializeStackProtectorPass(), initializeStackSlotColoringPass(), initializeTailDuplicatePass(), initializeTargetPassConfigPass(), initializeTwoAddressInstructionPassPass(), initializeTypePromotionPass(), initializeUnpackMachineBundlesPass(), initializeUnreachableBlockElimLegacyPassPass(), initializeUnreachableMachineBlockElimPass(), initializeVirtRegMapPass(), initializeVirtRegRewriterPass(), initializeWasmEHPreparePass(), initializeWinEHPreparePass(), and initializeXRayInstrumentationPass().
Referenced by LLVMInitializeCodeGen(), and llvm::TargetPassConfig::TargetPassConfig().
| void llvm::initializeCodeGenPreparePass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeConstantHoistingLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
| void llvm::initializeConstantMergeLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeIPO(), llvm::ConstantMergePass::run(), and llvm::LTOCodeGenerator::~LTOCodeGenerator().
| void llvm::initializeConstantPropagationPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
| void llvm::initializeControlHeightReductionLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeInstrumentation(), and parseCHRFilterFiles().
| void llvm::initializeCore | ( | PassRegistry & | Registry | ) |
Initialize all passes linked into the TransformUtils library.
Definition at line 47 of file Core.cpp.
References initializeDominatorTreeWrapperPassPass(), initializePrintFunctionPassWrapperPass(), initializePrintModulePassWrapperPass(), initializeSafepointIRVerifierPass(), and initializeVerifierLegacyPassPass().
Referenced by LLVMInitializeCore().
| void llvm::initializeCoroCleanupLegacyPass | ( | PassRegistry & | ) |
Referenced by initializeCoroutines(), and lowerSubFn().
| void llvm::initializeCoroEarlyLegacyPass | ( | PassRegistry & | ) |
Referenced by initializeCoroutines(), and setCannotDuplicate().
| void llvm::initializeCoroElideLegacyPass | ( | PassRegistry & | ) |
Referenced by initializeCoroutines(), and replaceDevirtTrigger().
| void llvm::initializeCoroSplitLegacyPass | ( | PassRegistry & | ) |
Referenced by initializeCoroutines(), and replaceAllPrepares().
| void llvm::initializeCoroutines | ( | PassRegistry & | Registry | ) |
Initialize all passes linked into the Coroutines library.
Definition at line 45 of file Coroutines.cpp.
References initializeCoroCleanupLegacyPass(), initializeCoroEarlyLegacyPass(), initializeCoroElideLegacyPass(), and initializeCoroSplitLegacyPass().
| void llvm::initializeCorrelatedValuePropagationPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
| void llvm::initializeCostModelAnalysisPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis().
| void llvm::initializeCrossDSOCFIPass | ( | PassRegistry & | ) |
Referenced by initializeIPO().
| void llvm::initializeDAEPass | ( | PassRegistry & | ) |
Referenced by initializeIPO().
| void llvm::initializeDAHPass | ( | PassRegistry & | ) |
Referenced by initializeIPO(), and llvm::LTOCodeGenerator::~LTOCodeGenerator().
| void llvm::initializeDataFlowSanitizerPass | ( | PassRegistry & | ) |
Referenced by initializeInstrumentation().
| void llvm::initializeDCELegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts(), llvm::DCEPass::run(), and llvm::LTOCodeGenerator::~LTOCodeGenerator().
| void llvm::initializeDeadInstEliminationPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
| void llvm::initializeDeadMachineInstructionElimPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeDelinearizationPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis().
| void llvm::initializeDemandedBitsWrapperPassPass | ( | PassRegistry & | ) |
Referenced by llvm::DemandedBitsWrapperPass::DemandedBitsWrapperPass(), and initializeAnalysis().
| void llvm::initializeDependenceAnalysisPass | ( | PassRegistry & | ) |
| void llvm::initializeDependenceAnalysisWrapperPassPass | ( | PassRegistry & | ) |
| void llvm::initializeDetectDeadLanesPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeDivRemPairsLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts(), and optimizeDivRem().
| void llvm::initializeDominanceFrontierWrapperPassPass | ( | PassRegistry & | ) |
| void llvm::initializeDominatorTreeWrapperPassPass | ( | PassRegistry & | ) |
Referenced by llvm::DominatorTreeWrapperPass::DominatorTreeWrapperPass(), and initializeCore().
| void llvm::initializeDomOnlyPrinterPass | ( | PassRegistry & | ) |
Referenced by INITIALIZE_PASS(), and initializeAnalysis().
| void llvm::initializeDomOnlyViewerPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis(), and llvm::DominatorTree::viewGraph().
| void llvm::initializeDomPrinterPass | ( | PassRegistry & | ) |
Referenced by INITIALIZE_PASS(), and initializeAnalysis().
| void llvm::initializeDomViewerPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis(), and llvm::DominatorTree::viewGraph().
| void llvm::initializeDSELegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts(), and llvm::DSEPass::run().
| void llvm::initializeDummyCGSCCPassPass | ( | PassRegistry & | ) |
Referenced by llvm::DummyCGSCCPass::DummyCGSCCPass(), and llvm::CallGraphSCC::getCallGraph().
| void llvm::initializeDwarfEHPreparePass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeEarlyCSELegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts(), and llvm::EarlyCSEPass::run().
| void llvm::initializeEarlyCSEMemSSALegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts(), and llvm::EarlyCSEPass::run().
| void llvm::initializeEarlyIfConverterPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeEarlyIfPredicatorPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeEarlyMachineLICMPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeEarlyTailDuplicatePass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeEdgeBundlesPass | ( | PassRegistry & | ) |
| void llvm::initializeEliminateAvailableExternallyLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeIPO(), and llvm::EliminateAvailableExternallyPass::run().
| void llvm::initializeEntryExitInstrumenterPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts(), and runOnFunction().
| void llvm::initializeEvexToVexInstPassPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeX86Target().
| void llvm::initializeExpandMemCmpPassPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeExpandPostRAPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeExpandReductionsPass | ( | PassRegistry & | ) |
| void llvm::initializeExternalAAWrapperPassPass | ( | PassRegistry & | ) |
Referenced by llvm::ExternalAAWrapperPass::ExternalAAWrapperPass().
| void llvm::initializeFalkorHWPFFixPass | ( | PassRegistry & | ) |
Referenced by createFalkorMarkStridedAccessesPass(), and LLVMInitializeAArch64Target().
| void llvm::initializeFalkorMarkStridedAccessesLegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
| void llvm::initializeFEntryInserterPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeFinalizeISelPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeFinalizeMachineBundlesPass | ( | PassRegistry & | ) |
Referenced by createUnpackMachineBundles(), and initializeCodeGen().
| void llvm::initializeFixFunctionBitcastsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeWebAssemblyTarget().
| void llvm::initializeFixupBWInstPassPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeX86Target().
| void llvm::initializeFixupLEAPassPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeX86Target().
| void llvm::initializeFlattenCFGPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
| void llvm::initializeFloat2IntLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
| void llvm::initializeForceFunctionAttrsLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeIPO(), and llvm::ForceFunctionAttrsPass::run().
| void llvm::initializeForwardControlFlowIntegrityPass | ( | PassRegistry & | ) |
| void llvm::initializeFPSPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeX86Target().
| void llvm::initializeFuncletLayoutPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeFunctionImportLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeIPO().
| void llvm::initializeGCMachineCodeAnalysisPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeGCModuleInfoPass | ( | PassRegistry & | ) |
| void llvm::initializeGCNDPPCombinePass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
| void llvm::initializeGCNNSAReassignPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
| void llvm::initializeGCNRegBankReassignPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
| void llvm::initializeGCOVProfilerLegacyPassPass | ( | PassRegistry & | ) |
Referenced by llvm::GCOVOptions::getDefault(), and initializeInstrumentation().
| void llvm::initializeGenericToNVVMPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeNVPTXTarget().
| void llvm::initializeGISelCSEAnalysisWrapperPassPass | ( | PassRegistry & | ) |
| void llvm::initializeGISelKnownBitsAnalysisPass | ( | PassRegistry & | ) |
Referenced by llvm::GISelKnownBitsAnalysis::GISelKnownBitsAnalysis().
| void llvm::initializeGlobalDCELegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeIPO(), and llvm::LTOCodeGenerator::~LTOCodeGenerator().
| void llvm::initializeGlobalISel | ( | PassRegistry & | Registry | ) |
Initialize all passes linked into the GlobalISel library.
Definition at line 18 of file GlobalISel.cpp.
References initializeInstructionSelectPass(), initializeIRTranslatorPass(), initializeLegalizerPass(), initializeLocalizerPass(), and initializeRegBankSelectPass().
Referenced by LLVMInitializeAArch64Target(), LLVMInitializeAMDGPUTarget(), LLVMInitializeARMTarget(), LLVMInitializeMipsTarget(), LLVMInitializeRISCVTarget(), and LLVMInitializeX86Target().
| void llvm::initializeGlobalMergePass | ( | PassRegistry & | ) |
| void llvm::initializeGlobalOptLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeIPO(), llvm::GlobalOptPass::run(), and llvm::LTOCodeGenerator::~LTOCodeGenerator().
| void llvm::initializeGlobalsAAWrapperPassPass | ( | PassRegistry & | ) |
| void llvm::initializeGlobalSplitPass | ( | PassRegistry & | ) |
Referenced by initializeIPO(), and splitGlobals().
| void llvm::initializeGuardWideningLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts(), and llvm::GuardWideningPass::run().
| void llvm::initializeGVNHoistLegacyPassPass | ( | PassRegistry & | ) |
Referenced by llvm::GVNHoistLegacyPass::GVNHoistLegacyPass(), and initializeScalarOpts().
| void llvm::initializeGVNLegacyPassPass | ( | PassRegistry & | ) |
| void llvm::initializeGVNSinkLegacyPassPass | ( | PassRegistry & | ) |
Referenced by llvm::GVNExpression::Expression::dump(), and initializeScalarOpts().
| void llvm::initializeHardwareLoopsPass | ( | PassRegistry & | ) |
Referenced by createHWLoopAnalysis(), and initializeCodeGen().
| void llvm::initializeHexagonBitSimplifyPass | ( | PassRegistry & | Registry | ) |
Referenced by createVLIWMachineSched(), and LLVMInitializeHexagonTarget().
| void llvm::initializeHexagonBranchRelaxationPass | ( | PassRegistry & | ) |
| void llvm::initializeHexagonCallFrameInformationPass | ( | PassRegistry & | ) |
| void llvm::initializeHexagonCFGOptimizerPass | ( | PassRegistry & | ) |
| void llvm::initializeHexagonCommonGEPPass | ( | PassRegistry & | ) |
| void llvm::initializeHexagonConstExtendersPass | ( | PassRegistry & | ) |
Referenced by createVLIWMachineSched(), and LLVMInitializeHexagonTarget().
| void llvm::initializeHexagonConstPropagationPass | ( | PassRegistry & | Registry | ) |
Referenced by createVLIWMachineSched(), and LLVMInitializeHexagonTarget().
| void llvm::initializeHexagonCopyToCombinePass | ( | PassRegistry & | ) |
| void llvm::initializeHexagonEarlyIfConversionPass | ( | PassRegistry & | Registry | ) |
Referenced by createVLIWMachineSched(), and LLVMInitializeHexagonTarget().
| void llvm::initializeHexagonExpandCondsetsPass | ( | PassRegistry & | ) |
Referenced by createVLIWMachineSched(), and llvm::HexagonTargetMachine::HexagonTargetMachine().
| void llvm::initializeHexagonFixupHwLoopsPass | ( | PassRegistry & | ) |
| void llvm::initializeHexagonGenExtractPass | ( | PassRegistry & | ) |
| void llvm::initializeHexagonGenInsertPass | ( | PassRegistry & | ) |
Referenced by isDebug().
| void llvm::initializeHexagonGenMuxPass | ( | PassRegistry & | Registry | ) |
Referenced by createVLIWMachineSched(), and LLVMInitializeHexagonTarget().
| void llvm::initializeHexagonGenPredicatePass | ( | PassRegistry & | Registry | ) |
| void llvm::initializeHexagonHardwareLoopsPass | ( | PassRegistry & | ) |
Referenced by createVLIWMachineSched(), and LLVMInitializeHexagonTarget().
| void llvm::initializeHexagonLoopIdiomRecognizePass | ( | PassRegistry & | ) |
Referenced by createVLIWMachineSched(), and LLVMInitializeHexagonTarget().
| void llvm::initializeHexagonLoopReschedulingPass | ( | PassRegistry & | ) |
| void llvm::initializeHexagonNewValueJumpPass | ( | PassRegistry & | ) |
Referenced by createVLIWMachineSched(), and LLVMInitializeHexagonTarget().
| void llvm::initializeHexagonOptAddrModePass | ( | PassRegistry & | ) |
Referenced by createVLIWMachineSched(), and LLVMInitializeHexagonTarget().
| void llvm::initializeHexagonOptimizeSZextendsPass | ( | PassRegistry & | ) |
| void llvm::initializeHexagonPacketizerPass | ( | PassRegistry & | ) |
Referenced by createVLIWMachineSched(), and LLVMInitializeHexagonTarget().
| void llvm::initializeHexagonPeepholePass | ( | PassRegistry & | ) |
| void llvm::initializeHexagonRDFOptPass | ( | PassRegistry & | ) |
Referenced by createVLIWMachineSched(), and LLVMInitializeHexagonTarget().
| void llvm::initializeHexagonSplitConst32AndConst64Pass | ( | PassRegistry & | ) |
| void llvm::initializeHexagonSplitDoubleRegsPass | ( | PassRegistry & | ) |
Referenced by createVLIWMachineSched(), and LLVMInitializeHexagonTarget().
| void llvm::initializeHexagonStoreWideningPass | ( | PassRegistry & | ) |
| void llvm::initializeHexagonVectorLoopCarriedReusePass | ( | PassRegistry & | ) |
Referenced by createVLIWMachineSched(), and LLVMInitializeHexagonTarget().
| void llvm::initializeHexagonVectorPrintPass | ( | PassRegistry & | ) |
| void llvm::initializeHexagonVExtractPass | ( | PassRegistry & | ) |
Referenced by createVLIWMachineSched(), and LLVMInitializeHexagonTarget().
| void llvm::initializeHotColdSplittingLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeIPO().
| void llvm::initializeHWAddressSanitizerLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeInstrumentation().
| void llvm::initializeIfConverterPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeImplicitNullChecksPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeIndirectBrExpandPassPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeIndVarSimplifyLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts(), and llvm::IndVarSimplifyPass::run().
| void llvm::initializeInferAddressSpacesPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
| void llvm::initializeInferFunctionAttrsLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeIPO(), and llvm::InferFunctionAttrsPass::run().
| void llvm::initializeInjectTLIMappingsLegacyPass | ( | PassRegistry & | ) |
Referenced by initializeTransformUtils(), and llvm::InjectTLIMappingsLegacy::InjectTLIMappingsLegacy().
| void llvm::initializeInlineCostAnalysisPass | ( | PassRegistry & | ) |
| Combine redundant false void llvm::initializeInstCombine | ( | PassRegistry & | Registry | ) |
Initialize all passes linked into the InstCombine library.
Definition at line 3735 of file InstructionCombining.cpp.
References initializeInstructionCombiningPassPass().
| void llvm::initializeInstCountPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis().
| void llvm::initializeInstNamerPass | ( | PassRegistry & | ) |
Referenced by initializeTransformUtils().
| void llvm::initializeInstrOrderFileLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeInstrumentation().
| void llvm::initializeInstrProfilingLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeInstrumentation().
| void llvm::initializeInstructionCombiningPassPass | ( | PassRegistry & | ) |
| void llvm::initializeInstructionSelectPass | ( | PassRegistry & | ) |
Referenced by initializeGlobalISel().
| void llvm::initializeInstrumentation | ( | PassRegistry & | Registry | ) |
Initialize all passes linked into the Instrumentation library.
initializeInstrumentation - Initialize all passes in the TransformUtils library.
Definition at line 105 of file Instrumentation.cpp.
References initializeAddressSanitizerLegacyPassPass(), initializeBoundsCheckingLegacyPassPass(), initializeControlHeightReductionLegacyPassPass(), initializeDataFlowSanitizerPass(), initializeGCOVProfilerLegacyPassPass(), initializeHWAddressSanitizerLegacyPassPass(), initializeInstrOrderFileLegacyPassPass(), initializeInstrProfilingLegacyPassPass(), initializeMemorySanitizerLegacyPassPass(), initializeModuleAddressSanitizerLegacyPassPass(), initializeModuleSanitizerCoverageLegacyPassPass(), initializePGOIndirectCallPromotionLegacyPassPass(), initializePGOInstrumentationGenLegacyPassPass(), initializePGOInstrumentationUseLegacyPassPass(), initializePGOMemOPSizeOptLegacyPassPass(), and initializeThreadSanitizerLegacyPassPass().
Referenced by LLVMInitializeInstrumentation().
| void llvm::initializeInstSimplifyLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts(), and runImpl().
| void llvm::initializeInterleavedAccessPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeInterleavedLoadCombinePass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeInternalizeLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeIPO(), llvm::InternalizePass::run(), and llvm::LTOCodeGenerator::~LTOCodeGenerator().
| void llvm::initializeIntervalPartitionPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis(), and llvm::IntervalPartition::IntervalPartition().
| void llvm::initializeIPCPPass | ( | PassRegistry & | ) |
Referenced by initializeIPO().
| void llvm::initializeIPO | ( | PassRegistry & | Registry | ) |
Initialize all passes linked into the IPO library.
Definition at line 25 of file IPO.cpp.
References initializeAlwaysInlinerLegacyPassPass(), initializeArgPromotionPass(), initializeAttributorLegacyPassPass(), initializeBarrierNoopPass(), initializeBlockExtractorPass(), initializeCalledValuePropagationLegacyPassPass(), initializeConstantMergeLegacyPassPass(), initializeCrossDSOCFIPass(), initializeDAEPass(), initializeDAHPass(), initializeEliminateAvailableExternallyLegacyPassPass(), initializeForceFunctionAttrsLegacyPassPass(), initializeFunctionImportLegacyPassPass(), initializeGlobalDCELegacyPassPass(), initializeGlobalOptLegacyPassPass(), initializeGlobalSplitPass(), initializeHotColdSplittingLegacyPassPass(), initializeInferFunctionAttrsLegacyPassPass(), initializeInternalizeLegacyPassPass(), initializeIPCPPass(), initializeIPSCCPLegacyPassPass(), initializeLoopExtractorPass(), initializeLowerTypeTestsPass(), initializeMergeFunctionsLegacyPassPass(), initializePartialInlinerLegacyPassPass(), initializePostOrderFunctionAttrsLegacyPassPass(), initializePruneEHPass(), initializeReversePostOrderFunctionAttrsLegacyPassPass(), initializeSampleProfileLoaderLegacyPassPass(), initializeSimpleInlinerPass(), initializeSingleLoopExtractorPass(), initializeStripDeadDebugInfoPass(), initializeStripDeadPrototypesLegacyPassPass(), initializeStripDebugDeclarePass(), initializeStripNonDebugSymbolsPass(), initializeStripSymbolsPass(), and initializeWholeProgramDevirtPass().
Referenced by LLVMInitializeIPO().
| void llvm::initializeIPSCCPLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeIPO(), llvm::IPSCCPPass::run(), and llvm::LTOCodeGenerator::~LTOCodeGenerator().
| void llvm::initializeIRCELegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
| void llvm::initializeIRTranslatorPass | ( | PassRegistry & | ) |
Referenced by initializeGlobalISel().
| void llvm::initializeIVUsersWrapperPassPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis(), and llvm::IVUsersWrapperPass::IVUsersWrapperPass().
| void llvm::initializeJumpThreadingPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts(), and llvm::LTOCodeGenerator::~LTOCodeGenerator().
| void llvm::initializeLanaiMemAluCombinerPass | ( | PassRegistry & | ) |
| void llvm::initializeLazyBFIPassPass | ( | PassRegistry & | Registry | ) |
Helper for client passes to initialize dependent passes for LBFI.
Definition at line 68 of file LazyBlockFrequencyInfo.cpp.
References INITIALIZE_PASS_DEPENDENCY, and initializeLazyBPIPassPass().
Referenced by llvm::LazyBlockFrequencyInfoPass::getBFI().
| void llvm::initializeLazyBlockFrequencyInfoPassPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis(), and llvm::LazyBlockFrequencyInfoPass::LazyBlockFrequencyInfoPass().
| void llvm::initializeLazyBPIPassPass | ( | PassRegistry & | Registry | ) |
Helper for client passes to initialize dependent passes for LBPI.
Definition at line 71 of file LazyBranchProbabilityInfo.cpp.
References INITIALIZE_PASS_DEPENDENCY.
Referenced by llvm::LazyBranchProbabilityInfoPass::getBPI(), and initializeLazyBFIPassPass().
| void llvm::initializeLazyBranchProbabilityInfoPassPass | ( | PassRegistry & | ) |
| void llvm::initializeLazyMachineBlockFrequencyInfoPassPass | ( | PassRegistry & | ) |
| void llvm::initializeLazyValueInfoPrinterPass | ( | PassRegistry & | ) |
Referenced by llvm::LazyValueInfo::enableDT(), and initializeAnalysis().
| void llvm::initializeLazyValueInfoWrapperPassPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis(), and llvm::LazyValueInfoWrapperPass::LazyValueInfoWrapperPass().
| void llvm::initializeLCSSAVerificationPassPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis(), and llvm::LCSSAVerificationPass::LCSSAVerificationPass().
| void llvm::initializeLCSSAWrapperPassPass | ( | PassRegistry & | ) |
Referenced by formLCSSAOnAllLoops(), and initializeTransformUtils().
| void llvm::initializeLDTLSCleanupPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
| void llvm::initializeLegacyDivergenceAnalysisPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis(), and llvm::LegacyDivergenceAnalysis::LegacyDivergenceAnalysis().
| void llvm::initializeLegacyLICMPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts(), and llvm::LTOCodeGenerator::~LTOCodeGenerator().
| void llvm::initializeLegacyLoopSinkPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts(), and llvm::LoopSinkPass::run().
| void llvm::initializeLegalizerPass | ( | PassRegistry & | ) |
Referenced by initializeGlobalISel().
| void llvm::initializeLibCallsShrinkWrapLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeTransformUtils().
| void llvm::initializeLintPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis().
| void llvm::initializeLiveDebugValuesPass | ( | PassRegistry & | ) |
Referenced by INITIALIZE_PASS(), and initializeCodeGen().
| void llvm::initializeLiveDebugVariablesPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen(), and llvm::LiveDebugVariables::LiveDebugVariables().
| void llvm::initializeLiveIntervalsPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen(), and llvm::LiveIntervals::LiveIntervals().
| void llvm::initializeLiveRangeShrinkPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeLiveRegMatrixPass | ( | PassRegistry & | ) |
| void llvm::initializeLiveStacksPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen(), and llvm::LiveStacks::LiveStacks().
| void llvm::initializeLiveVariablesPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen(), and llvm::LiveVariables::LiveVariables().
| void llvm::initializeLoaderPassPass | ( | PassRegistry & | ) |
| void llvm::initializeLoadStoreVectorizerLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeVectorization().
| void llvm::initializeLocalizerPass | ( | PassRegistry & | ) |
Referenced by initializeGlobalISel().
| void llvm::initializeLocalStackSlotPassPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeLoopAccessLegacyAnalysisPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts(), and llvm::LoopAccessLegacyAnalysis::LoopAccessLegacyAnalysis().
| void llvm::initializeLoopDataPrefetchLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
| void llvm::initializeLoopDeletionLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts(), and llvm::LoopDeletionPass::run().
| void llvm::initializeLoopDistributeLegacyPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts(), and runImpl().
| void llvm::initializeLoopExtractorPass | ( | PassRegistry & | ) |
Referenced by initializeIPO().
| void llvm::initializeLoopFuseLegacyPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
| void llvm::initializeLoopGuardWideningLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts(), and llvm::GuardWideningPass::run().
| void llvm::initializeLoopIdiomRecognizeLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
| void llvm::initializeLoopInfoWrapperPassPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis(), and llvm::LoopInfoWrapperPass::LoopInfoWrapperPass().
| void llvm::initializeLoopInstSimplifyLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts(), and simplifyLoopInst().
| void llvm::initializeLoopInterchangePass | ( | PassRegistry & | ) |
Referenced by getInductionVariable(), and initializeScalarOpts().
| void llvm::initializeLoopLoadEliminationPass | ( | PassRegistry & | ) |
Referenced by eliminateLoadsAcrossLoops(), and initializeScalarOpts().
| void llvm::initializeLoopPassPass | ( | PassRegistry & | Registry | ) |
Manually defined generic "LoopPass" dependency initialization.
This is used to initialize the exact set of passes from above in getLoopAnalysisUsage. It can be used within a loop pass's initialization with:
INITIALIZE_PASS_DEPENDENCY(LoopPass)
As-if "LoopPass" were a pass.
Definition at line 186 of file LoopUtils.cpp.
References INITIALIZE_PASS_DEPENDENCY.
| void llvm::initializeLoopPredicationLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
| void llvm::initializeLoopRerollPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
| void llvm::initializeLoopRotateLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts(), and llvm::LoopRotatePass::run().
| void llvm::initializeLoopSimplifyCFGLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts(), and llvm::LoopSimplifyCFGPass::run().
| void llvm::initializeLoopSimplifyPass | ( | PassRegistry & | ) |
Referenced by initializeTransformUtils(), and simplifyLoop().
| void llvm::initializeLoopStrengthReducePass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts(), and mayUsePostIncMode().
| void llvm::initializeLoopUnrollAndJamPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts(), and tryToUnrollAndJamLoop().
| void llvm::initializeLoopUnrollPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts(), and tryToUnrollLoop().
| void llvm::initializeLoopUnswitchPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
| void llvm::initializeLoopVectorizePass | ( | PassRegistry & | ) |
Referenced by collectSupportedLoops(), and initializeVectorization().
| void llvm::initializeLoopVersioningLICMPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
| void llvm::initializeLoopVersioningPassPass | ( | PassRegistry & | ) |
Referenced by llvm::LoopVersioning::annotateInstWithNoAlias(), and initializeScalarOpts().
| void llvm::initializeLowerAtomicLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts(), and llvm::LowerAtomicPass::run().
| void llvm::initializeLowerConstantIntrinsicsPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts(), and llvm::LowerConstantIntrinsicsPass::run().
| void llvm::initializeLowerEmuTLSPass | ( | PassRegistry & | ) |
| void llvm::initializeLowerExpectIntrinsicPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts(), and llvm::LowerExpectIntrinsicPass::run().
| void llvm::initializeLowerGlobalDtorsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeWebAssemblyTarget().
| void llvm::initializeLowerGuardIntrinsicLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
| void llvm::initializeLowerIntrinsicsPass | ( | PassRegistry & | ) |
Referenced by INITIALIZE_PASS_BEGIN(), and initializeCodeGen().
| void llvm::initializeLowerInvokeLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeTransformUtils().
| void llvm::initializeLowerMatrixIntrinsicsLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts(), and llvm::LowerMatrixIntrinsicsPass::run().
| void llvm::initializeLowerSwitchPass | ( | PassRegistry & | ) |
Referenced by initializeTransformUtils(), and IsInRanges().
| void llvm::initializeLowerTypeTestsPass | ( | PassRegistry & | ) |
Referenced by initializeIPO().
| void llvm::initializeLowerWidenableConditionLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
| void llvm::initializeMachineBlockFrequencyInfoPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen(), and llvm::MachineBlockFrequencyInfo::MachineBlockFrequencyInfo().
| void llvm::initializeMachineBlockPlacementPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeMachineBlockPlacementStatsPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeMachineBranchProbabilityInfoPass | ( | PassRegistry & | ) |
| void llvm::initializeMachineCombinerPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeMachineCopyPropagationPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeMachineCSEPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeMachineDominanceFrontierPass | ( | PassRegistry & | ) |
Referenced by llvm::MachineDominanceFrontier::MachineDominanceFrontier().
| void llvm::initializeMachineDominatorTreePass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen(), and llvm::MachineDominatorTree::MachineDominatorTree().
| void llvm::initializeMachineFunctionPrinterPassPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeMachineLICMPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeMachineLoopInfoPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen(), and llvm::MachineLoopInfo::MachineLoopInfo().
| void llvm::initializeMachineModuleInfoWrapperPassPass | ( | PassRegistry & | ) |
| void llvm::initializeMachineOptimizationRemarkEmitterPassPass | ( | PassRegistry & | ) |
| void llvm::initializeMachineOutlinerPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeMachinePipelinerPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen(), and llvm::MachinePipeliner::MachinePipeliner().
| void llvm::initializeMachinePostDominatorTreePass | ( | PassRegistry & | ) |
Referenced by INITIALIZE_PASS(), and initializeCodeGen().
| void llvm::initializeMachineRegionInfoPassPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen(), and llvm::MachineRegionInfoPass::MachineRegionInfoPass().
| void llvm::initializeMachineSchedulerPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeMachineSinkingPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeMachineTraceMetricsPass | ( | PassRegistry & | ) |
| void llvm::initializeMachineVerifierPassPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeMakeGuardsExplicitLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
| void llvm::initializeMemCpyOptLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts(), and llvm::LTOCodeGenerator::~LTOCodeGenerator().
| void llvm::initializeMemDepPrinterPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis().
| void llvm::initializeMemDerefPrinterPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis().
| void llvm::initializeMemoryDependenceWrapperPassPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis(), and llvm::MemoryDependenceWrapperPass::MemoryDependenceWrapperPass().
| void llvm::initializeMemorySanitizerLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeInstrumentation().
| void llvm::initializeMemorySSAPrinterLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis(), and llvm::MemorySSAPrinterLegacyPass::MemorySSAPrinterLegacyPass().
| void llvm::initializeMemorySSAWrapperPassPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis(), and llvm::MemorySSAWrapperPass::MemorySSAWrapperPass().
| void llvm::initializeMergedLoadStoreMotionLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts(), and llvm::LTOCodeGenerator::~LTOCodeGenerator().
| void llvm::initializeMergeFunctionsLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeIPO().
| void llvm::initializeMergeICmpsLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
| void llvm::initializeMetaRenamerPass | ( | PassRegistry & | ) |
Referenced by initializeTransformUtils().
| void llvm::initializeMicroMipsSizeReducePass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeMipsTarget().
| void llvm::initializeMipsBranchExpansionPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeMipsTarget().
| void llvm::initializeMipsDelaySlotFillerPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeMipsTarget().
| void llvm::initializeMipsPreLegalizerCombinerPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeMipsTarget().
| void llvm::initializeMIRCanonicalizerPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeMIRNamerPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeMIRPrintingPassPass | ( | PassRegistry & | ) |
| void llvm::initializeModuleAddressSanitizerLegacyPassPass | ( | PassRegistry & | ) |
Referenced by GetCtorAndDtorPriority(), and initializeInstrumentation().
| void llvm::initializeModuleDebugInfoPrinterPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis().
| void llvm::initializeModuleSanitizerCoverageLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeInstrumentation().
| void llvm::initializeModuleSummaryIndexWrapperPassPass | ( | PassRegistry & | ) |
| void llvm::initializeModuloScheduleTestPass | ( | PassRegistry & | ) |
| void llvm::initializeMustBeExecutedContextPrinterPass | ( | PassRegistry & | ) |
Referenced by llvm::ICFLoopSafetyInfo::doesNotWriteMemoryBefore(), and initializeAnalysis().
| void llvm::initializeMustExecutePrinterPass | ( | PassRegistry & | ) |
Referenced by llvm::ICFLoopSafetyInfo::doesNotWriteMemoryBefore(), and initializeAnalysis().
| void llvm::initializeMVEGatherScatterLoweringPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeARMTarget().
| void llvm::initializeMVETailPredicationPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeARMTarget().
| void llvm::initializeMVEVPTBlockPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeARMTarget().
| void llvm::initializeNameAnonGlobalLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeTransformUtils().
| void llvm::initializeNaryReassociateLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
|
inline |
InitializeNativeTarget - The main program should call this function to initialize the native target corresponding to the host.
This is useful for JIT applications to ensure that the target gets linked in correctly.
It is legal for a client to make multiple calls to this function.
Definition at line 115 of file TargetSelect.h.
|
inline |
InitializeNativeTargetAsmParser - The main program should call this function to initialize the native target asm parser.
Definition at line 141 of file TargetSelect.h.
|
inline |
InitializeNativeTargetAsmPrinter - The main program should call this function to initialize the native target asm printer.
Definition at line 129 of file TargetSelect.h.
|
inline |
InitializeNativeTargetDisassembler - The main program should call this function to initialize the native target disassembler.
Definition at line 153 of file TargetSelect.h.
| void llvm::initializeNewGVNLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts(), and patchAndReplaceAllUsesWith().
| void llvm::initializeNVPTXAllocaHoistingPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeNVPTXTarget().
| void llvm::initializeNVPTXAssignValidGlobalNamesPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeNVPTXTarget().
| void llvm::initializeNVPTXLowerAggrCopiesPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeNVPTXTarget().
| void llvm::initializeNVPTXLowerAllocaPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeNVPTXTarget().
| void llvm::initializeNVPTXLowerArgsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeNVPTXTarget().
| void llvm::initializeNVPTXPeepholePass | ( | PassRegistry & | ) |
| void llvm::initializeNVPTXProxyRegErasurePass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeNVPTXTarget().
| void llvm::initializeNVVMIntrRangePass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeNVPTXTarget().
| void llvm::initializeNVVMReflectPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeNVPTXTarget().
| void llvm::initializeObjCARCAAWrapperPassPass | ( | PassRegistry & | ) |
| void llvm::initializeObjCARCAPElimPass | ( | PassRegistry & | ) |
Referenced by initializeObjCARCOpts().
| void llvm::initializeObjCARCContractPass | ( | PassRegistry & | ) |
Referenced by initializeObjCARCOpts().
| void llvm::initializeObjCARCExpandPass | ( | PassRegistry & | ) |
Referenced by initializeObjCARCOpts().
| void llvm::initializeObjCARCOptPass | ( | PassRegistry & | ) |
Referenced by initializeObjCARCOpts().
| void llvm::initializeObjCARCOpts | ( | PassRegistry & | Registry | ) |
Initialize all passes linked into the ObjCARCOpts library.
initializeObjCARCOptsPasses - Initialize all passes linked into the ObjCARCOpts library.
Definition at line 28 of file ObjCARC.cpp.
References initializeObjCARCAAWrapperPassPass(), initializeObjCARCAPElimPass(), initializeObjCARCContractPass(), initializeObjCARCExpandPass(), initializeObjCARCOptPass(), and initializePAEvalPass().
Referenced by LLVMInitializeObjCARCOpts().
| void llvm::initializeOptimizationRemarkEmitterWrapperPassPass | ( | PassRegistry & | ) |
| void llvm::initializeOptimizePHIsPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeOptimizeReturnedPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeWebAssemblyTarget().
| void llvm::initializePAEvalPass | ( | PassRegistry & | ) |
Referenced by initializeObjCARCOpts().
| void llvm::initializePartialInlinerLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeIPO().
| void llvm::initializePartiallyInlineLibCallsLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts(), and llvm::PartiallyInlineLibCallsPass::run().
| void llvm::initializePatchableFunctionPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializePeepholeOptimizerPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializePEIPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializePGOIndirectCallPromotionLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeInstrumentation().
| void llvm::initializePGOInstrumentationGenCreateVarLegacyPassPass | ( | PassRegistry & | ) |
| void llvm::initializePGOInstrumentationGenLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeInstrumentation().
| void llvm::initializePGOInstrumentationUseLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeInstrumentation().
| void llvm::initializePGOMemOPSizeOptLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeInstrumentation().
| void llvm::initializePHIEliminationPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializePhiValuesWrapperPassPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis(), and llvm::PhiValuesWrapperPass::PhiValuesWrapperPass().
| void llvm::initializePhysicalRegisterUsageInfoPass | ( | PassRegistry & | ) |
Referenced by llvm::PhysicalRegisterUsageInfo::PhysicalRegisterUsageInfo().
| void llvm::initializePlaceBackedgeSafepointsImplPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
| void llvm::initializePlaceSafepointsPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
| void llvm::initializePostDominatorTreeWrapperPassPass | ( | PassRegistry & | ) |
| void llvm::initializePostDomOnlyPrinterPass | ( | PassRegistry & | ) |
Referenced by INITIALIZE_PASS(), and initializeAnalysis().
| void llvm::initializePostDomOnlyViewerPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis(), and llvm::DominatorTree::viewGraph().
| void llvm::initializePostDomPrinterPass | ( | PassRegistry & | ) |
Referenced by INITIALIZE_PASS(), and initializeAnalysis().
| void llvm::initializePostDomViewerPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis(), and llvm::DominatorTree::viewGraph().
| void llvm::initializePostInlineEntryExitInstrumenterPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts(), and runOnFunction().
| void llvm::initializePostMachineSchedulerPass | ( | PassRegistry & | ) |
Referenced by INITIALIZE_PASS(), and initializeCodeGen().
| void llvm::initializePostOrderFunctionAttrsLegacyPassPass | ( | PassRegistry & | ) |
| void llvm::initializePostRAHazardRecognizerPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializePostRAMachineSinkingPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializePostRASchedulerPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializePPCBoolRetToIntPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializePowerPCTarget().
| void llvm::initializePPCBranchCoalescingPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializePowerPCTarget().
| void llvm::initializePPCBSelPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializePowerPCTarget().
| void llvm::initializePPCCTRLoopsPass | ( | PassRegistry & | ) |
| void llvm::initializePPCCTRLoopsVerifyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializePowerPCTarget().
| void llvm::initializePPCEarlyReturnPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializePowerPCTarget().
| void llvm::initializePPCExpandISELPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializePowerPCTarget().
| void llvm::initializePPCLoopInstrFormPrepPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializePowerPCTarget().
| void llvm::initializePPCLowerMASSVEntriesPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializePowerPCTarget().
| void llvm::initializePPCMIPeepholePass | ( | PassRegistry & | ) |
Referenced by LLVMInitializePowerPCTarget().
| void llvm::initializePPCPreEmitPeepholePass | ( | PassRegistry & | ) |
Referenced by LLVMInitializePowerPCTarget().
| void llvm::initializePPCQPXLoadSplatPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializePowerPCTarget().
| void llvm::initializePPCReduceCRLogicalsPass | ( | PassRegistry & | ) |
Referenced by computeBranchTargetAndInversion(), and LLVMInitializePowerPCTarget().
| void llvm::initializePPCTLSDynamicCallPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializePowerPCTarget().
| void llvm::initializePPCTOCRegDepsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializePowerPCTarget().
| void llvm::initializePPCVSXCopyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializePowerPCTarget().
| void llvm::initializePPCVSXFMAMutatePass | ( | PassRegistry & | ) |
Referenced by llvm::PPCTargetMachine::createPassConfig(), and LLVMInitializePowerPCTarget().
| void llvm::initializePPCVSXSwapRemovalPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializePowerPCTarget().
| void llvm::initializePredicateInfoPrinterLegacyPassPass | ( | PassRegistry & | ) |
| void llvm::initializePreISelIntrinsicLoweringLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializePrintFunctionPassWrapperPass | ( | PassRegistry & | ) |
Referenced by initializeCore().
| void llvm::initializePrintModulePassWrapperPass | ( | PassRegistry & | ) |
Referenced by initializeCore().
| void llvm::initializeProcessImplicitDefsPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeProfileSummaryInfoWrapperPassPass | ( | PassRegistry & | ) |
Referenced by INITIALIZE_PASS().
| void llvm::initializePromoteLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeTransformUtils(), and llvm::PromotePass::run().
| void llvm::initializePruneEHPass | ( | PassRegistry & | ) |
Referenced by initializeIPO(), and llvm::LTOCodeGenerator::~LTOCodeGenerator().
| void llvm::initializeR600ClauseMergePassPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
| void llvm::initializeR600ControlFlowFinalizerPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
| void llvm::initializeR600EmitClauseMarkersPass | ( | PassRegistry & | ) |
| void llvm::initializeR600ExpandSpecialInstrsPassPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
| void llvm::initializeR600PacketizerPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
| void llvm::initializeR600VectorRegMergerPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
| void llvm::initializeRABasicPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeRAGreedyPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeReachingDefAnalysisPass | ( | PassRegistry & | ) |
Referenced by llvm::ReachingDefAnalysis::ReachingDefAnalysis().
| void llvm::initializeReassociateLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts(), and llvm::ReassociatePass::run().
| void llvm::initializeRedundantDbgInstEliminationPass | ( | PassRegistry & | ) |
Referenced by INITIALIZE_PASS(), and initializeScalarOpts().
| void llvm::initializeRegAllocFastPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeRegBankSelectPass | ( | PassRegistry & | ) |
Referenced by initializeGlobalISel().
| void llvm::initializeRegionInfoPassPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis(), and llvm::RegionInfoPass::RegionInfoPass().
| void llvm::initializeRegionOnlyPrinterPass | ( | PassRegistry & | ) |
Referenced by llvm::DOTGraphTraits< RegionInfo * >::addCustomGraphFeatures(), and initializeAnalysis().
| void llvm::initializeRegionOnlyViewerPass | ( | PassRegistry & | ) |
Referenced by llvm::DOTGraphTraits< RegionInfo * >::addCustomGraphFeatures(), and initializeAnalysis().
| void llvm::initializeRegionPrinterPass | ( | PassRegistry & | ) |
Referenced by llvm::DOTGraphTraits< RegionInfo * >::addCustomGraphFeatures(), and initializeAnalysis().
| void llvm::initializeRegionViewerPass | ( | PassRegistry & | ) |
Referenced by llvm::DOTGraphTraits< RegionInfo * >::addCustomGraphFeatures(), and initializeAnalysis().
| void llvm::initializeRegisterCoalescerPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeRegToMemPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
| void llvm::initializeRegUsageInfoCollectorPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeRegUsageInfoPropagationPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeRenameIndependentSubregsPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeResetMachineFunctionPass | ( | PassRegistry & | ) |
| void llvm::initializeReversePostOrderFunctionAttrsLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeIPO(), runImpl(), and llvm::LTOCodeGenerator::~LTOCodeGenerator().
| void llvm::initializeRewriteStatepointsForGCLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts(), and llvm::RewriteStatepointsForGC::run().
| void llvm::initializeRewriteSymbolsLegacyPassPass | ( | PassRegistry & | ) |
Referenced by llvm::SymbolRewriter::RewriteMapParser::parse().
| void llvm::initializeRISCVExpandPseudoPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeRISCVTarget().
| void llvm::initializeRISCVMergeBaseOffsetOptPass | ( | PassRegistry & | ) |
| void llvm::initializeSafepointIRVerifierPass | ( | PassRegistry & | ) |
Referenced by initializeCore(), and llvm::SafepointIRVerifierPass::run().
| void llvm::initializeSafeStackLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeSampleProfileLoaderLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeIPO().
| void llvm::initializeScalarEvolutionWrapperPassPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis(), and llvm::ScalarEvolutionWrapperPass::ScalarEvolutionWrapperPass().
| void llvm::initializeScalarizeMaskedMemIntrinPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeScalarizerLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
| void llvm::initializeScalarOpts | ( | PassRegistry & | Registry | ) |
Initialize all passes linked into the ScalarOpts library.
initializeScalarOptsPasses - Initialize all passes linked into the ScalarOpts library.
Definition at line 35 of file Scalar.cpp.
References initializeADCELegacyPassPass(), initializeAlignmentFromAssumptionsPass(), initializeBDCELegacyPassPass(), initializeCallSiteSplittingLegacyPassPass(), initializeCFGSimplifyPassPass(), initializeConstantHoistingLegacyPassPass(), initializeConstantPropagationPass(), initializeCorrelatedValuePropagationPass(), initializeDCELegacyPassPass(), initializeDeadInstEliminationPass(), initializeDivRemPairsLegacyPassPass(), initializeDSELegacyPassPass(), initializeEarlyCSELegacyPassPass(), initializeEarlyCSEMemSSALegacyPassPass(), initializeEntryExitInstrumenterPass(), initializeFlattenCFGPassPass(), initializeFloat2IntLegacyPassPass(), initializeGuardWideningLegacyPassPass(), initializeGVNHoistLegacyPassPass(), initializeGVNLegacyPassPass(), initializeGVNSinkLegacyPassPass(), initializeIndVarSimplifyLegacyPassPass(), initializeInferAddressSpacesPass(), initializeInstSimplifyLegacyPassPass(), initializeIRCELegacyPassPass(), initializeJumpThreadingPass(), initializeLegacyLICMPassPass(), initializeLegacyLoopSinkPassPass(), initializeLoopAccessLegacyAnalysisPass(), initializeLoopDataPrefetchLegacyPassPass(), initializeLoopDeletionLegacyPassPass(), initializeLoopDistributeLegacyPass(), initializeLoopFuseLegacyPass(), initializeLoopGuardWideningLegacyPassPass(), initializeLoopIdiomRecognizeLegacyPassPass(), initializeLoopInstSimplifyLegacyPassPass(), initializeLoopInterchangePass(), initializeLoopLoadEliminationPass(), initializeLoopPredicationLegacyPassPass(), initializeLoopRerollPass(), initializeLoopRotateLegacyPassPass(), initializeLoopSimplifyCFGLegacyPassPass(), initializeLoopStrengthReducePass(), initializeLoopUnrollAndJamPass(), initializeLoopUnrollPass(), initializeLoopUnswitchPass(), initializeLoopVersioningLICMPass(), initializeLoopVersioningPassPass(), initializeLowerAtomicLegacyPassPass(), initializeLowerConstantIntrinsicsPass(), initializeLowerExpectIntrinsicPass(), initializeLowerGuardIntrinsicLegacyPassPass(), initializeLowerMatrixIntrinsicsLegacyPassPass(), initializeLowerWidenableConditionLegacyPassPass(), initializeMakeGuardsExplicitLegacyPassPass(), initializeMemCpyOptLegacyPassPass(), initializeMergedLoadStoreMotionLegacyPassPass(), initializeMergeICmpsLegacyPassPass(), initializeNaryReassociateLegacyPassPass(), initializeNewGVNLegacyPassPass(), initializePartiallyInlineLibCallsLegacyPassPass(), initializePlaceBackedgeSafepointsImplPass(), initializePlaceSafepointsPass(), initializePostInlineEntryExitInstrumenterPass(), initializeReassociateLegacyPassPass(), initializeRedundantDbgInstEliminationPass(), initializeRegToMemPass(), initializeRewriteStatepointsForGCLegacyPassPass(), initializeScalarizerLegacyPassPass(), initializeSCCPLegacyPassPass(), initializeSeparateConstOffsetFromGEPPass(), initializeSimpleLoopUnswitchLegacyPassPass(), initializeSinkingLegacyPassPass(), initializeSpeculativeExecutionLegacyPassPass(), initializeSROALegacyPassPass(), initializeStraightLineStrengthReducePass(), initializeStructurizeCFGPass(), initializeTailCallElimPass(), and initializeWarnMissedTransformationsLegacyPass().
Referenced by LLVMInitializeScalarOpts().
| void llvm::initializeScavengerTestPass | ( | PassRegistry & | ) |
| void llvm::initializeSCCPLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts(), and llvm::SCCPPass::run().
| void llvm::initializeSCEVAAWrapperPassPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis(), and llvm::SCEVAAWrapperPass::SCEVAAWrapperPass().
| void llvm::initializeScopedNoAliasAAWrapperPassPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis(), and llvm::ScopedNoAliasAAWrapperPass::ScopedNoAliasAAWrapperPass().
| void llvm::initializeSeparateConstOffsetFromGEPPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
| void llvm::initializeShadowStackGCLoweringPass | ( | PassRegistry & | ) |
Referenced by createShadowStackGCLoweringPass().
| void llvm::initializeShrinkWrapPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeSIAddIMGInitPass | ( | PassRegistry & | ) |
| void llvm::initializeSIAnnotateControlFlowPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
| void llvm::initializeSIFixSGPRCopiesPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
| void llvm::initializeSIFixupVectorISelPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
| void llvm::initializeSIFixVGPRCopiesPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
| void llvm::initializeSIFoldOperandsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
| void llvm::initializeSIFormMemoryClausesPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
| void llvm::initializeSIInsertSkipsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
| void llvm::initializeSIInsertWaitcntsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
| void llvm::initializeSILoadStoreOptimizerPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
| void llvm::initializeSILowerControlFlowPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
| void llvm::initializeSILowerI1CopiesPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
| void llvm::initializeSILowerSGPRSpillsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
| void llvm::initializeSIMemoryLegalizerPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
| void llvm::initializeSIModeRegisterPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
| void llvm::initializeSimpleInlinerPass | ( | PassRegistry & | ) |
Referenced by initializeIPO(), and llvm::LTOCodeGenerator::~LTOCodeGenerator().
| void llvm::initializeSimpleLoopUnswitchLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts(), and llvm::SimpleLoopUnswitchPass::run().
| void llvm::initializeSingleLoopExtractorPass | ( | PassRegistry & | ) |
Referenced by initializeIPO().
| void llvm::initializeSinkingLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts(), and llvm::SinkingPass::run().
| void llvm::initializeSIOptimizeExecMaskingPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
| void llvm::initializeSIOptimizeExecMaskingPreRAPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
| void llvm::initializeSIPeepholeSDWAPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
| void llvm::initializeSIPreAllocateWWMRegsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
| void llvm::initializeSIShrinkInstructionsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
| void llvm::initializeSIWholeQuadModePass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
| void llvm::initializeSjLjEHPreparePass | ( | PassRegistry & | ) |
| void llvm::initializeSlotIndexesPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen(), and llvm::SlotIndexes::SlotIndexes().
| void llvm::initializeSLPVectorizerPass | ( | PassRegistry & | ) |
Referenced by llvm::slpvectorizer::BoUpSLP::computeMinimumValueSizes(), and initializeVectorization().
| void llvm::initializeSpeculativeExecutionLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
| void llvm::initializeSpillPlacementPass | ( | PassRegistry & | ) |
| void llvm::initializeSROALegacyPassPass | ( | PassRegistry & | ) |
| void llvm::initializeStackColoringPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeStackMapLivenessPass | ( | PassRegistry & | ) |
Referenced by INITIALIZE_PASS(), and initializeCodeGen().
| void llvm::initializeStackProtectorPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen(), and llvm::StackProtector::StackProtector().
| void llvm::initializeStackSafetyGlobalInfoWrapperPassPass | ( | PassRegistry & | ) |
| void llvm::initializeStackSafetyInfoWrapperPassPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis(), and llvm::StackSafetyInfoWrapperPass::StackSafetyInfoWrapperPass().
| void llvm::initializeStackSlotColoringPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeStraightLineStrengthReducePass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
| void llvm::initializeStripDeadDebugInfoPass | ( | PassRegistry & | ) |
Referenced by initializeIPO().
| void llvm::initializeStripDeadPrototypesLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeIPO(), and llvm::StripDeadPrototypesPass::run().
| void llvm::initializeStripDebugDeclarePass | ( | PassRegistry & | ) |
Referenced by initializeIPO().
| void llvm::initializeStripGCRelocatesPass | ( | PassRegistry & | ) |
Referenced by initializeTransformUtils().
| void llvm::initializeStripNonDebugSymbolsPass | ( | PassRegistry & | ) |
Referenced by initializeIPO().
| void llvm::initializeStripNonLineTableDebugInfoPass | ( | PassRegistry & | ) |
Referenced by initializeTransformUtils().
| void llvm::initializeStripSymbolsPass | ( | PassRegistry & | ) |
Referenced by initializeIPO().
| void llvm::initializeStructurizeCFGPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
| void llvm::initializeSystemZPostRewritePass | ( | PassRegistry & | ) |
| void llvm::initializeSystemZTDCPassPass | ( | PassRegistry & | ) |
| void llvm::initializeTailCallElimPass | ( | PassRegistry & | ) |
Referenced by eliminateTailRecursion(), and initializeScalarOpts().
| void llvm::initializeTailDuplicatePass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeTarget | ( | PassRegistry & | Registry | ) |
Initialize all passes linked into the CodeGen library.
Definition at line 38 of file Target.cpp.
References initializeTargetLibraryInfoWrapperPassPass(), and initializeTargetTransformInfoWrapperPassPass().
Referenced by LLVMInitializeTarget().
| void llvm::initializeTargetLibraryInfoWrapperPassPass | ( | PassRegistry & | ) |
| void llvm::initializeTargetPassConfigPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeTargetTransformInfoWrapperPassPass | ( | PassRegistry & | ) |
| void llvm::initializeThreadSanitizerLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeInstrumentation().
| void llvm::initializeThumb2ITBlockPass | ( | PassRegistry & | ) |
| void llvm::initializeThumb2SizeReducePass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeARMTarget().
| void llvm::initializeTransformUtils | ( | PassRegistry & | Registry | ) |
Initialize all passes linked into the TransformUtils library.
initializeTransformUtils - Initialize all passes in the TransformUtils library.
Definition at line 25 of file Utils.cpp.
References initializeAddDiscriminatorsLegacyPassPass(), initializeBreakCriticalEdgesPass(), initializeCanonicalizeAliasesLegacyPassPass(), initializeInjectTLIMappingsLegacyPass(), initializeInstNamerPass(), initializeLCSSAWrapperPassPass(), initializeLibCallsShrinkWrapLegacyPassPass(), initializeLoopSimplifyPass(), initializeLowerInvokeLegacyPassPass(), initializeLowerSwitchPass(), initializeMetaRenamerPass(), initializeNameAnonGlobalLegacyPassPass(), initializePredicateInfoPrinterLegacyPassPass(), initializePromoteLegacyPassPass(), initializeStripGCRelocatesPass(), initializeStripNonLineTableDebugInfoPass(), and initializeUnifyFunctionExitNodesPass().
Referenced by LLVMInitializeTransformUtils().
| void llvm::initializeTwoAddressInstructionPassPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeTypeBasedAAWrapperPassPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis(), and llvm::TypeBasedAAWrapperPass::TypeBasedAAWrapperPass().
| void llvm::initializeTypePromotionPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeUnifyFunctionExitNodesPass | ( | PassRegistry & | ) |
Referenced by initializeTransformUtils(), and llvm::UnifyFunctionExitNodes::UnifyFunctionExitNodes().
| void llvm::initializeUnpackMachineBundlesPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeUnreachableBlockElimLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeUnreachableMachineBlockElimPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeVectorization | ( | PassRegistry & | Registry | ) |
Initialize all passes linked into the Vectorize library.
initializeVectorizationPasses - Initialize all passes linked into the Vectorization library.
Definition at line 26 of file Vectorize.cpp.
References initializeLoadStoreVectorizerLegacyPassPass(), initializeLoopVectorizePass(), and initializeSLPVectorizerPass().
Referenced by LLVMInitializeVectorization().
| void llvm::initializeVerifierLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeCore(), and verifyModule().
| void llvm::initializeVirtRegMapPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeVirtRegRewriterPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeWarnMissedTransformationsLegacyPass | ( | PassRegistry & | ) |
| void llvm::initializeWasmEHPreparePass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeWebAssemblyAddMissingPrototypesPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeWebAssemblyTarget().
| void llvm::initializeWebAssemblyArgumentMovePass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeWebAssemblyTarget().
| void llvm::initializeWebAssemblyCallIndirectFixupPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeWebAssemblyTarget().
| void llvm::initializeWebAssemblyCFGSortPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeWebAssemblyTarget().
| void llvm::initializeWebAssemblyCFGStackifyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeWebAssemblyTarget().
| void llvm::initializeWebAssemblyExceptionInfoPass | ( | PassRegistry & | ) |
| void llvm::initializeWebAssemblyExplicitLocalsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeWebAssemblyTarget().
| void llvm::initializeWebAssemblyFixIrreducibleControlFlowPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeWebAssemblyTarget().
| void llvm::initializeWebAssemblyLateEHPreparePass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeWebAssemblyTarget().
| void llvm::initializeWebAssemblyLowerBrUnlessPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeWebAssemblyTarget().
| void llvm::initializeWebAssemblyLowerEmscriptenEHSjLjPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeWebAssemblyTarget().
| void llvm::initializeWebAssemblyMemIntrinsicResultsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeWebAssemblyTarget().
| void llvm::initializeWebAssemblyOptimizeLiveIntervalsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeWebAssemblyTarget().
| void llvm::initializeWebAssemblyPeepholePass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeWebAssemblyTarget().
| void llvm::initializeWebAssemblyPrepareForLiveIntervalsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeWebAssemblyTarget().
| void llvm::initializeWebAssemblyRegColoringPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeWebAssemblyTarget().
| void llvm::initializeWebAssemblyRegNumberingPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeWebAssemblyTarget().
| void llvm::initializeWebAssemblyRegStackifyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeWebAssemblyTarget().
| void llvm::initializeWebAssemblyReplacePhysRegsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeWebAssemblyTarget().
| void llvm::initializeWebAssemblySetP2AlignOperandsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeWebAssemblyTarget().
| void llvm::initializeWholeProgramDevirtPass | ( | PassRegistry & | ) |
Referenced by initializeIPO(), and llvm::DenseMapInfo< VTableSlotSummary >::isEqual().
| void llvm::initializeWinEHPreparePass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| void llvm::initializeWinEHStatePassPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeX86Target().
| void llvm::initializeWriteBitcodePassPass | ( | PassRegistry & | ) |
Referenced by llvm::BitcodeWriterPass::run().
| void llvm::initializeWriteThinLTOBitcodePass | ( | PassRegistry & | ) |
| void llvm::initializeX86AvoidSFBPassPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeX86Target().
| void llvm::initializeX86CallFrameOptimizationPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeX86Target().
| void llvm::initializeX86CmovConverterPassPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeX86Target().
| void llvm::initializeX86CondBrFoldingPassPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeX86Target().
| void llvm::initializeX86DomainReassignmentPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeX86Target().
| void llvm::initializeX86ExecutionDomainFixPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeX86Target().
| void llvm::initializeX86ExpandPseudoPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeX86Target().
| void llvm::initializeX86FlagsCopyLoweringPassPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeX86Target().
| void llvm::initializeX86OptimizeLEAPassPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeX86Target().
| void llvm::initializeX86SpeculativeLoadHardeningPassPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeX86Target().
| void llvm::initializeXCoreLowerThreadLocalPass | ( | PassRegistry & | p | ) |
| void llvm::initializeXRayInstrumentationPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
| llvm::InlineResult llvm::InlineFunction | ( | CallBase * | CB, |
| InlineFunctionInfo & | IFI, | ||
| AAResults * | CalleeAAR = nullptr, |
||
| bool | InsertLifetime = true |
||
| ) |
This function inlines the called function into the basic block of the caller.
This returns false if it is not possible to inline this call. The program is still in a well defined state if this occurs though.
Note that this only does one level of inlining. For example, if the instruction 'call B' is inlined, and 'B' calls 'C', then the call to 'C' now exists in the instruction stream. Similarly this will inline a recursive function by one level.
Note that while this routine is allowed to cleanup and optimize the inlined code to minimize the actual inserted code, it must not delete code in the caller as users of this routine may have pointers to instructions in the caller that need to remain stable.
If ForwardVarArgsTo is passed, inlining a function with varargs is allowed and all varargs at the callsite will be passed to any calls to ForwardVarArgsTo. The caller of InlineFunction has to make sure any varargs are only used by ForwardVarArgsTo.
Definition at line 87 of file InlineFunction.cpp.
References llvm::PHINode::addIncoming(), llvm::BasicBlock::begin(), llvm::PHINode::Create(), llvm::BranchInst::Create(), llvm::numbers::e, llvm::Instruction::eraseFromParent(), llvm::PHINode::getIncomingValueForBlock(), llvm::Value::getName(), llvm::User::getOperand(), llvm::Instruction::getParent(), llvm::Value::getType(), llvm::InvokeInst::getUnwindDest(), I, llvm::numbers::phi, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::Value::replaceAllUsesWith(), and llvm::SmallVectorBase::size().
Referenced by hasProfileData(), InlineCallIfPossible(), InsertSafepointPoll(), llvm::InlineFunctionInfo::reset(), llvm::AlwaysInlinerPass::run(), and llvm::InlinerPass::run().
| llvm::InlineResult llvm::InlineFunction | ( | CallSite | CS, |
| InlineFunctionInfo & | IFI, | ||
| AAResults * | CalleeAAR = nullptr, |
||
| bool | InsertLifetime = true, |
||
| Function * | ForwardVarArgsTo = nullptr |
||
| ) |
This function inlines the called function into the basic block of the caller.
This returns false if it is not possible to inline this call. The program is still in a well defined state if this occurs though.
Note that this only does one level of inlining. For example, if the instruction 'call B' is inlined, and 'B' calls 'C', then the call to 'C' now exists in the instruction stream. Similarly this will inline a recursive function by one level.
Definition at line 1560 of file InlineFunction.cpp.
References AddAliasScopeMetadata(), AddAlignmentAssumptions(), llvm::PHINode::addIncoming(), allocaWouldBeStaticInEntry(), llvm::SmallVectorImpl< T >::append(), llvm::DIExpression::ApplyOffset, llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::arg_begin(), llvm::Function::arg_begin(), llvm::CallBase::arg_begin(), llvm::Function::arg_end(), llvm::CallBase::arg_end(), llvm::CallBase::arg_operands(), assert(), llvm::AMDGPU::HSAMD::Kernel::Key::Attrs, llvm::SmallVectorTemplateCommon< T >::begin(), llvm::BasicBlock::begin(), llvm::Function::begin(), llvm::InlineFunctionInfo::CalleeBFI, llvm::InlineFunctionInfo::CallerBFI, llvm::InlineFunctionInfo::CG, changeToUnreachable(), classifyEHPersonality(), llvm::SmallVectorImpl< T >::clear(), CloneAliasScopeMetadata(), CloneAndPruneFunctionInto(), llvm::ClonedCodeInfo::ContainsCalls, llvm::ClonedCodeInfo::ContainsDynamicAllocas, llvm::CallInst::Create(), llvm::PHINode::Create(), llvm::BranchInst::Create(), llvm::InvokeInst::Create(), llvm::CallBrInst::Create(), llvm::IRBuilder< T, Inserter >::CreateBitCast(), llvm::IRBuilder< T, Inserter >::CreateRet(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::doesNotThrow(), dyn_cast(), llvm::numbers::e, E, llvm::SmallVectorImpl< T >::emplace_back(), llvm::SmallVectorBase::empty(), llvm::SmallVectorTemplateCommon< T >::end(), llvm::Function::end(), llvm::iplist_impl< IntrusiveListT, TraitsT >::erase(), llvm::SmallVectorImpl< T >::erase(), llvm::Instruction::eraseFromParent(), llvm::BasicBlock::eraseFromParent(), F(), fixupLineNumbers(), llvm::BasicBlock::front(), llvm::Function::front(), llvm::ConstantInt::get(), llvm::AttributeList::get(), llvm::UndefValue::get(), llvm::AllocaInst::getAllocatedType(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::getArgOperand(), llvm::AllocaInst::getArraySize(), llvm::InlineFunctionInfo::GetAssumptionCache, llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::getAttributes(), llvm::CallBase::getAttributes(), llvm::Function::getBasicBlockList(), llvm::BlockFrequencyInfo::getBlockFreq(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::getCalledFunction(), llvm::CallBase::getCalledFunction(), llvm::CallBase::getCalledOperand(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::getCalledValue(), llvm::Function::getCallingConv(), llvm::CallBase::getCallingConv(), llvm::Value::getContext(), llvm::Module::getDataLayout(), getDebugLoc(), llvm::Instruction::getDebugLoc(), llvm::Intrinsic::getDeclaration(), llvm::Function::getEntryBlock(), llvm::Function::getEntryCount(), llvm::BasicBlock::getFirstNonPHI(), llvm::AttributeList::getFnAttributes(), llvm::BlockFrequency::getFrequency(), llvm::Instruction::getFunction(), llvm::Function::getFunctionType(), llvm::CallBase::getFunctionType(), llvm::Function::getGC(), llvm::BasicBlock::getInstList(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::getInstruction(), llvm::Type::getInt64Ty(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::Value::getName(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::getNumArgOperands(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::getNumOperandBundles(), llvm::FunctionType::getNumParams(), llvm::Instruction::getOpcode(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::getOperandBundle(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::getOperandBundleAt(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::getOperandBundlesAsDefs(), llvm::CallBase::getOperandBundlesAsDefs(), llvm::Function::getParamAlignment(), llvm::AttributeList::getParamAttributes(), llvm::Instruction::getParent(), llvm::BasicBlock::getParent(), llvm::GlobalValue::getParent(), llvm::Function::getPersonalityFn(), llvm::AttributeList::getRetAttributes(), llvm::Function::getReturnType(), llvm::ReturnInst::getReturnValue(), llvm::Function::getSubprogram(), llvm::OperandBundleUse::getTagID(), llvm::CallInst::getTailCallKind(), llvm::BasicBlock::getTerminatingDeoptimizeCall(), llvm::BasicBlock::getTerminatingMustTailCall(), llvm::BasicBlock::getTerminator(), llvm::Value::getType(), getUnwindDestToken(), HandleByValArgument(), HandleByValArgumentInit(), HandleInlinedEHPad(), HandleInlinedLandingPad(), llvm::Function::hasGC(), hasLifetimeMarkers(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::hasOperandBundles(), llvm::Function::hasPersonalityFn(), I, llvm::InlineFunctionInfo::InlinedCallSites, llvm::OperandBundleUse::Inputs, isAsynchronousEHPersonality(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::isByValArgument(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::isCall(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::isCallBr(), llvm::GlobalValue::isDeclaration(), llvm::Instruction::isEHPad(), llvm::AttributeList::isEmpty(), llvm::CallInst::isMustTailCall(), isScopedEHPersonality(), llvm::AllocaInst::isSwiftError(), llvm::Type::isVoidTy(), make_range(), max(), MSVC_CXX, llvm::LLVMContext::OB_deopt, llvm::LLVMContext::OB_funclet, llvm::ClonedCodeInfo::OperandBundleCallSites, llvm::iplist_impl< IntrusiveListT, TraitsT >::pop_back(), pred_begin(), pred_end(), PropagateParallelLoopAccessMetadata(), llvm::InlineFunctionInfo::PSI, llvm::SmallVectorTemplateBase< T >::push_back(), remove_if(), llvm::Value::replaceAllUsesWith(), replaceDbgDeclareForAlloca(), llvm::SmallVectorImpl< T >::reserve(), llvm::InlineFunctionInfo::reset(), llvm::CallBase::setAttributes(), llvm::BlockFrequencyInfo::setBlockFreq(), llvm::Function::setCallingConv(), llvm::CallBase::setCallingConv(), llvm::Instruction::setDebugLoc(), llvm::CallBase::setDoesNotThrow(), llvm::Function::setGC(), llvm::User::setOperand(), llvm::Function::setPersonalityFn(), llvm::CallInst::setTailCallKind(), SimplifyInstruction(), llvm::SmallVectorBase::size(), llvm::iplist_impl< IntrusiveListT, TraitsT >::splice(), llvm::BasicBlock::splitBasicBlock(), llvm::InlineFunctionInfo::StaticAllocas, llvm::Constant::stripPointerCasts(), llvm::Value::stripPointerCasts(), std::swap(), Tag, llvm::Value::takeName(), llvm::CallInst::TCK_None, llvm::CallInst::TCK_NoTail, updateCallerBFI(), UpdateCallGraphAfterInlining(), updateCallProfile(), and llvm::Value::use_empty().
| void llvm::insertDebugValuesForPHIs | ( | BasicBlock * | BB, |
| SmallVectorImpl< PHINode *> & | InsertedPHIs | ||
| ) |
Propagate dbg.value intrinsics through the newly inserted PHIs.
Definition at line 1458 of file Local.cpp.
References assert(), C, llvm::Instruction::clone(), llvm::ValueMap< KeyT, ValueT, Config >::end(), llvm::BasicBlock::end(), llvm::ValueMap< KeyT, ValueT, Config >::find(), llvm::MetadataAsValue::get(), llvm::ValueAsMetadata::get(), llvm::Value::getContext(), llvm::BasicBlock::getFirstInsertionPt(), llvm::BasicBlock::getFirstNonPHI(), llvm::BasicBlock::getParent(), I, llvm::ValueMap< KeyT, ValueT, Config >::insert(), llvm::Instruction::isEHPad(), llvm::User::setOperand(), llvm::SmallVectorBase::size(), llvm::ValueMap< KeyT, ValueT, Config >::size(), and VI.
Referenced by formLCSSAForInstructions(), getKnownAlignment(), and shouldRotateLoopExitingLatch().
| BasicBlock * llvm::InsertPreheaderForLoop | ( | Loop * | L, |
| DominatorTree * | DT, | ||
| LoopInfo * | LI, | ||
| MemorySSAUpdater * | MSSAU, | ||
| bool | PreserveLCSSA | ||
| ) |
InsertPreheaderForLoop - Once we discover that a loop doesn't have a preheader, this method is called to insert one.
This method has two phases: preheader insertion and analysis updating.
Definition at line 123 of file LoopSimplify.cpp.
References llvm::LoopBase< BlockT, LoopT >::contains(), dbgs(), llvm::LoopBase< BlockT, LoopT >::getHeader(), llvm::Value::getName(), llvm::BasicBlock::getTerminator(), llvm::Instruction::isIndirectTerminator(), LLVM_DEBUG, P, placeSplitBlockCarefully(), pred_begin(), pred_end(), llvm::SmallVectorTemplateBase< T >::push_back(), and SplitBlockPredecessors().
Referenced by createHWLoopAnalysis(), GetPointerOperand(), and moveLCSSAPhis().
|
inline |
Definition at line 131 of file InstIterator.h.
Referenced by atomicSizeSupported(), checkFunctionMemoryAccess(), ComputePostOrders(), createCallInst(), createObjCARCOptPass(), llvm::AliasSetTracker::dump(), dumpExampleDependence(), eliminateDeadCode(), FindPredecessorAutoreleaseWithSafePath(), INITIALIZE_PASS(), insertIfNamed(), instructions(), lowerSubFn(), replaceCreatedSSACopys(), llvm::AAEvaluator::run(), and setCannotDuplicate().
|
inline |
Definition at line 136 of file InstIterator.h.
|
inline |
Definition at line 145 of file InstIterator.h.
|
inline |
Definition at line 150 of file InstIterator.h.
|
inline |
Definition at line 132 of file InstIterator.h.
Referenced by atomicSizeSupported(), checkFunctionMemoryAccess(), ComputePostOrders(), createCallInst(), createObjCARCOptPass(), llvm::AliasSetTracker::dump(), dumpExampleDependence(), eliminateDeadCode(), FindPredecessorAutoreleaseWithSafePath(), INITIALIZE_PASS(), insertIfNamed(), instructions(), lowerSubFn(), replaceCreatedSSACopys(), llvm::AAEvaluator::run(), and setCannotDuplicate().
|
inline |
Definition at line 139 of file InstIterator.h.
|
inline |
Definition at line 146 of file InstIterator.h.
|
inline |
Definition at line 153 of file InstIterator.h.
| void llvm::install_bad_alloc_error_handler | ( | fatal_error_handler_t | handler, |
| void * | user_data = nullptr |
||
| ) |
Installs a new bad alloc error handler that should be used whenever a bad alloc error, e.g.
failing malloc/calloc, is encountered by LLVM.
The user can install a bad alloc handler, in order to define the behavior in case of failing allocations, e.g. throwing an exception. Note that this handler must not trigger any additional allocations itself.
If no error handler is installed the default is to print the error message to stderr, and call exit(1). If an error handler is installed then it is the handler's responsibility to log the message, it will no longer be printed to stderr. If the error handler returns, then exit(1) will be called.
| user_data | - An argument which will be passed to the installed error handler. |
Definition at line 129 of file ErrorHandling.cpp.
References assert(), BadAllocErrorHandler, BadAllocErrorHandlerMutex, BadAllocErrorHandlerUserData, ErrorHandler, and Lock.
Referenced by llvm::ScopedFatalErrorHandler::~ScopedFatalErrorHandler().
| void llvm::install_fatal_error_handler | ( | fatal_error_handler_t | handler, |
| void * | user_data = nullptr |
||
| ) |
install_fatal_error_handler - Installs a new error handler to be used whenever a serious (non-recoverable) error is encountered by LLVM.
If no error handler is installed the default is to print the error message to stderr, and call exit(1). If an error handler is installed then it is the handler's responsibility to log the message, it will no longer be printed to stderr. If the error handler returns, then exit(1) will be called.
It is dangerous to naively use an error handler which throws an exception. Even though some applications desire to gracefully recover from arbitrary faults, blindly throwing exceptions through unfamiliar code isn't a way to achieve this.
| user_data | - An argument which will be passed to the install error handler. |
Definition at line 64 of file ErrorHandling.cpp.
References assert(), ErrorHandler, ErrorHandlerMutex, ErrorHandlerUserData, and Lock.
Referenced by LLVMInstallFatalErrorHandler(), and llvm::ScopedFatalErrorHandler::ScopedFatalErrorHandler().
| void llvm::install_out_of_memory_new_handler | ( | ) |
Definition at line 192 of file ErrorHandling.cpp.
References assert(), and out_of_memory_new_handler().
Referenced by llvm::InitLLVM::InitLLVM(), report_bad_alloc_error(), and llvm::ScopedFatalErrorHandler::~ScopedFatalErrorHandler().
| const std::error_category & llvm::instrprof_category | ( | ) |
Definition at line 137 of file InstrProf.cpp.
References ErrorCategory.
Referenced by getPGOFuncNameMetadataName(), and make_error_code().
|
inline |
Definition at line 133 of file InstIterator.h.
References inst_begin(), and inst_end().
Referenced by addBoundsChecking(), addMustTailToCoroResumes(), addNonNullAttrs(), bitTrackingDCE(), llvm::coro::buildCoroutineFrame(), llvm::coro::Shape::buildFrom(), llvm::Function::callsFunctionThatReturnsTwice(), canTRE(), computeUsesMSVCFloatingPoint(), createConstantPropagationPass(), createMemDepPrinter(), createMemDerefPrinter(), createMustBeExecutedContextPrinter(), ensurePromotedGV(), explicifyGuards(), getPointerOperands(), llvm::GPUDivergenceAnalysis::GPUDivergenceAnalysis(), INITIALIZE_PASS(), llvm::Attributor::initializeInformationCache(), isMustExecuteIn(), isReInterleaveMask(), isUnconditionalBranch(), lowerGuardIntrinsic(), lowerWidenableCondition(), llvm::InstDeleterIRStrategy::mutate(), llvm::DivergenceAnalysis::print(), llvm::ScalarEvolution::print(), llvm::DemandedBitsWrapperPass::releaseMemory(), removeTailCallAttribute(), replaceDevirtTrigger(), llvm::PostOrderFunctionAttrsPass::run(), llvm::InlinerPass::run(), llvm::DevirtSCCRepeatedPass< PassT >::run(), runImpl(), llvm::RewriteStatepointsForGC::runOnFunction(), shouldKeepInEntry(), stripNonValidDataFromBody(), and stripTBAA().
|
inline |
Definition at line 142 of file InstIterator.h.
References inst_begin(), and inst_end().
|
inline |
Definition at line 147 of file InstIterator.h.
References inst_begin(), and inst_end().
|
inline |
Definition at line 156 of file InstIterator.h.
References inst_begin(), and inst_end().
|
static |
IntCCToAVRCC - Convert a DAG integer condition code to an AVR CC.
Definition at line 422 of file AVRISelLowering.cpp.
References llvm::AVRISD::BRCOND, C, llvm::AVRISD::CMP, llvm::AVRISD::CMPC, llvm::AVRCC::COND_EQ, llvm::AVRCC::COND_GE, llvm::AVRCC::COND_LO, llvm::AVRCC::COND_LT, llvm::AVRCC::COND_MI, llvm::AVRCC::COND_NE, llvm::AVRCC::COND_PL, llvm::AVRCC::COND_SH, llvm::ISD::EXTRACT_ELEMENT, llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getDataLayout(), llvm::SelectionDAG::getFrameIndex(), llvm::MachineFunction::getInfo(), llvm::SelectionDAG::getIntPtrConstant(), llvm::SelectionDAG::getMachineFunction(), llvm::SelectionDAG::getNode(), llvm::SDValue::getOperand(), llvm::TargetLoweringBase::getPointerTy(), llvm::SelectionDAG::getStore(), llvm::SDValue::getValueType(), llvm::AVRMachineFunctionInfo::getVarArgsFrameIndex(), llvm::SelectionDAG::getVTList(), llvm::MVT::Glue, llvm::MVT::i16, llvm::MVT::i32, llvm::MVT::i64, llvm::MVT::i8, llvm_unreachable, llvm::MVT::Other, llvm::AVRISD::SELECT_CC, llvm::ISD::SETEQ, llvm::ISD::SETGE, llvm::ISD::SETGT, llvm::ISD::SETLE, llvm::ISD::SETLT, llvm::ISD::SETNE, llvm::ISD::SETUGE, llvm::ISD::SETUGT, llvm::ISD::SETULE, llvm::ISD::SETULT, std::swap(), and llvm::AVRISD::TST.
|
inline |
Helper function to internalize functions and variables in a Module.
Definition at line 70 of file Internalize.h.
References llvm::InternalizePass::InternalizePass().
Referenced by llvm::LTOCodeGenerator::compile(), and thinLTOInternalizeModule().
|
static |
Definition at line 370 of file APFloat.cpp.
References createError(), decDigitValue(), dot, llvm::sys::path::end(), llvm::decimalInfo::exponent, llvm::decimalInfo::firstSigDigit, llvm::decimalInfo::lastSigDigit, llvm::decimalInfo::normalizedExponent, readExponent(), skipLeadingZeroesAndAnyDot(), and llvm::Error::success().
| MDNode * llvm::intersectAccessGroups | ( | const Instruction * | Inst1, |
| const Instruction * | Inst2 | ||
| ) |
Compute the access-group list of access groups that Inst1 and Inst2 are both in.
If either instruction does not access memory at all, it is considered to be in every list.
If the list contains just one access group, it is returned directly. If the list is empty, returns nullptr.
Definition at line 548 of file VectorUtils.cpp.
References addToAccessGroupList(), assert(), llvm::SmallPtrSetImpl< PtrType >::count(), llvm::Instruction::getMetadata(), llvm::MDNode::getNumOperands(), isValidAsAccessGroup(), llvm::Instruction::mayReadOrWriteMemory(), and llvm::SmallVectorTemplateBase< T >::push_back().
Referenced by combineMetadata(), and propagateMetadata().
|
inline |
Definition at line 190 of file AliasAnalysis.h.
Referenced by llvm::AliasSetTracker::add(), AreSequentialAccesses(), llvm::AAResults::canInstructionRangeModRef(), llvm::AAResults::getArgModRefInfo(), llvm::GlobalsAAResult::getModRefInfo(), llvm::AAResults::getModRefInfo(), and mayLoopAccessLocation().
|
inline |
Definition at line 248 of file IntervalIterator.h.
Referenced by llvm::IntervalPartition::IntervalPartition(), and llvm::IntervalPartition::runOnFunction().
|
inline |
Definition at line 257 of file IntervalIterator.h.
|
inline |
Definition at line 252 of file IntervalIterator.h.
Referenced by llvm::IntervalPartition::IntervalPartition(), and llvm::IntervalPartition::runOnFunction().
|
inline |
Definition at line 261 of file IntervalIterator.h.
| iterator_range<typename GraphTraits<Inverse<GraphType> >::ChildIteratorType> llvm::inverse_children | ( | const typename GraphTraits< GraphType >::NodeRef & | G | ) |
Definition at line 128 of file GraphTraits.h.
References make_range().
| iterator_range<idf_iterator<T> > llvm::inverse_depth_first | ( | const T & | G | ) |
Definition at line 276 of file DepthFirstIterator.h.
References idf_begin(), idf_end(), and make_range().
| iterator_range<idf_ext_iterator<T, SetTy> > llvm::inverse_depth_first_ext | ( | const T & | G, |
| SetTy & | S | ||
| ) |
Definition at line 300 of file DepthFirstIterator.h.
References idf_ext_begin(), idf_ext_end(), and make_range().
Referenced by isSafeToPromoteArgument(), and MarkBlocksLiveIn().
| iterator_range<typename GraphTraits<Inverse<GraphType> >::nodes_iterator> llvm::inverse_nodes | ( | const GraphType & | G | ) |
Definition at line 114 of file GraphTraits.h.
References make_range().
| iterator_range<ipo_iterator<T> > llvm::inverse_post_order | ( | const T & | G | ) |
Definition at line 230 of file PostOrderIterator.h.
References ipo_begin(), ipo_end(), and make_range().
| iterator_range<ipo_ext_iterator<T, SetType> > llvm::inverse_post_order_ext | ( | const T & | G, |
| SetType & | S | ||
| ) |
Definition at line 255 of file PostOrderIterator.h.
References ipo_ext_begin(), ipo_ext_end(), and make_range().
Referenced by llvm::po_iterator_storage< LoopBounds, true >::insertEdge(), and isUnconditionalBranch().
| ipo_iterator<T> llvm::ipo_begin | ( | const T & | G | ) |
Definition at line 220 of file PostOrderIterator.h.
References llvm::po_iterator< Inverse< T >, SetType, External >::begin().
Referenced by inverse_post_order().
| ipo_iterator<T> llvm::ipo_end | ( | const T & | G | ) |
Definition at line 225 of file PostOrderIterator.h.
References llvm::po_iterator< Inverse< T >, SetType, External >::end().
Referenced by inverse_post_order().
| ipo_ext_iterator<T, SetType> llvm::ipo_ext_begin | ( | const T & | G, |
| SetType & | S | ||
| ) |
Definition at line 244 of file PostOrderIterator.h.
References llvm::po_iterator< Inverse< T >, SetType, External >::begin().
Referenced by inverse_post_order_ext().
| ipo_ext_iterator<T, SetType> llvm::ipo_ext_end | ( | const T & | G, |
| SetType & | S | ||
| ) |
Definition at line 249 of file PostOrderIterator.h.
References llvm::po_iterator< Inverse< T >, SetType, External >::end().
Referenced by inverse_post_order_ext().
Wrapper function around std::find to detect if an element exists in a container.
Definition at line 1241 of file STLExtras.h.
References adl_begin(), adl_end(), and find().
Referenced by llvm::MCAssembler::addFileName(), addRegDescribedVar(), llvm::GlobalsAAResult::alias(), llvm::AllocationOrder::AllocationOrder(), canMoveAboveCall(), llvm::TailDuplicator::canTailDuplicate(), llvm::TargetRegisterInfo::checkAllSuperRegsMarked(), colorEHFunclets(), ContainsReg(), llvm::VPRecipeBuilder::createEdgeMask(), DoInitialMatch(), llvm::object::ELFObjectFile< ELFT >::dynamic_relocation_sections(), llvm::slpvectorizer::BoUpSLP::eraseInstructions(), llvm::Evaluator::EvaluateFunction(), FindAllMemoryUses(), FindMostPopularDest(), foldPatchpoint(), getChainID(), getInputChainForNode(), getInterfaceValue(), getNames(), getReassignedChan(), llvm::SystemZRegisterInfo::getRegAllocationHints(), llvm::ARMBaseRegisterInfo::getRegAllocationHints(), llvm::TargetRegisterInfo::getRegAllocationHints(), llvm::cl::getRegisteredOptions(), guessSuccessors(), llvm::CallBase::hasOperandBundlesOtherThan(), llvm::HexagonBlockRanges::RangeList::include(), llvm::MDNode::intersect(), isCallPromotable(), isEphemeralValueOf(), isExitBlock(), llvm::AllocationOrder::isHint(), isImageReadOnly(), isImageReadWrite(), isImageWriteOnly(), llvm::VLIWResourceModel::isInPacket(), llvm::LoadAndStorePromoter::isInstInList(), isLoopIncrement(), llvm::MachineBasicBlock::isPredecessor(), isSampler(), llvm::LiveIntervalUnion::Query::isSeenInterference(), llvm::MachineBasicBlock::isSuccessor(), llvm::Value::isUsedInBasicBlock(), lowerStatepointMetaArgs(), lowerV8I16GeneralSingleInputShuffle(), llvm::yaml::MappingTraits< SIArgument >::mapping(), mayUsePostIncMode(), llvm::pdb::NativeEnumGlobals::NativeEnumGlobals(), llvm::pdb::NativeEnumTypes::NativeEnumTypes(), llvm::orc::BlockFreqQuery::operator()(), llvm::PBQP::Graph< SolverT >::NodeItr::operator*(), llvm::PBQP::Graph< SolverT >::EdgeItr::operator*(), llvm::slpvectorizer::BoUpSLP::optimizeGatherSequence(), llvm::opt::OptTable::OptTable(), llvm::yaml::Scanner::peekNext(), populateExternalRelations(), llvm::PMDataManager::preserveHigherLevelAnalysis(), propagateMetadata(), llvm::SDValue::reachesChainWithoutSideEffects(), rematerializeLiveValues(), RemoveInstInputs(), llvm::PMDataManager::removeNotPreservedAnalysis(), llvm::DICompositeType::replaceElements(), llvm::DIMacroFile::replaceElements(), llvm::SelectionDAGISel::SelectCodeCommon(), llvm::MachineBasicBlock::SplitCriticalEdge(), llvm::slpvectorizer::BoUpSLP::vectorizeTree(), llvm::LoopBase< BasicBlock, Loop >::verifyLoop(), and llvm::MemorySSA::verifyOrderingDominationAndDefUses().
| bool llvm::is_splat | ( | R && | Range | ) |
Wrapper function around std::equal to detect if all elements in a container are same.
Definition at line 1326 of file STLExtras.h.
References adl_begin(), adl_end(), llvm::lltok::equal, and size().
Definition at line 100 of file HexagonDepTimingClasses.h.
Referenced by llvm::HexagonInstrInfo::isLateResultInstr(), and llvm::HexagonInstrInfo::isTC1().
Definition at line 71 of file HexagonDepTimingClasses.h.
Referenced by llvm::HexagonInstrInfo::isTC2().
Definition at line 46 of file HexagonDepTimingClasses.h.
Referenced by llvm::HexagonInstrInfo::isTC2Early().
Definition at line 19 of file HexagonDepTimingClasses.h.
Referenced by llvm::HexagonInstrInfo::isEarlySourceInstr().
Definition at line 56 of file HexagonDepTimingClasses.h.
Referenced by llvm::HexagonInstrInfo::isEarlySourceInstr(), and llvm::HexagonInstrInfo::isTC4x().
|
inline |
Definition at line 141 of file Casting.h.
Referenced by llvm::DwarfUnit::applySubprogramAttributes(), and llvm::MCDwarfLoc::setIsa().
|
inline |
| int llvm::isAArch64FrameOffsetLegal | ( | const MachineInstr & | MI, |
| StackOffset & | Offset, | ||
| bool * | OutUseUnscaledOp = nullptr, |
||
| unsigned * | OutUnscaledOp = nullptr, |
||
| int64_t * | EmittableOffset = nullptr |
||
| ) |
Check if the Offset is a valid frame offset for MI.
The returned value reports the validity of the frame offset for MI. It uses the values defined by AArch64FrameOffsetStatus for that. If result == AArch64FrameOffsetCannotUpdate, MI cannot be updated to use an offset.eq If result & AArch64FrameOffsetIsLegal, Offset can completely be rewritten in MI. If result & AArch64FrameOffsetCanUpdate, Offset contains the amount that is off the limit of the legal offset. If set, OutUseUnscaledOp will contain the whether MI should be turned into an unscaled operator, which opcode is in OutUnscaledOp. If set, EmittableOffset contains the amount that can be set in MI (possibly with OutUnscaledOp if OutUseUnscaledOp is true) and that is a legal offset.
Definition at line 3429 of file AArch64InstrInfo.cpp.
References AArch64FrameOffsetCannotUpdate, AArch64FrameOffsetCanUpdate, AArch64FrameOffsetIsLegal, assert(), llvm::StackOffset::getBytes(), llvm::MachineOperand::getImm(), llvm::AArch64InstrInfo::getLoadStoreImmIdx(), llvm::AArch64InstrInfo::getMemOpInfo(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::StackOffset::getScalableBytes(), llvm::AArch64InstrInfo::getUnscaledLdSt(), llvm::MVT::i8, isSVEScaledImmInstruction(), llvm_unreachable, and llvm::MVT::nxv1i8.
Referenced by llvm::AArch64RegisterInfo::eliminateFrameIndex(), estimateRSStackSizeLimit(), llvm::AArch64RegisterInfo::isFrameOffsetLegal(), and rewriteAArch64FrameIndex().
|
inline |
Definition at line 127 of file AtomicOrdering.h.
References Acquire, and isAtLeastOrStrongerThan().
Referenced by atomicSizeSupported(), llvm::AArch64TargetLowering::emitLoadLinked(), llvm::ARMTargetLowering::emitLoadLinked(), llvm::RISCVTargetLowering::emitTrailingFence(), llvm::PPCTargetLowering::emitTrailingFence(), and llvm::TargetLoweringBase::emitTrailingFence().
Checks that Addr is a multiple of the alignment.
Definition at line 158 of file Alignment.h.
References isAligned().
Referenced by llvm::FixedStreamArray< PSHashRecord >::operator[](), and llvm::BinaryStreamReader::readArray().
|
static |
Definition at line 22 of file ARMMacroFusion.cpp.
References llvm::MachineInstr::getOpcode().
Referenced by shouldScheduleAdjacent().
Checks that SizeInBytes is a multiple of the alignment.
Definition at line 146 of file Alignment.h.
References llvm::Align::value().
Referenced by getLoadStoreOffsetAlign(), isAddrAligned(), isDereferenceableAndAlignedPointer(), llvm::X86InstrInfo::loadRegFromStackSlot(), llvm::X86InstrInfo::storeRegToStackSlot(), and llvm::X86InstrInfo::unfoldMemoryOperand().
|
inline |
Checks that SizeInBytes is a multiple of the alignment.
Returns false if the alignment is undefined.
Definition at line 152 of file Alignment.h.
References ALIGN_CHECK_ISSET.
| bool llvm::isAllocaPromotable | ( | const AllocaInst * | AI | ) |
Return true if this alloca is legal for promotion.
This is true if there are only loads, stores, and lifetime markers (transitively) using this alloca. This also enforces that there is only ever one layer of bitcasts or GEPs between the alloca and the lifetime markers.
Definition at line 64 of file PromoteMemoryToRegister.cpp.
References assert(), B, llvm::ArrayRef< T >::back(), llvm::ArrayRef< T >::begin(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::clear(), clear(), llvm::TinyPtrVector< EltTy >::clear(), llvm::SmallVectorImpl< T >::clear(), ComputeLiveInBlocks(), E, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::ArrayRef< T >::end(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::erase(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), FindDbgAddrUses(), llvm::PointerType::getAddressSpace(), llvm::Module::getDataLayout(), llvm::Type::getInt8PtrTy(), llvm::User::getOperand(), llvm::Instruction::getParent(), llvm::BasicBlock::getParent(), llvm::GlobalValue::getParent(), llvm::DominatorTreeBase< NodeT, IsPostDom >::getRoot(), llvm::AllocaInst::getType(), I, Info, onlyUsedByLifetimeMarkers(), P, pred_size(), llvm::SmallVectorTemplateBase< T >::push_back(), SI, llvm::Value::user_begin(), llvm::Value::user_end(), llvm::Value::users(), and llvm::IndexedInstrProf::Version.
Referenced by eliminateSwiftErrorAlloca(), GlobalWasGeneratedByCompiler(), promoteMemoryToRegister(), promoteSingleBlockAlloca(), and RetagMask().
| bool llvm::isAllocationFn | ( | const Value * | V, |
| const TargetLibraryInfo * | TLI, | ||
| bool | LookThroughBitCast = false |
||
| ) |
Tests if a value is a call or invoke to a library function that allocates or reallocates memory (either malloc, calloc, realloc, or strdup like).
Definition at line 235 of file MemoryBuiltins.cpp.
References AnyAlloc, and getAllocationData().
Referenced by annotateAnyAllocSite(), CleanupPointerRootUsers(), isNoAliasFn(), IsSafeComputationToRemove(), and llvm::InstCombiner::visitGetElementPtrInst().
| bool llvm::isAllocationFn | ( | const Value * | V, |
| function_ref< const TargetLibraryInfo &(Function &)> | GetTLI, | ||
| bool | LookThroughBitCast = false |
||
| ) |
Definition at line 239 of file MemoryBuiltins.cpp.
References AnyAlloc, and getAllocationData().
| bool llvm::isAllocLikeFn | ( | const Value * | V, |
| const TargetLibraryInfo * | TLI, | ||
| bool | LookThroughBitCast = false |
||
| ) |
Tests if a value is a call or invoke to a library function that allocates memory (either malloc, calloc, or strdup like).
Definition at line 285 of file MemoryBuiltins.cpp.
References AllocLike, and getAllocationData().
Referenced by annotateAnyAllocSite(), computePointerICmp(), eliminateDeadStores(), llvm::GlobalsAAResult::getModRefBehavior(), handleEndBlock(), isNeverEqualToUnescapedAlloc(), isSafeToExecuteUnconditionally(), and promoteLoopAccessesToScalars().
Returns true if V is an integer constant with all bits set.
Definition at line 8821 of file SelectionDAG.cpp.
References dyn_cast(), and llvm::ConstantSDNode::isAllOnesValue().
Referenced by llvm::ConstantFPSDNode::classof(), combineCarryThroughADD(), combineSext(), combineShiftAnd1ToBitTest(), EmitAVX512Test(), foldExtendedSignBitTest(), llvm::PPC::get_VSPLTI_elt(), getMaskNode(), getVectorMaskingNode(), InsertBitToMaskVector(), isLowerSaturatingConditional(), isZeroOrAllOnes(), LowerINTRINSIC_W_CHAIN(), mayTailCallThisCC(), recoverFramePointer(), llvm::R600TargetLowering::ReplaceNodeResults(), scalarizeBinOpOfSplats(), simplifyDivRem(), stripTruncAndExt(), tryFoldToZero(), and visitORCommutative().
Return true if the value is a constant -1 integer or a splatted vector of a constant -1 integer (with no undefs).
Does not permit build vector implicit truncation.
Definition at line 8950 of file SelectionDAG.cpp.
References C, llvm::SDValue::getScalarValueSizeInBits(), llvm::SDNode::getValueSizeInBits(), llvm::ConstantSDNode::isAllOnesValue(), isConstOrConstSplat(), and peekThroughBitcasts().
Referenced by llvm::ConstantFPSDNode::classof(), foldAddSubOfSignBit(), foldExtendedSignBitTest(), getAsNonOpaqueConstant(), simplifyDivRem(), stripTruncAndExt(), and tryFoldToZero().
Checks whether character C is either a decimal digit or an uppercase or lowercase letter as classified by "C" locale.
Definition at line 88 of file StringExtras.h.
References isAlpha(), and isDigit().
Referenced by llvm::Annotations::Annotations(), and IsIdentifierChar().
Checks if character C is a valid letter as classified by "C" locale.
Definition at line 82 of file StringExtras.h.
Referenced by isAlnum().
isARMArea1Register - Returns true if the register is a low register (r0-r7) or a stack/pc register that we should push/pop.
Definition at line 43 of file ARMBaseRegisterInfo.h.
Referenced by llvm::ARMFrameLowering::restoreCalleeSavedRegisters(), and llvm::ARMFrameLowering::spillCalleeSavedRegisters().
Definition at line 59 of file ARMBaseRegisterInfo.h.
Referenced by llvm::ARMFrameLowering::restoreCalleeSavedRegisters(), and llvm::ARMFrameLowering::spillCalleeSavedRegisters().
Definition at line 71 of file ARMBaseRegisterInfo.h.
Referenced by llvm::ARMFrameLowering::restoreCalleeSavedRegisters(), and llvm::ARMFrameLowering::spillCalleeSavedRegisters().
isARMLowRegister - Returns true if the register is a low register (r0-r7).
Definition at line 160 of file ARMBaseInfo.h.
Referenced by checkLowRegisterList(), ContainsReg(), llvm::ARMFrameLowering::determineCalleeSaves(), llvm::Thumb1FrameLowering::emitEpilogue(), llvm::ThumbRegisterInfo::emitLoadConstPool(), llvm::Thumb1FrameLowering::emitPrologue(), emitThumbRegPlusImmediate(), emitThumbRegPlusImmInReg(), findCMPToFoldIntoCBZ(), getRealVLDOpcode(), getUnconditionalBrDisp(), llvm::Thumb1InstrInfo::loadRegFromStackSlot(), llvm::Thumb1InstrInfo::storeRegToStackSlot(), and VerifyLowRegs().
Checks whether character C is valid ASCII (high bit is zero).
Definition at line 91 of file StringExtras.h.
References C.
Referenced by isASCII(), and llvm::json::isUTF8().
|
inline |
Checks whether all characters in S are ASCII.
Definition at line 94 of file StringExtras.h.
References C, isASCII(), and LLVM_UNLIKELY.
| bool llvm::isAssumeLikeIntrinsic | ( | const Instruction * | I | ) |
Return true if it is an intrinsic that cannot be speculated but also cannot trap.
Definition at line 503 of file ValueTracking.cpp.
References F().
Referenced by GetUnderlyingObject().
|
inline |
Returns true if this personality function catches asynchronous exceptions.
Definition at line 49 of file EHPersonalities.h.
References llvm_unreachable, MSVC_Win64SEH, and MSVC_X86SEH.
Referenced by llvm::CodeViewDebug::beginFunctionImpl(), canSimplifyInvokeNoUnwind(), createPHIsForCMOVsInSinkBB(), llvm::AArch64TargetLowering::EmitLoweredCatchRet(), findUnwindDestinations(), getEHScopeMembership(), getSuccState(), llvm::SelectionDAGBuilder::getValueImpl(), INITIALIZE_PASS(), InlineFunction(), IsInterestingCmp(), llvm::X86FrameLowering::restoreCalleeSavedRegisters(), llvm::FunctionLoweringInfo::set(), and llvm::X86FrameLowering::spillCalleeSavedRegisters().
|
inline |
Definition at line 104 of file AtomicOrdering.h.
References lookup().
Referenced by areLoadsReorderable(), llvm::LegalityPredicates::atomicOrderingAtLeastOrStrongerThan(), llvm::InstructionSelector::executeMatchTable(), isAcquireOrStronger(), and isReleaseOrStronger().
| bool llvm::isBasePlusOffsetMemoryAccess | ( | unsigned | Opcode, |
| unsigned * | AddrIdx, | ||
| bool * | IsStore = nullptr |
||
| ) |
Definition at line 210 of file MipsNaClELFStreamer.cpp.
References llvm::MipsISD::LWL, llvm::MipsISD::LWR, llvm::PPCISD::SC, llvm::MipsISD::SWL, and llvm::MipsISD::SWR.
isBitcode - Return true if the given bytes are the magic bytes for LLVM IR bitcode, either with or without a wrapper.
Definition at line 217 of file BitcodeReader.h.
References isBitcodeWrapper(), and isRawBitcode().
Referenced by EmbedBitcodeInModule().
| Expected< bool > llvm::isBitcodeContainingObjCCategory | ( | MemoryBufferRef | Buffer | ) |
Return true if Buffer contains a bitcode file with ObjC code (category or class) in it.
Definition at line 6688 of file BitcodeReader.cpp.
References hasObjCCategory(), initStream(), and llvm::Expected< T >::takeError().
isBitcodeWrapper - Return true if the given bytes are the magic bytes for an LLVM IR bitcode wrapper.
Definition at line 191 of file BitcodeReader.h.
Referenced by analyzeHeader(), initStream(), and isBitcode().
Check whether a pass is a BitcodeWriterPass.
Definition at line 84 of file BitcodeWriterPass.cpp.
References llvm::Pass::getPassID().
Returns true if V is a bitwise not operation.
Assumes that an all ones constant is canonicalized to be operand 1.
Definition at line 8849 of file SelectionDAG.cpp.
References C, llvm::APInt::countTrailingOnes(), llvm::ConstantSDNode::getAPIntValue(), llvm::SDValue::getOpcode(), llvm::SDValue::getOperand(), llvm::SDValue::getScalarValueSizeInBits(), isConstOrConstSplat(), peekThroughBitcasts(), and llvm::ISD::XOR.
Referenced by llvm::ConstantFPSDNode::classof(), combineAndMaskToShift(), combineCarryDiamond(), combineExtractSubvector(), combineShiftAnd1ToBitTest(), combineShiftOfShiftedLogic(), extractBooleanFlip(), foldAddSubOfSignBit(), selectI64Imm(), llvm::TargetLowering::SimplifyDemandedBits(), tryFoldToZero(), and visitORCommutative().
| Value * llvm::isBytewiseValue | ( | Value * | V, |
| const DataLayout & | DL | ||
| ) |
If the specified value can be set by repeating the same byte in memory, return the i8 value that it is represented with.
This is true for all i8 values obviously, but is also true for i32 0, i32 -1, i16 0xF0F0, double 0.0 etc. If the value can't be handled with a repeated byte store (e.g. i16 0x1234), return null. If the value is entirely undef and padding, return undef.
Definition at line 3349 of file ValueTracking.cpp.
References assert(), C, dyn_cast(), E, llvm::ConstantInt::get(), llvm::UndefValue::get(), llvm::ConstantExpr::getBitCast(), llvm::Value::getContext(), llvm::Type::getInt16Ty(), llvm::Type::getInt32Ty(), llvm::Type::getInt64Ty(), llvm::Type::getInt8Ty(), llvm::ConstantExpr::getIntegerCast(), llvm::Type::getIntNTy(), llvm::Constant::getNullValue(), llvm::User::getNumOperands(), llvm::User::getOperand(), llvm::DataLayout::getPointerSizeInBits(), llvm::Value::getType(), llvm::DataLayout::getTypeStoreSize(), I, llvm::Type::isIntegerTy(), llvm::Constant::isNullValue(), Merge, and Size.
Referenced by getMemSetPatternValue(), getNumBytes(), hasUndefContents(), and moveUp().
Definition at line 89 of file ARMBaseRegisterInfo.h.
Referenced by isCSRestore(), and tryFoldSPUpdateIntoPushPop().
| bool llvm::isCallocLikeFn | ( | const Value * | V, |
| const TargetLibraryInfo * | TLI, | ||
| bool | LookThroughBitCast = false |
||
| ) |
Tests if a value is a call or invoke to a library function that allocates zero-filled memory (such as calloc).
Definition at line 270 of file MemoryBuiltins.cpp.
References CallocLike, and getAllocationData().
Referenced by alwaysAvailable(), annotateAnyAllocSite(), eliminateNoopStore(), extractCallocCall(), llvm::IRPosition::getAttrs(), and reportMayClobberedLoad().
|
inlinestatic |
Predicate canonicalization reduces the number of patterns that need to be matched by other transforms.
For example, we may swap the operands of a conditional branch or select to create a compare with a canonical (inverted) predicate which is then more likely to be matched with other values.
Definition at line 99 of file InstCombineInternal.h.
References llvm::CmpInst::FCMP_OGE, llvm::CmpInst::FCMP_OLE, llvm::CmpInst::FCMP_ONE, llvm::CmpInst::ICMP_NE, llvm::CmpInst::ICMP_SGE, llvm::CmpInst::ICMP_SLE, llvm::CmpInst::ICMP_UGE, and llvm::CmpInst::ICMP_ULE.
Referenced by canonicalizeCmpWithConstant(), canonicalizeSaturatedAdd(), and llvm::InstCombiner::visitBranchInst().
|
inlinestatic |
Definition at line 354 of file AArch64InstrInfo.h.
Referenced by llvm::ARCInstrInfo::removeBranch(), llvm::ARMBaseInstrInfo::removeBranch(), and llvm::AArch64InstrInfo::removeBranch().
|
inlinestatic |
Definition at line 619 of file ARMBaseInstrInfo.h.
| bool llvm::isConsecutiveAccess | ( | Value * | A, |
| Value * | B, | ||
| const DataLayout & | DL, | ||
| ScalarEvolution & | SE, | ||
| bool | CheckType = true |
||
| ) |
Returns true if the memory operations A and B are consecutive.
This is a simple API that does not depend on the analysis pass.
Definition at line 1172 of file LoopAccessAnalysis.cpp.
References llvm::ScalarEvolution::getAddExpr(), getAddressSpaceOperand(), llvm::ScalarEvolution::getConstant(), llvm::DataLayout::getIndexSizeInBits(), getLoadStorePointerOperand(), llvm::ScalarEvolution::getMinusSCEV(), llvm::ScalarEvolution::getSCEV(), llvm::Value::getType(), llvm::DataLayout::getTypeStoreSize(), llvm::APInt::sextOrTrunc(), Size, llvm::Value::stripAndAccumulateInBoundsConstantOffsets(), and X.
Referenced by AreSequentialAccesses(), getChainID(), getMemSetPatternValue(), llvm::LoopAccessInfo::getPSE(), propagateMetadata(), and llvm::SLPVectorizerPass::runImpl().
| bool llvm::IsConstantOffsetFromGlobal | ( | Constant * | C, |
| GlobalValue *& | GV, | ||
| APInt & | Offset, | ||
| const DataLayout & | DL | ||
| ) |
If this constant is a constant offset from a global, return the global and the constant.
Because of constantexprs, this function is recursive.
Definition at line 290 of file ConstantFolding.cpp.
References C, dyn_cast(), GEP, llvm::DataLayout::getIndexTypeSizeInBits(), and llvm::GlobalValue::getType().
Referenced by ConstantFoldLoadFromConstPtr(), ConstantFoldLoadThroughBitcast(), llvm::AsmPrinter::lowerConstant(), and SimplifyRelativeLoad().
| ConstantSDNode * llvm::isConstOrConstSplat | ( | SDValue | N, |
| bool | AllowUndefs = false, |
||
| bool | AllowTruncation = false |
||
| ) |
Returns the SDNode if it is a constant splat BuildVector or constant int.
Definition at line 8859 of file SelectionDAG.cpp.
References assert(), llvm::EVT::bitsGE(), llvm::EVT::getScalarType(), llvm::SDValue::getValueType(), llvm::SDNode::getValueType(), and llvm::BitVector::none().
Referenced by llvm::ConstantFPSDNode::classof(), combineADDToADDZE(), combineShiftAnd1ToBitTest(), combineShiftOfShiftedLogic(), llvm::SelectionDAG::computeKnownBits(), llvm::SelectionDAG::ComputeNumSignBits(), extractBooleanFlip(), extractShiftForRotate(), foldAddSubOfSignBit(), foldBitcastedFPLogic(), foldVectorXorShiftIntoCmp(), llvm::SelectionDAG::GetDemandedBits(), getValidShiftAmountConstant(), isAllOnesOrAllOnesSplat(), isBitwiseNot(), isBSwapHWordPair(), llvm::SelectionDAG::isKnownToBeAPowerOfTwo(), isNullOrNullSplat(), isOneOrOneSplat(), matchRotateSub(), llvm::AMDGPUTargetLowering::performTruncateCombine(), llvm::TargetLowering::SimplifyDemandedBits(), simplifyDivRem(), stripModuloOnShift(), stripTruncAndExt(), and tryFoldToZero().
| ConstantSDNode * llvm::isConstOrConstSplat | ( | SDValue | N, |
| const APInt & | DemandedElts, | ||
| bool | AllowUndefs = false, |
||
| bool | AllowTruncation = false |
||
| ) |
Returns the SDNode if it is a demanded constant splat BuildVector or constant int.
Definition at line 8882 of file SelectionDAG.cpp.
References assert(), llvm::EVT::bitsGE(), llvm::EVT::getScalarType(), llvm::SDValue::getValueType(), llvm::SDNode::getValueType(), and llvm::BitVector::none().
| ConstantFPSDNode * llvm::isConstOrConstSplatFP | ( | SDValue | N, |
| bool | AllowUndefs = false |
||
| ) |
Returns the SDNode if it is a constant splat BuildVector or constant float.
Definition at line 8906 of file SelectionDAG.cpp.
References llvm::BitVector::none().
Referenced by CanCombineFCOPYSIGN_EXTEND_ROUND(), llvm::ConstantFPSDNode::classof(), llvm::TargetLowering::getNegatedExpression(), llvm::AMDGPUTargetLowering::isConstantCostlierToNegate(), isContractable(), llvm::TargetLowering::isNegatibleForFree(), LowerFCOPYSIGN(), scalarizeBinOpOfSplats(), llvm::SelectionDAG::simplifyFPBinop(), vectorEltWillFoldAway(), and visitFMinMax().
| ConstantFPSDNode * llvm::isConstOrConstSplatFP | ( | SDValue | N, |
| const APInt & | DemandedElts, | ||
| bool | AllowUndefs = false |
||
| ) |
Returns the SDNode if it is a demanded constant splat BuildVector or constant float.
Definition at line 8920 of file SelectionDAG.cpp.
References llvm::BitVector::none().
| bool llvm::isControlFlowEquivalent | ( | const Instruction & | I0, |
| const Instruction & | I1, | ||
| const DominatorTree & | DT, | ||
| const PostDominatorTree & | PDT | ||
| ) |
Return true if I0 and I1 are control flow equivalent.
Two instructions are control flow equivalent if when one executes, the other is guaranteed to execute. This is determined using dominators and post-dominators: if A dominates B and B post-dominates A then A and B are control-flow equivalent.
Definition at line 33 of file CodeMoverUtils.cpp.
References llvm::Instruction::getParent().
Referenced by isSafeToMoveBefore().
| bool llvm::isControlFlowEquivalent | ( | const BasicBlock & | BB0, |
| const BasicBlock & | BB1, | ||
| const DominatorTree & | DT, | ||
| const PostDominatorTree & | PDT | ||
| ) |
Return true if BB0 and BB1 are control flow equivalent.
Two basic blocks are control flow equivalent if when one executes, the other is guaranteed to execute. This is determined using dominators and post-dominators: if A dominates B and B post-dominates A then A and B are control-flow equivalent.
Definition at line 39 of file CodeMoverUtils.cpp.
References llvm::PostDominatorTree::dominates(), and llvm::DominatorTree::dominates().
|
static |
Definition at line 1568 of file AVRISelLowering.cpp.
References llvm::MachineInstrBuilder::addReg(), BuildMI(), llvm::MCInstrInfo::get(), llvm::MachineInstr::getDebugLoc(), llvm::AVRSubtarget::getInstrInfo(), I, llvm::AVRTargetLowering::Subtarget, and TII.
Referenced by isV8EligibleForIT().
| bool llvm::IsCPSRDead< MachineInstr > | ( | const MachineInstr * | MI | ) |
Definition at line 682 of file ARMBaseInstrInfo.cpp.
References llvm::numbers::e, llvm::MachineOperand::getReg(), llvm::MachineOperand::isDead(), llvm::MachineOperand::isReg(), llvm::MachineOperand::isUndef(), llvm::MachineOperand::isUse(), and MI.
|
inline |
Definition at line 10346 of file ARMAsmParser.cpp.
References llvm::ARMCC::AL, llvm::MCSubtargetInfo::ApplyFeatureFlag(), ARMMnemonicSpellCheck(), assert(), llvm::ARMBuildAttrs::AttrTypeFromString(), llvm::AsmToken::Comma, llvm::ARMBuildAttrs::compatibility, llvm::ARMBuildAttrs::CPU_name, llvm::ARMBuildAttrs::CPU_raw_name, llvm::MCSymbolRefExpr::create(), dbgs(), llvm::AsmToken::Dollar, llvm::MCInst::dump_pretty(), dyn_cast(), llvm::MCStreamer::EmitInstruction(), llvm::AsmToken::EndOfStatement, Error, llvm::MCInstrDesc::findFirstPredOperandIdx(), Format, llvm::ARM::getArchName(), llvm::MCSubtargetInfo::getFeatureBits(), llvm::ARM::getFPUFeatures(), llvm::AsmToken::getIdentifier(), llvm::AsmToken::getIntVal(), llvm::AsmToken::getLoc(), llvm::MCInst::getOpcode(), llvm::MCInst::getOperand(), llvm::ARMCC::getOppositeCondition(), llvm::AsmToken::getString(), llvm::AsmToken::getStringContents(), getSubtargetFeatureName(), llvm::MCAsmParser::getTok(), getToken(), llvm::MCConstantExpr::getValue(), llvm::MCInstrDesc::hasDefOfPhysReg(), llvm::AsmToken::Hash, llvm::AsmToken::Identifier, llvm::AsmToken::Integer, llvm::ARM::INVALID, llvm::AsmToken::is(), llvm::MCInstrDesc::isBranch(), llvm::MCInstrDesc::isCall(), llvm::MCObjectFileInfo::IsCOFF, llvm::MCInstrDesc::isIndirectBranch(), llvm::MCObjectFileInfo::IsMachO, llvm::AsmToken::isNot(), llvm::MCInstrDesc::isPredicable(), llvm::MCInstrDesc::isReturn(), llvm::MCInstrDesc::isTerminator(), isThumb(), isV8EligibleForIT(), llvm::MCAsmParser::Lex(), LLVM_DEBUG, llvm_unreachable, llvm::StringRef::lower(), MCAF_Code16, MCAF_Code32, Mode, MRI, Name, llvm::ARM::EHABI::NUM_PERSONALITY_INDEX, llvm::SystemZISD::OC, Operands, llvm::ARM::parseArch(), llvm::MCParserUtils::parseAssignmentExpression(), llvm::MCAsmParser::parseExpression(), llvm::ARM::parseFPU(), llvm::MCAsmParser::parseIdentifier(), llvm::MCAsmParser::parseOptionalToken(), llvm::MCAsmParser::parseToken(), llvm::SmallVectorTemplateBase< T >::push_back(), Reg, llvm::ARMBuildAttrs::Section, llvm::MCSubtargetInfo::setDefaultFeatures(), llvm::MCInst::setLoc(), Size, llvm::AsmToken::String, llvm::ARMBuildAttrs::Symbol, T, Tag, llvm::StringRef::trim(), llvm::MCSection::UseCodeAlign(), llvm::MCSymbolRefExpr::VK_ARM_TLSDESCSEQ, and Warning.
| bool llvm::isCriticalEdge | ( | const Instruction * | TI, |
| unsigned | SuccNum, | ||
| bool | AllowIdenticalEdges = false |
||
| ) |
Return true if the specified edge is a critical edge.
isCriticalEdge - Return true if the specified edge is a critical edge.
Critical edges are edges from a block with multiple successors to a block with multiple predecessors.
Definition at line 88 of file CFG.cpp.
References assert(), and llvm::Instruction::getSuccessor().
Referenced by llvm::CFGMST< Edge, BBInfo >::buildEdges(), DemoteRegToStack(), isOnlyReachableViaThisEdge(), and SplitCriticalEdge().
| bool llvm::isCriticalEdge | ( | const Instruction * | TI, |
| const BasicBlock * | Succ, | ||
| bool | AllowIdenticalEdges = false |
||
| ) |
Definition at line 94 of file CFG.cpp.
References assert(), E, find(), llvm::Instruction::getNumSuccessors(), llvm::Instruction::getParent(), I, llvm::Instruction::isTerminator(), pred_begin(), pred_end(), and predecessors().
isCurrentDebugType - Return true if the specified string is the debug type specified on the command line, or if none was specified on the command line with the -debug-only=X option.
Return true if the specified string is the debug type specified on the command line, or if none was specified on the command line with the -debug-only=X option.
Definition at line 50 of file Debug.cpp.
References setCurrentDebugTypes().
Referenced by INITIALIZE_PASS(), and isDebug().
| bool llvm::isDereferenceableAndAlignedInLoop | ( | LoadInst * | LI, |
| Loop * | L, | ||
| ScalarEvolution & | SE, | ||
| DominatorTree & | DT | ||
| ) |
Return true if we can prove that the given load (which is assumed to be within the specified loop) would access only dereferenceable memory, and be properly aligned on every iteration of the specified loop regardless of its placement within the loop.
(i.e. does not require predication beyond that required by the the header itself and could be hoisted into the header if desired.) This is more powerful than the variants above when the address loaded from is analyzeable by SCEV.
Definition at line 197 of file Loads.cpp.
References assert(), dyn_cast(), llvm::LoadInst::getAlignment(), llvm::Module::getDataLayout(), llvm::BasicBlock::getFirstNonPHI(), llvm::LoopBase< BlockT, LoopT >::getHeader(), llvm::Instruction::getModule(), llvm::LoadInst::getPointerOperand(), llvm::ScalarEvolution::getSCEV(), llvm::ScalarEvolution::getSmallConstantTripCount(), llvm::Value::getType(), isDereferenceableAndAlignedPointer(), llvm::Loop::isLoopInvariant(), llvm::ScalarEvolution::isLoopInvariant(), and llvm::Align::value().
Referenced by llvm::LoopVectorizationLegality::blockNeedsPredication().
| bool llvm::isDereferenceableAndAlignedPointer | ( | const Value * | V, |
| Type * | Ty, | ||
| MaybeAlign | Alignment, | ||
| const DataLayout & | DL, | ||
| const Instruction * | CtxI = nullptr, |
||
| const DominatorTree * | DT = nullptr |
||
| ) |
Returns true if V is always a dereferenceable pointer with alignment greater or equal than requested.
If the context instruction is specified performs context-sensitive analysis and returns true if the pointer is dereferenceable at the specified instruction.
Definition at line 138 of file Loads.cpp.
References llvm::DataLayout::getPointerTypeSizeInBits(), llvm::Value::getType(), llvm::DataLayout::getTypeStoreSize(), llvm::DataLayout::getValueOrABITypeAlignment(), and llvm::Type::isSized().
Referenced by canTransformToMemCmp(), createMemDerefPrinter(), llvm::MachinePointerInfo::isDereferenceable(), isDereferenceableAndAlignedInLoop(), isDereferenceableAndAlignedPointer(), isDereferenceableForAllocaSize(), isDereferenceablePointer(), isSafeToLoadUnconditionally(), isSafeToSpeculativelyExecute(), promoteLoopAccessesToScalars(), and simplifyX86vpermv().
| bool llvm::isDereferenceableAndAlignedPointer | ( | const Value * | V, |
| Align | Alignment, | ||
| const APInt & | Size, | ||
| const DataLayout & | DL, | ||
| const Instruction * | CtxI = nullptr, |
||
| const DominatorTree * | DT = nullptr |
||
| ) |
Returns true if V is always dereferenceable for Size byte with alignment greater or equal than requested.
If the context instruction is specified performs context-sensitive analysis and returns true if the pointer is dereferenceable at the specified instruction.
Definition at line 123 of file Loads.cpp.
References isDereferenceableAndAlignedPointer().
| bool llvm::isDereferenceablePointer | ( | const Value * | V, |
| Type * | Ty, | ||
| const DataLayout & | DL, | ||
| const Instruction * | CtxI = nullptr, |
||
| const DominatorTree * | DT = nullptr |
||
| ) |
Return true if this is always a dereferenceable pointer.
If the context instruction is specified perform context-sensitive analysis and return true if the pointer is dereferenceable at the specified instruction.
Definition at line 159 of file Loads.cpp.
References isDereferenceableAndAlignedPointer(), and llvm::Align::None().
Referenced by allCallersPassValidPointerForArgument(), createMemDerefPrinter(), and getUniformBase().
Checks if character C is one of the 10 decimal digits.
Definition at line 76 of file StringExtras.h.
Referenced by llvm::StringRef::compare_numeric(), doHexLookAhead(), GetAutoSenseRadix(), intToken(), isAlnum(), IsIdentifierChar(), parseNamePrefix(), and llvm::AsmLexer::setBuffer().
| bool llvm::isEqual | ( | const GCNRPTracker::LiveRegSet & | S1, |
| const GCNRPTracker::LiveRegSet & | S2 | ||
| ) |
Definition at line 68 of file GCNRegPressure.cpp.
References llvm::GCNRegPressure::AGPR32, llvm::GCNRegPressure::AGPR_TUPLE, assert(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), llvm::MachineRegisterInfo::getRegClass(), llvm::MachineRegisterInfo::getTargetRegisterInfo(), I, llvm::SIRegisterInfo::isSGPRClass(), llvm::Register::isVirtualRegister(), MRI, P, Reg, llvm::GCNRegPressure::SGPR32, llvm::GCNRegPressure::SGPR_TUPLE, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::size(), llvm::GCNRegPressure::VGPR32, and llvm::GCNRegPressure::VGPR_TUPLE.
Referenced by DeleteTriviallyDeadInstructions(), llvm::GVNExpression::Expression::dump(), EliminateDuplicatePHINodes(), llvm::InnerLoopVectorizer::fixupIVUsers(), gatherUnrollingPreferences(), llvm::DenseMapInfo< CachedHashStringRef >::getHashValue(), llvm::DenseMapInfo< CachedHashString >::getHashValue(), getRegPressure(), llvm::DenseMapInfo< SimpleValue >::getTombstoneKey(), llvm::DenseMapInfo< CallValue >::getTombstoneKey(), llvm::slpvectorizer::BoUpSLP::BlockScheduling::ReadyList::insert(), llvm::GCNUpwardRPTracker::isValid(), llvm::DWARFDebugNames::SentinelError::log(), markAliveBlocks(), llvm::ImmutableList< T >::operator==(), and llvm::GCNScheduleDAGMILive::schedule().
isFreeCall - Returns non-null if the value is a call to the builtin free()
Definition at line 462 of file MemoryBuiltins.cpp.
References Callee, dyn_cast(), getCalledFunction(), llvm::TargetLibraryInfo::getLibFunc(), llvm::Value::getName(), llvm::TargetLibraryInfo::has(), I, and isLibFreeFunction().
Referenced by eliminateDeadStores(), extractCallocCall(), llvm::IRPosition::getAttrs(), GetLocation(), llvm::GlobalsAAResult::getModRefBehavior(), isAllocSiteRemovable(), isFreeCall(), and llvm::InstCombiner::visitCallInst().
|
inline |
Definition at line 173 of file MemoryBuiltins.h.
References isFreeCall().
Return true if the specified value is free to invert (apply ~ to).
This happens in cases where the ~ can be eliminated. If WillInvertAllUses is true, work under the assumption that the caller intends to remove all uses of V and only keep uses of ~V.
See also: canFreelyInvertAllUsersOf()
Definition at line 186 of file InstCombineInternal.h.
References llvm::MCID::Add, llvm::PatternMatch::m_AnyIntegralConstant(), llvm::PatternMatch::m_Not(), llvm::PatternMatch::m_Select(), llvm::PatternMatch::m_Value(), and llvm::PatternMatch::match().
Referenced by canonicalizeSaturatedAdd(), matchDeMorgansLaws(), sinkNotIntoXor(), llvm::InstCombiner::visitAnd(), and llvm::InstCombiner::visitXor().
|
inline |
Returns true if this is a personality function that invokes handler funclets (which must return to it).
Definition at line 64 of file EHPersonalities.h.
References CoreCLR, llvm_unreachable, MSVC_CXX, MSVC_Win64SEH, and MSVC_X86SEH.
Referenced by llvm::WinException::endFunction(), llvm::X86TargetLowering::getExceptionSelectorRegister(), getMOVL(), INITIALIZE_PASS(), llvm::SelectionDAGBuilder::lowerInvokable(), llvm::MachineFunction::MachineFunction(), mapWasmLandingPadIndex(), llvm::StackProtector::runOnFunction(), and llvm::FunctionLoweringInfo::set().
isFunctionInPrintList - returns true if a function should be printed via
Definition at line 132 of file LegacyPassManager.cpp.
Referenced by llvm::CallGraphSCCPass::getAnalysisUsage(), llvm::PrintModulePass::run(), and llvm::PrintFunctionPass::run().
Definition at line 36 of file Statepoint.cpp.
Referenced by isGCRelocate(), isSafeToEliminateVarargsCast(), and needsStatepoint().
Definition at line 40 of file Statepoint.cpp.
References isGCRelocate().
Definition at line 46 of file Statepoint.cpp.
Referenced by isGCResult(), isSafeToEliminateVarargsCast(), and needsStatepoint().
Definition at line 48 of file Statepoint.cpp.
References isGCResult().
| bool llvm::isGEPBasedOnPointerToString | ( | const GEPOperator * | GEP, |
| unsigned | CharSize = 8 |
||
| ) |
Returns true if the GEP is based on a pointer to a string (array of.
Definition at line 3616 of file ValueTracking.cpp.
References dyn_cast(), llvm::SequentialType::getElementType(), llvm::User::getNumOperands(), llvm::User::getOperand(), llvm::GEPOperator::getSourceElementType(), llvm::Type::isIntegerTy(), and llvm::ConstantInt::isZero().
Referenced by annotateNonNullAndDereferenceable(), getConstantDataArrayInfo(), and GetPointerBaseWithConstantOffset().
isGlobalRelativeToPICBase - Return true if the specified global value reference is relative to a 32-bit PIC base (X86ISD::GlobalBaseReg).
If this is true, the addressing mode has the PIC base register added in (e.g. EBX).
Definition at line 94 of file X86InstrInfo.h.
References llvm::X86II::MO_DARWIN_NONLAZY_PIC_BASE, llvm::X86II::MO_GOT, llvm::X86II::MO_GOTOFF, llvm::X86II::MO_PIC_BASE_OFFSET, and llvm::X86II::MO_TLVP.
Referenced by getLeaOP(), llvm::X86TargetLowering::isLegalAddressingMode(), and LowerEXTRACT_SUBVECTOR().
isGlobalStubReference - Return true if the specified TargetFlag operand is a reference to a stub for a global, not the global itself.
Definition at line 77 of file X86InstrInfo.h.
References llvm::X86II::MO_COFFSTUB, llvm::X86II::MO_DARWIN_NONLAZY, llvm::X86II::MO_DARWIN_NONLAZY_PIC_BASE, llvm::X86II::MO_DLLIMPORT, llvm::X86II::MO_GOT, and llvm::X86II::MO_GOTPCREL.
Referenced by getLeaOP(), llvm::X86TargetLowering::isLegalAddressingMode(), llvm::X86TargetLowering::LowerAsmOperandForConstraint(), and LowerEXTRACT_SUBVECTOR().
Return true if this function can prove that V is never undef value or poison value.
Definition at line 4388 of file ValueTracking.cpp.
Referenced by SimplifyFreezeInst().
| bool llvm::isGuaranteedToExecuteForEveryIteration | ( | const Instruction * | I, |
| const Loop * | L | ||
| ) |
Return true if this function can prove that the instruction I is executed for every iteration of the loop L.
Note that this currently only considers the loop header.
Definition at line 4481 of file ValueTracking.cpp.
References llvm::LoopBase< BlockT, LoopT >::getHeader(), llvm::Instruction::getParent(), isGuaranteedToTransferExecutionToSuccessor(), and llvm_unreachable.
Referenced by getRangeForAffineARHelper(), and isMustExecuteIn().
| bool llvm::isGuaranteedToTransferExecutionToSuccessor | ( | const Instruction * | I | ) |
Return true if this function can prove that the instruction I will always transfer execution to one of its successors (including the next instruction that follows within a basic block).
E.g. this is not guaranteed for function calls that could loop infinitely.
In other words, this function returns false for instructions that may transfer execution or fail to transfer execution in a way that is not captured in the CFG nor in the sequence of instructions within a basic block.
Undefined behavior is assumed not to happen, so e.g. division is guaranteed to transfer execution to the following instruction even though division by zero might cause undefined behavior.
Definition at line 4421 of file ValueTracking.cpp.
Referenced by addArgumentAttrsFromCallsites(), llvm::SimpleLoopSafetyInfo::computeLoopSafetyInfo(), llvm::MustBeExecutedContextExplorer::findForwardJoinPoint(), llvm::MustBeExecutedContextExplorer::getMustBeExecutedNextInstruction(), getRangeForAffineARHelper(), isGuaranteedToExecuteForEveryIteration(), isGuaranteedToTransferExecutionToSuccessor(), llvm::ImplicitControlFlowTracking::isSpecialInstruction(), isValidAssumeForContext(), llvm::JumpThreadingPass::MaybeMergeBasicBlockIntoOnlyPred(), llvm::InstCombiner::simplifyDivRemOfSelectWithZeroOp(), and llvm::JumpThreadingPass::SimplifyPartiallyRedundantLoad().
| bool llvm::isGuaranteedToTransferExecutionToSuccessor | ( | const BasicBlock * | BB | ) |
Returns true if this block does not contain a potential implicit exit.
This is equivelent to saying that all instructions within the basic block are guaranteed to transfer execution to their successor within the basic block. This has the same assumptions w.r.t. undefined behavior as the instruction variant of this function.
Definition at line 4472 of file ValueTracking.cpp.
References llvm::BasicBlock::begin(), E, llvm::BasicBlock::end(), I, and isGuaranteedToTransferExecutionToSuccessor().
Returns true iff U has semantics of a guard expressed in a form of call of llvm.experimental.guard intrinsic.
Definition at line 18 of file GuardUtils.cpp.
References llvm::PatternMatch::match().
Referenced by calculateUnswitchCostMultiplier(), explicifyGuards(), hoistRegion(), isKnownNonNullFromDominatingCondition(), isSupportedGuardInstruction(), lowerGuardIntrinsic(), llvm::JumpThreadingPass::ProcessGuards(), and unswitchBestCondition().
Returns true iff U has semantics of a guard expressed in a form of a widenable conditional branch to deopt block.
Definition at line 29 of file GuardUtils.cpp.
References llvm::PatternMatch::match(), and parseWidenableBranch().
Referenced by isSupportedGuardInstruction(), and normalizePredicate().
Checks if character C is a hexadecimal numeric character.
Definition at line 79 of file StringExtras.h.
References hexDigitValue().
Referenced by doHexLookAhead(), hasConflictingReferenceFlags(), llvm::yaml::ScalarTraits< FixedSizeHex< N > >::input(), intToken(), isOperator(), and llvm::AsmLexer::setBuffer().
Return true if V is umabigously identified at the function-level.
Different IdentifiedFunctionLocals can't alias. Further, an IdentifiedFunctionLocal can not alias with any function arguments other than itself, which is not necessarily true for IdentifiedObjects.
Definition at line 906 of file AliasAnalysis.cpp.
References isNoAliasArgument(), and isNoAliasCall().
Referenced by AddAliasScopeMetadata(), llvm::AAResultBase< TypeBasedAAResult >::getModRefInfo(), and MergeAliasResults().
Return true if this pointer refers to a distinct and identifiable object.
This returns true for: Global Variables and Functions (but not Global Aliases) Allocas ByVal and NoAlias Arguments NoAlias returns (e.g. calls to malloc)
Definition at line 894 of file AliasAnalysis.cpp.
References isNoAliasCall().
Referenced by llvm::GlobalsAAResult::alias(), llvm::AAResults::callCapturesBefore(), llvm::AAResultBase< TypeBasedAAResult >::getModRefInfo(), getUnderlyingObjects(), getUnderlyingObjectsForCodeGen(), getUnderlyingObjectsForInstr(), isObjectSmallerThan(), MergeAliasResults(), and underlyingObjectsAlias().
Definition at line 212 of file NVPTXUtilities.cpp.
References isImageReadOnly(), isImageReadWrite(), and isImageWriteOnly().
Referenced by getOpenCLAlignment().
Definition at line 176 of file NVPTXUtilities.cpp.
References findAllNVVMAnnotation(), llvm::GlobalValue::getParent(), and is_contained().
Referenced by isImage().
Definition at line 200 of file NVPTXUtilities.cpp.
References findAllNVVMAnnotation(), llvm::GlobalValue::getParent(), and is_contained().
Referenced by getOpenCLAlignment(), and isImage().
Definition at line 188 of file NVPTXUtilities.cpp.
References findAllNVVMAnnotation(), llvm::GlobalValue::getParent(), and is_contained().
Referenced by getOpenCLAlignment(), and isImage().
|
inline |
Definition at line 16 of file X86AsmParserCommon.h.
References isInt< 8 >(), and isUInt< 16 >().
Referenced by llvm::X86Operand::isImmSExti16i8().
|
inline |
Definition at line 21 of file X86AsmParserCommon.h.
References isInt< 8 >(), and isUInt< 32 >().
Referenced by llvm::X86Operand::isImmSExti32i8().
|
inline |
Definition at line 30 of file X86AsmParserCommon.h.
References isInt< 32 >().
Referenced by llvm::X86Operand::isImmSExti64i32().
|
inline |
Definition at line 26 of file X86AsmParserCommon.h.
References isInt< 8 >().
Referenced by llvm::X86Operand::isImmSExti64i8().
|
inline |
Definition at line 38 of file X86AsmParserCommon.h.
Referenced by llvm::X86Operand::isImmUnsignedi4().
|
inline |
Definition at line 34 of file X86AsmParserCommon.h.
References isInt< 8 >(), and isUInt< 8 >().
Referenced by llvm::X86Operand::isImmUnsignedi8().
| Optional< bool > llvm::isImpliedByDomCondition | ( | const Value * | Cond, |
| const Instruction * | ContextI, | ||
| const DataLayout & | DL | ||
| ) |
Return the boolean condition value in the context of the given instruction if it is known based on dominating conditions.
Definition at line 5563 of file ValueTracking.cpp.
Referenced by allPredecessorsComeFromSameSource(), and matchSelectPattern().
| Optional< bool > llvm::isImpliedCondition | ( | const Value * | LHS, |
| const Value * | RHS, | ||
| const DataLayout & | DL, | ||
| bool | LHSIsTrue = true, |
||
| unsigned | Depth = 0 |
||
| ) |
Return true if RHS is known to be implied true by LHS.
Return false if RHS is known to be implied false by LHS. Otherwise, return None if no implication can be made. A & B must be i1 (boolean) values or a vector of such values. Note that the truth table for implication is the same as <=u on i1 values (but not <=s!). The truth table for both is: | T | F (B) T | T | F F | T | T (A)
Definition at line 5521 of file ValueTracking.cpp.
References assert(), dyn_cast(), llvm::BinaryOperator::getOpcode(), llvm::Value::getType(), isImpliedCondAndOr(), isImpliedCondICmps(), llvm::Type::isIntegerTy(), llvm::Type::isIntOrIntVectorTy(), llvm::Type::isVectorTy(), and None.
Referenced by isImpliedCondAndOr(), matchSelectPattern(), processUGT_ADDCST_ADD(), simplifyICmpOfBools(), and llvm::JumpThreadingPass::ThreadGuard().
|
inlinestatic |
Definition at line 371 of file AArch64InstrInfo.h.
References llvm::ISD::BR.
|
inlinestatic |
Definition at line 630 of file ARMBaseInstrInfo.h.
| InlineResult llvm::isInlineViable | ( | Function & | Callee | ) |
Minimal filter to detect invalid constructs for inlining.
Definition at line 2193 of file InlineCost.cpp.
References llvm::Function::begin(), dyn_cast(), llvm::Function::end(), llvm::BlockAddress::get(), llvm::CallBase::getCalledFunction(), llvm::Function::getIntrinsicID(), llvm::Function::hasFnAttribute(), and llvm::Value::users().
Referenced by createAlwaysInlinerLegacyPass(), getInlineCost(), hasProfileData(), isWrapperOnlyCall(), and llvm::AlwaysInlinerPass::run().
| bool llvm::isInstructionTriviallyDead | ( | Instruction * | I, |
| const TargetLibraryInfo * | TLI = nullptr |
||
| ) |
Return true if the result produced by the instruction is not used, and the instruction has no side effects.
isInstructionTriviallyDead - Return true if the result produced by the instruction is not used, and the instruction has no side effects.
Definition at line 359 of file Local.cpp.
References llvm::Value::use_empty(), and wouldInstructionBeTriviallyDead().
Referenced by AddReachableCodeToWorklist(), buildMultiplyTree(), CloneAndPruneIntoFromInst(), ConstantPropUsersOf(), ConvertToSInt(), createConstantPropagationPass(), DCEInstruction(), deleteDeadInstruction(), DeleteTriviallyDeadInstructions(), doCallSiteSplitting(), handleEndBlock(), hoistRegion(), isOnlyReachableViaThisEdge(), isSimpleIVUser(), llvm::JumpThreadingPass::ProcessBlock(), RecursivelyDeleteTriviallyDeadInstructions(), ReplaceUsesOfWith(), llvm::ReassociatePass::run(), llvm::InstCombiner::run(), llvm::Attributor::run(), runImpl(), runSCCP(), llvm::SimplifyCFGOptions::setAssumptionCache(), simplifyAndDCEInstruction(), simplifyLoopAfterUnroll(), simplifyLoopInst(), sinkRegion(), and llvm::sroa::AllocaSliceRewriter::visit().
|
inline |
Checks if an integer fits into the given bit width.
Definition at line 335 of file MathExtras.h.
References N.
Referenced by llvm::BitTracker::MachineEvaluator::getRef().
|
inline |
Definition at line 342 of file MathExtras.h.
Referenced by llvm::PPCFrameLowering::addScavengingSpillSlot(), adjustFixupValue(), adjustPqBits(), llvm::MipsSEInstrInfo::adjustStackPtr(), llvm::Mips16InstrInfo::adjustStackPtr(), CC_MipsO32_FP64(), combineADDToADDZE(), llvm::PPCInstrInfo::convertToImmediateForm(), covertDoubleImmToSingleImm(), llvm::HexagonDAGToDAGISel::DetectUseSxtw(), llvm::PPCFrameLowering::eliminateCallFramePseudoInstr(), llvm::LanaiRegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::PPCFrameLowering::emitEpilogue(), emitIncrement(), llvm::MipsTargetStreamer::emitLoadWithImmOffset(), llvm::MipsSEFrameLowering::emitPrologue(), llvm::PPCFrameLowering::emitPrologue(), llvm::MipsTargetStreamer::emitStoreWithImmOffset(), getComparePred(), GetInitialOffset(), llvm::PPCTTIImpl::getIntImmCost(), llvm::LanaiTTIImpl::getIntImmCost(), llvm::SystemZTTIImpl::getIntImmCostInst(), llvm::PPCTTIImpl::getIntImmCostInst(), llvm::PPCTTIImpl::getIntImmCostIntrin(), getLoadStoreOffsetAlign(), llvm::SystemZTargetLowering::getSingleConstraintMatchWeight(), llvm::MipsSEFrameLowering::hasReservedCallFrame(), INITIALIZE_PASS(), llvm::MipsAnalyzeImmediate::Inst::Inst(), isDebug(), llvm::PPCRegisterInfo::isFrameOffsetLegal(), llvm::AMDGPU::isInlinableLiteralV216(), llvm::SIInstrInfo::isInlineConstant(), isKImmOperand(), isKImmOrKUImmOperand(), llvm::PPCTargetLowering::isLegalAddImmediate(), llvm::PPCTargetLowering::isLegalICmpImmediate(), isRegOrImmWithInputMods(), isShiftedUIntAtAnyPosition(), llvm::PPCInstrInfo::isValidToBeChangedReg(), llvm::SystemZVectorConstantInfo::isVectorConstantLegal(), llvm::SystemZInstrInfo::loadImmediate(), llvm::LanaiTargetLowering::LowerAsmOperandForConstraint(), llvm::SystemZTargetLowering::LowerAsmOperandForConstraint(), llvm::PPCTargetLowering::LowerAsmOperandForConstraint(), llvm::PPCRegisterInfo::lowerDynamicAlloc(), llvm::Mips16InstrInfo::makeFrame(), Mips16WhichOp8uOr16simm(), needsExpandMemInst(), PeepholePPC64ZExtGather(), llvm::AMDGPUInstPrinter::printInst(), llvm::PPCFrameLowering::replaceFPWithRealFP(), llvm::R600TargetLowering::ReplaceNodeResults(), llvm::RuntimeDyldCOFFAArch64::resolveRelocation(), llvm::Mips16InstrInfo::restoreFrame(), selectI64Imm(), selectI64ImmDirect(), selectI64ImmInstrCountDirect(), shouldSwapCmpOperands(), shouldUseLA(), supportedAddressingMode(), llvm::Mips16InstrInfo::validImmediate(), and llvm::SIInstrInfo::verifyInstruction().
|
inline |
Definition at line 345 of file MathExtras.h.
Referenced by computeBytesPoppedByCalleeForSRet(), ConvertToSInt(), llvm::X86InstrInfo::convertToThreeAddress(), covertDoubleImmToSingleImm(), llvm::BPFRegisterInfo::eliminateFrameIndex(), llvm::RISCVRegisterInfo::eliminateFrameIndex(), llvm::X86RegisterInfo::eliminateFrameIndex(), llvm::BPFTargetLowering::EmitInstrWithCustomInserter(), llvm::PPCFrameLowering::emitPrologue(), foldImmediates(), llvm::RISCVMatInt::generateInstSeq(), getComparePred(), getDwarfRegNum(), llvm::SystemZTTIImpl::getIntImmCost(), llvm::PPCTTIImpl::getIntImmCost(), llvm::LanaiTTIImpl::getIntImmCost(), llvm::X86TTIImpl::getIntImmCost(), llvm::SystemZTTIImpl::getIntImmCostInst(), llvm::SystemZTTIImpl::getIntImmCostIntrin(), llvm::X86TTIImpl::getIntImmCostIntrin(), getLeaOP(), llvm::StatepointBase< Function, Instruction, Value, CallBase >::getNumPatchBytes(), getVPTESTMOpc(), INITIALIZE_PASS(), llvm::RISCVInstrInfo::insertIndirectBranch(), isFuncOrArgAttr(), isImmSExti64i32Value(), llvm::X86TargetLowering::isLegalAddImmediate(), llvm::SystemZTargetLowering::isLegalICmpImmediate(), llvm::X86TargetLowering::isLegalICmpImmediate(), llvm::X86TargetLowering::isLegalStoreImmediate(), llvm::X86::isOffsetSuitableForCodeModel(), isReverseInlineImm(), isShiftedUIntAtAnyPosition(), isSubBorrowChain(), llvm::SystemZInstrInfo::loadImmediate(), llvm::RuntimeDyldELF::loadObject(), llvm::LanaiTargetLowering::LowerAsmOperandForConstraint(), llvm::RISCVInstrInfo::movImm(), llvm::VEInstPrinter::printOperand(), selectI64ImmDirect(), selectI64ImmInstrCountDirect(), X86ChooseCmpImmediateOpcode(), and X86SelectAddress().
|
inline |
Definition at line 339 of file MathExtras.h.
Referenced by llvm::SystemZInstrInfo::foldMemoryOperandImpl(), getADDriFromLEA(), getADDriOpcode(), getANDriOpcode(), getFixupKindSize(), llvm::SystemZInstrInfo::getFusedCompare(), getSubOpcode(), getSUBriOpcode(), getVPTESTMOpc(), INITIALIZE_PASS(), llvm::MipsInstrInfo::isBranchOffsetInRange(), isDebug(), isImmSExti16i8Value(), isImmSExti32i8Value(), isImmSExti64i8Value(), isImmUnsignedi8Value(), isImmValidForOpcode(), llvm::RuntimeDyldELF::loadObject(), llvm::X86TargetLowering::LowerAsmOperandForConstraint(), makeCombineInst(), needsExpandMemInst(), and X86ChooseCmpImmediateOpcode().
| bool llvm::isInTailCallPosition | ( | ImmutableCallSite | CS, |
| const TargetMachine & | TM | ||
| ) |
Test if the given instruction is in a position to be optimized with a tail-call.
This roughly means that it's in a block with a return and there's nothing that needs to be scheduled between it and the return.
This function only tests target-independent requirements.
Definition at line 512 of file Analysis.cpp.
References dyn_cast(), llvm::BasicBlock::end(), F(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::getCallingConv(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::getInstruction(), llvm::Instruction::getParent(), llvm::BasicBlock::getParent(), llvm::TargetMachine::getSubtargetImpl(), llvm::TargetSubtargetInfo::getTargetLowering(), llvm::BasicBlock::getTerminator(), llvm::TargetOptions::GuaranteedTailCallOpt, I, isSafeToSpeculativelyExecute(), llvm::Instruction::mayHaveSideEffects(), llvm::Instruction::mayReadFromMemory(), llvm::TargetMachine::Options, llvm::MipsISD::Ret, returnTypeIsEligibleForTailCall(), and llvm::CallingConv::Tail.
Referenced by ComputeLinearIndex(), FixedPointIntrinsicToOpcode(), llvm::CallLowering::lowerCall(), and llvm::TargetLowering::LowerCustomJumpTableEntry().
Checks if an signed integer fits into the given (dynamic) bit width.
Definition at line 434 of file MathExtras.h.
References maxIntN(), and minIntN().
Referenced by addNegOperand(), llvm::MipsSEFrameLowering::determineCalleeSaves(), llvm::MCStreamer::EmitIntValue(), llvm::MCObjectStreamer::EmitValueImpl(), getFixupKindSize(), getLoadStoreOffsetAlign(), getPrefixes(), llvm::RISCVInstrInfo::isBranchOffsetInRange(), llvm::AVRInstrInfo::isBranchOffsetInRange(), llvm::AArch64InstrInfo::isBranchOffsetInRange(), llvm::SIInstrInfo::isBranchOffsetInRange(), isExtendedBUILD_VECTOR(), isOperator(), IsRevOpcode(), llvm::ConstantInt::isValueValidForType(), needsExpandMemInst(), adjust::signed_width(), llvm::TargetLowering::SimplifyDemandedBits(), TruncIfPossible(), and valueFitsIntoFixupKind().
| bool llvm::isIntrinsicReturningPointerAliasingArgumentWithoutCapturing | ( | const CallBase * | Call, |
| bool | MustPreserveNullness | ||
| ) |
{launder,strip}.invariant.group returns pointer that aliases its argument, and it only captures pointer by returning it.
These intrinsics are not marked as nocapture, because returning is considered as capture. The arguments are not marked as returned neither, because it would make it useless. If MustPreserveNullness is true, the intrinsic must preserve the nullness of the pointer.
Definition at line 3840 of file ValueTracking.cpp.
References llvm::CallBase::getIntrinsicID().
Referenced by getArgumentAliasingToReturnedPointer(), and PointerMayBeCaptured().
isIntS16Immediate - This method tests to see if the node is either a 32-bit or 64-bit immediate, and if the value can be accurately represented as a sign extension from a 16-bit value.
If so, this returns true and the immediate.
Definition at line 2284 of file PPCISelLowering.cpp.
References llvm::SDNode::getValueType(), llvm::MVT::i32, and N.
Referenced by llvm::PPCTargetLowering::functionArgumentNeedsConsecutiveRegisters(), getVCmpInst(), isIntS16Immediate(), mayUseP9Setb(), llvm::PPCTargetLowering::SelectAddressRegImm(), llvm::PPCTargetLowering::SelectAddressRegReg(), llvm::PPCTargetLowering::SelectAddressRegRegOnly(), and selectI64Imm().
Definition at line 2294 of file PPCISelLowering.cpp.
References llvm::SDValue::getNode(), and isIntS16Immediate().
Check if INSTR_PROF_RAW_VERSION_VAR is defined.
This global is only being set in IR PGO compilation.
Definition at line 1070 of file InstrProf.cpp.
References llvm::Module::getNamedGlobal().
Referenced by getInstrProfNameSeparator(), and getVarName().
Return true if a pass is for IR printing.
Definition at line 133 of file IRPrintingPasses.cpp.
References llvm::Pass::getPassID().
|
inlinestatic |
Definition at line 623 of file ARMBaseInstrInfo.h.
Definition at line 274 of file NVPTXUtilities.cpp.
References findOneNVVMAnnotation(), llvm::Function::getCallingConv(), and llvm::CallingConv::PTX_Kernel.
Referenced by canLowerToLDG(), getOpenCLAlignment(), llvm::NVPTXAsmPrinter::getVirtualRegisterName(), INITIALIZE_PASS(), llvm::NVPTXTTIImpl::isSourceOfDivergence(), llvm::NVPTXTargetLowering::LowerFormalArguments(), and VisitGlobalVariableForEmission().
Return true if the two given values are negation.
Currently can recoginze Value pair: 1: <X, Y> if X = sub (0, Y) or Y = sub (0, X) 2: <X, Y> if X = sub (A, B) and Y = sub (B, A)
Definition at line 4917 of file ValueTracking.cpp.
References assert(), B, llvm::PatternMatch::m_NSWSub(), llvm::PatternMatch::m_Specific(), llvm::PatternMatch::m_Sub(), llvm::PatternMatch::m_Value(), llvm::PatternMatch::m_ZeroInt(), and llvm::PatternMatch::match().
Referenced by canonicalizeSaturatedAdd(), matchSelectPattern(), SimplifyAddInst(), SimplifySDivInst(), and SimplifySRemInst().
| bool llvm::isKnownNegative | ( | const Value * | V, |
| const DataLayout & | DL, | ||
| unsigned | Depth = 0, |
||
| AssumptionCache * | AC = nullptr, |
||
| const Instruction * | CxtI = nullptr, |
||
| const DominatorTree * | DT = nullptr, |
||
| bool | UseInstrInfo = true |
||
| ) |
Returns true if the given value is known be negative (i.e.
non-positive and non-zero).
Definition at line 268 of file ValueTracking.cpp.
References computeKnownBits(), isKnownNonEqual(), llvm::KnownBits::isNegative(), and llvm::NVPTX::PTXLdStInstCode::V2.
Referenced by computeKnownBitsMul(), llvm::ScalarEvolution::getSignedRangeMax(), llvm::ScalarEvolution::getZeroExtendExpr(), llvm::ScalarEvolution::isKnownNonZero(), and IsKnownPredicateViaMinOrMax().
Returns true if we can prove that S is defined and always negative in loop L.
Definition at line 1010 of file LoopUtils.cpp.
References llvm::SCEV::getType(), llvm::ScalarEvolution::getZero(), llvm::CmpInst::ICMP_SLT, llvm::ScalarEvolution::isAvailableAtLoopEntry(), and llvm::ScalarEvolution::isLoopEntryGuardedByCond().
| bool llvm::isKnownNeverInfinity | ( | const Value * | V, |
| const TargetLibraryInfo * | TLI, | ||
| unsigned | Depth = 0 |
||
| ) |
Return true if the floating-point scalar value is not an infinity or if the floating-point vector value has no infinities.
Return false if a value could ever be infinity.
Definition at line 3196 of file ValueTracking.cpp.
References assert(), dyn_cast(), llvm::APFloat::getLargest(), llvm::Value::getType(), llvm::Type::getVectorNumElements(), llvm::detail::ilogb(), llvm::Type::isFPOrFPVectorTy(), llvm::Type::isVectorTy(), and llvm::MCID::Select.
Referenced by isKnownNeverNaN().
Returns true if Val can be assumed to never be a NaN.
If SNaN is true, this returns if Val can be assumed to never be a signaling NaN.
Definition at line 389 of file Utils.cpp.
References DefMI, llvm::MachineInstr::FmNoNans, llvm::MachineInstr::getFlag(), llvm::MachineInstr::getOpcode(), and llvm::MachineRegisterInfo::getVRegDef().
Return true if the floating-point scalar value is not a NaN or if the floating-point vector value has no NaN elements.
Return false if a value could ever be NaN.
Definition at line 3248 of file ValueTracking.cpp.
References assert(), CannotBeOrderedLessThanZero(), dyn_cast(), llvm::Value::getType(), llvm::Type::getVectorNumElements(), llvm::Type::isFPOrFPVectorTy(), isKnownNeverInfinity(), llvm::Type::isVectorTy(), maxnum(), minnum(), round(), and llvm::MCID::Select.
Referenced by cannotBeOrderedLessThanZeroImpl(), isKnownNeverSNaN(), llvm::SelectionDAG::isKnownNeverSNaN(), llvm::AMDGPUInstructionSelector::select(), simplifyAndOrOfFCmps(), SimplifyFCmpInst(), and llvm::InstCombiner::visitFCmpInst().
|
inline |
Returns true if Val can be assumed to never be a signaling NaN.
Definition at line 167 of file Utils.h.
References isKnownNeverNaN().
Referenced by llvm::LegalizerHelper::lowerFMinNumMaxNum().
| bool llvm::isKnownNonEqual | ( | const Value * | V1, |
| const Value * | V2, | ||
| const DataLayout & | DL, | ||
| AssumptionCache * | AC = nullptr, |
||
| const Instruction * | CxtI = nullptr, |
||
| const DominatorTree * | DT = nullptr, |
||
| bool | UseInstrInfo = true |
||
| ) |
Return true if the given values are known to be non-equal when defined.
Supports scalar integer types only.
Definition at line 278 of file ValueTracking.cpp.
References isKnownNonEqual(), llvm::BitmaskEnumDetail::Mask(), MaskedValueIsZero(), and safeCxtI().
Referenced by aliasSameBasePointerGEPs(), isKnownNegative(), and SimplifyICmpInst().
| bool llvm::isKnownNonNegative | ( | const Value * | V, |
| const DataLayout & | DL, | ||
| unsigned | Depth = 0, |
||
| AssumptionCache * | AC = nullptr, |
||
| const Instruction * | CxtI = nullptr, |
||
| const DominatorTree * | DT = nullptr, |
||
| bool | UseInstrInfo = true |
||
| ) |
Returns true if the give value is known to be non-negative.
Definition at line 247 of file ValueTracking.cpp.
References computeKnownBits(), and llvm::KnownBits::isNonNegative().
Referenced by llvm::InstCombiner::commonShiftTransforms(), computeKnownBitsMul(), detectShiftUntilZeroIdiom(), getConstantPart(), llvm::DependenceInfo::getFunction(), llvm::ScalarEvolution::getMinusSCEV(), GetRangeFromMetadata(), llvm::ScalarEvolution::getSignedRangeMax(), llvm::ScalarEvolution::getSignExtendExpr(), isGEPFoldable(), isKnownPositive(), llvm::ScalarEvolution::isLoopEntryGuardedByCond(), llvm::ScalarEvolution::isLoopInvariantPredicate(), llvm::ScalarEvolution::isMonotonicPredicate(), and isSupportedGuardInstruction().
Returns true if we can prove that S is defined and always non-negative in loop L.
Definition at line 1017 of file LoopUtils.cpp.
References llvm::SCEV::getType(), llvm::ScalarEvolution::getZero(), llvm::CmpInst::ICMP_SGE, llvm::ScalarEvolution::isAvailableAtLoopEntry(), and llvm::ScalarEvolution::isLoopEntryGuardedByCond().
| bool llvm::isKnownNonZero | ( | const Value * | V, |
| const DataLayout & | DL, | ||
| unsigned | Depth = 0, |
||
| AssumptionCache * | AC = nullptr, |
||
| const Instruction * | CxtI = nullptr, |
||
| const DominatorTree * | DT = nullptr, |
||
| bool | UseInstrInfo = true |
||
| ) |
Return true if the given value is known to be non-zero when defined.
For vectors, return true if every element is known to be non-zero when defined. For pointers, if the context instruction and dominator tree are specified, perform context-sensitive analysis and return true if the pointer couldn't possibly be null at the specified instruction. Supports values with integer or pointer type and vectors of integers.
Definition at line 240 of file ValueTracking.cpp.
References isKnownNonZero(), and safeCxtI().
Referenced by annotateAnyAllocSite(), annotateNonNullAndDereferenceable(), computeKnownBitsFromShiftOperator(), computeKnownBitsMul(), computePointerICmp(), foldCttzCtlz(), foldShiftIntoShiftInAnotherHandOfAndInICmp(), foldUnsignedUnderflowCheck(), llvm::IRPosition::getAttrs(), getFromRangeMetadata(), llvm::LazyValueInfo::getPredicateAt(), llvm::ScalarEvolution::getSignedRangeMax(), isAddOfNonZero(), isDereferenceableAndAlignedPointer(), isGEPKnownNonNull(), isKnownNonZero(), isKnownPositive(), isKnownToBeAPowerOfTwo(), llvm::ScalarEvolution::isLoopInvariantPredicate(), isObjectDereferencedInBlock(), isReportingError(), isReturnNonNull(), matchSelectPattern(), promoteSingleBlockAlloca(), rewriteSingleStoreAlloca(), simplifyICmpWithZero(), simplifyUnsignedRangeCheck(), updateForIncomingValueLocation(), and llvm::InstCombiner::visitPHINode().
| bool llvm::isKnownPositive | ( | const Value * | V, |
| const DataLayout & | DL, | ||
| unsigned | Depth = 0, |
||
| AssumptionCache * | AC = nullptr, |
||
| const Instruction * | CxtI = nullptr, |
||
| const DominatorTree * | DT = nullptr, |
||
| bool | UseInstrInfo = true |
||
| ) |
Returns true if the given value is known be positive (i.e.
non-negative and non-zero).
Definition at line 256 of file ValueTracking.cpp.
References isKnownNonNegative(), and isKnownNonZero().
Referenced by llvm::PredicatedScalarEvolution::areAddRecsEqualWithPreds(), BuildConstantFromSCEV(), llvm::ScalarEvolution::getSignedRangeMax(), llvm::ScalarEvolution::getZeroExtendExpr(), llvm::ScalarEvolution::isKnownNonZero(), isKnownPredicateExtendIdiom(), IsKnownPredicateViaMinOrMax(), and processUGT_ADDCST_ADD().
| bool llvm::isKnownToBeAPowerOfTwo | ( | const Value * | V, |
| const DataLayout & | DL, | ||
| bool | OrZero = false, |
||
| unsigned | Depth = 0, |
||
| AssumptionCache * | AC = nullptr, |
||
| const Instruction * | CxtI = nullptr, |
||
| const DominatorTree * | DT = nullptr, |
||
| bool | UseInstrInfo = true |
||
| ) |
Return true if the given value is known to have exactly one bit set when defined.
For vectors return true if every element is known to be a power of two when defined. Supports values with integer or pointer type and vectors of integers. If 'OrZero' is set, then return true if the given value is either a power of two or zero.
Definition at line 230 of file ValueTracking.cpp.
References isKnownNonZero(), isKnownToBeAPowerOfTwo(), and safeCxtI().
Referenced by computeKnownBitsFromAssume(), foldAndOrOfEqualityCmpsWithConstants(), isKnownNonZero(), isKnownToBeAPowerOfTwo(), llvm::InstCombiner::isKnownToBeAPowerOfTwo(), isOnlyUsedInZeroEqualityComparison(), processUGT_ADDCST_ADD(), SimplifyAndInst(), llvm::InstCombiner::visitSDiv(), and llvm::InstCombiner::visitURem().
|
inlinestatic |
Definition at line 112 of file X86InstrInfo.h.
References llvm::X86::AddrBaseReg, llvm::X86::AddrDisp, llvm::X86::AddrIndexReg, llvm::X86::AddrScaleAmt, llvm::X86::AddrSegmentReg, llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::isCPI(), llvm::MachineOperand::isFI(), llvm::MachineOperand::isGlobal(), llvm::MachineOperand::isImm(), llvm::MachineOperand::isJTI(), llvm::MachineOperand::isReg(), and isScale().
Referenced by isMem().
| bool llvm::isLegalToPromote | ( | CallSite | CS, |
| Function * | Callee, | ||
| const char ** | FailureReason = nullptr |
||
| ) |
Return true if the given indirect call site can be made to call Callee.
This function ensures that the number and type of the call site's arguments and return value match those of the given function. If the types do not match exactly, they must at least be bitcast compatible. If FailureReason is non-null and the indirect call cannot be promoted, the failure reason will be stored in it.
Definition at line 319 of file CallPromotionUtils.cpp.
References llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::arg_size(), assert(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::getArgument(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::getCalledFunction(), llvm::Module::getDataLayout(), llvm::Type::getFunctionParamType(), llvm::Function::getFunctionType(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::getInstruction(), llvm::FunctionType::getNumParams(), llvm::GlobalValue::getParent(), llvm::Function::getReturnType(), llvm::Value::getType(), I, llvm::CastInst::isBitOrNoopPointerCastable(), and llvm::Function::isVarArg().
Referenced by createPGOIndirectCallPromotionLegacyPass(), and isPromotedResultSafe().
Definition at line 381 of file ConvertUTF.cpp.
Referenced by ConvertUTF8toUTF16(), ConvertUTF8toUTF32Impl(), isLegalUTF8Sequence(), and isLegalUTF8String().
Definition at line 412 of file ConvertUTF.cpp.
References isLegalUTF8().
Referenced by findMaximalSubpartOfIllFormedUTF8Sequence().
Definition at line 529 of file ConvertUTF.cpp.
References isLegalUTF8().
Referenced by ConvertUTF8toWide(), and llvm::json::isUTF8().
isLibFreeFunction - Returns true if the function is a builtin free()
Definition at line 414 of file MemoryBuiltins.cpp.
References llvm::Function::getContext(), llvm::Function::getFunctionType(), llvm::Type::getInt8PtrTy(), llvm::FunctionType::getNumParams(), llvm::FunctionType::getParamType(), llvm::FunctionType::getReturnType(), and llvm::Type::isVoidTy().
Referenced by extractCallocCall(), inferLibFuncAttributes(), and isFreeCall().
|
static |
Definition at line 38 of file ARMMacroFusion.cpp.
References llvm::MachineInstr::getOpcode().
Referenced by shouldScheduleAdjacent().
|
inlinestatic |
Definition at line 613 of file ARMBaseInstrInfo.h.
References llvm::MachineInstr::getOpcode().
| bool llvm::isMallocLikeFn | ( | const Value * | V, |
| const TargetLibraryInfo * | TLI, | ||
| bool | LookThroughBitCast = false |
||
| ) |
Tests if a value is a call or invoke to a library function that allocates uninitialized memory (such as malloc).
Definition at line 257 of file MemoryBuiltins.cpp.
References getAllocationData(), and MallocLike.
Referenced by alwaysAvailable(), annotateAnyAllocSite(), extractMallocCall(), llvm::IRPosition::getAttrs(), getMallocArraySize(), getMallocType(), and reportMayClobberedLoad().
| bool llvm::isMallocLikeFn | ( | const Value * | V, |
| function_ref< const TargetLibraryInfo &(Function &)> | GetTLI, | ||
| bool | LookThroughBitCast = false |
||
| ) |
Definition at line 261 of file MemoryBuiltins.cpp.
References getAllocationData(), and MallocLike.
| bool llvm::isMallocOrCallocLikeFn | ( | const Value * | V, |
| const TargetLibraryInfo * | TLI, | ||
| bool | LookThroughBitCast = false |
||
| ) |
Tests if a value is a call or invoke to a library function that allocates memory similar to malloc or calloc.
Definition at line 277 of file MemoryBuiltins.cpp.
References getAllocationData(), and MallocOrCallocLike.
Referenced by llvm::BasicAAResult::getModRefInfo().
Definition at line 216 of file NVPTXUtilities.cpp.
References assert(), and findOneNVVMAnnotation().
Referenced by llvm::NVPTXAsmPrinter::doFinalization().
Return true if the argument is a non-empty sequence of ones starting at the least significant bit with the remainder zero (32 bit version).
Ex. isMask_32(0x0000FFFFU) == true.
Definition at line 441 of file MathExtras.h.
Referenced by CombineANDShift(), findMemSDNode(), isFloatingPointZero(), isImmMskBitp(), isShiftedMask_32(), and PerformShiftCombine().
|
inline |
Return true if the argument is a non-empty sequence of ones starting at the least significant bit with the remainder zero (64 bit version).
Definition at line 447 of file MathExtras.h.
Referenced by getVPTESTMOpc(), llvm::AArch64TargetLowering::isDesirableToCommuteWithShift(), llvm::AArch64_IMM::isEndChunk(), llvm::APInt::isMask(), isSeveralBitsExtractOpFromShr(), isShiftedMask_64(), llvm::AArch64_IMM::isStartChunk(), and mayUseP9Setb().
| bool llvm::isMathLibCallNoop | ( | const CallBase * | Call, |
| const TargetLibraryInfo * | TLI | ||
| ) |
Check whether the given call has no side-effects.
Specifically checks for math routimes which sometimes set errno.
Definition at line 2489 of file ConstantFolding.cpp.
References llvm::lltok::APFloat, llvm::APFloatBase::cmpGreaterThan, llvm::APFloatBase::cmpLessThan, llvm::APFloat::compare(), dyn_cast(), F(), llvm::CallBase::getArgOperand(), llvm::CallBase::getCalledFunction(), llvm::TargetLibraryInfo::getLibFunc(), llvm::CallBase::getNumArgOperands(), llvm::APFloat::getSemantics(), llvm::Value::getType(), llvm::ConstantFP::getValueAPF(), llvm::Type::isDoubleTy(), llvm::Type::isFloatTy(), llvm::Type::isHalfTy(), llvm::APFloat::isInfinity(), llvm::APFloat::isNaN(), llvm::APFloat::isNegative(), llvm::CallBase::isNoBuiltin(), llvm::CallBase::isStrictFP(), and llvm::APFloat::isZero().
|
inlinestatic |
Definition at line 125 of file X86InstrInfo.h.
References llvm::X86::AddrNumOperands, llvm::X86::AddrSegmentReg, llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::isFI(), isLeaMem(), and llvm::MachineOperand::isReg().
Referenced by llvm::X86InstrInfo::commuteInstructionImpl(), llvm::X86AsmPrinter::EmitFunctionBodyEnd(), and INITIALIZE_PASS().
|
inline |
Definition at line 146 of file AliasAnalysis.h.
References MustModRef.
Referenced by llvm::BasicAAResult::getModRefInfo(), and llvm::MemoryDependenceResults::getSimplePointerDependencyFrom().
|
inline |
Definition at line 143 of file AliasAnalysis.h.
References MRI, and MustModRef.
Referenced by llvm::AliasSet::aliasesPointer(), llvm::AliasSet::aliasesUnknownInst(), AreSequentialAccesses(), llvm::AAResults::canInstructionRangeModRef(), canSinkOrHoistInst(), llvm::AAResults::doesAccessArgPointees(), llvm::AAResults::doesAccessInaccessibleMem(), GetLocation(), llvm::GlobalsAAResult::getModRefBehavior(), llvm::GlobalsAAResult::getModRefInfo(), llvm::AAResults::getModRefInfo(), llvm::MemoryDependenceResults::getSimplePointerDependencyFrom(), instructionClobbersQuery(), mayLoopAccessLocation(), and moveUp().
|
inline |
Definition at line 150 of file AliasAnalysis.h.
Referenced by llvm::AliasSetTracker::add(), canMoveAboveCall(), checkFunctionMemoryAccess(), FindAvailablePtrLoadStore(), findSafeStoreForStoreStrongContraction(), llvm::MemoryDependenceResults::getDependency(), GetLocation(), llvm::GlobalsAAResult::getModRefBehavior(), llvm::BasicAAResult::getModRefInfo(), llvm::AAResults::getModRefInfo(), instructionClobbersQuery(), isOrdered(), isSafeToMove(), memoryIsNotModifiedBetween(), moveUp(), llvm::AAResults::onlyReadsMemory(), and pointerInvalidatedByLoop().
|
inline |
Definition at line 156 of file AliasAnalysis.h.
Referenced by llvm::AAResults::getModRefInfo(), and instructionClobbersQuery().
Return true if this is an argument with the noalias attribute.
Definition at line 888 of file AliasAnalysis.cpp.
Referenced by llvm::AAResultBase< TypeBasedAAResult >::getModRefInfo(), and isIdentifiedFunctionLocal().
Return true if this pointer is returned by a noalias function.
Definition at line 882 of file AliasAnalysis.cpp.
References NoAlias.
Referenced by computePointerICmp(), llvm::AAResultBase< TypeBasedAAResult >::getModRefInfo(), isIdentifiedFunctionLocal(), isIdentifiedObject(), isNonEscapingLocalObject(), and PointerMayBeCaptured().
| bool llvm::isNoAliasFn | ( | const Value * | V, |
| const TargetLibraryInfo * | TLI, | ||
| bool | LookThroughBitCast = false |
||
| ) |
Tests if a value is a call or invoke to a function that returns a NoAlias pointer (including malloc/calloc/realloc/strdup-like functions).
Definition at line 247 of file MemoryBuiltins.cpp.
References hasNoAliasAttr(), and isAllocationFn().
Referenced by llvm::MemoryDependenceResults::getSimplePointerDependencyFrom().
|
inline |
Definition at line 139 of file AliasAnalysis.h.
References Must, and MustModRef.
Referenced by llvm::AliasSetTracker::add(), checkFunctionMemoryAccess(), createAArch64StackTaggingPass(), llvm::AAResults::getArgModRefInfo(), GetLocation(), llvm::BasicAAResult::getModRefInfo(), and llvm::AAResults::getModRefInfo().
|
inline |
Return true if this personality may be safely removed if there are no invoke instructions remaining in the current function.
Definition at line 95 of file EHPersonalities.h.
References canSimplifyInvokeNoUnwind(), F(), llvm_unreachable, and Unknown.
Referenced by llvm::DwarfCFIException::beginFunction(), llvm::WinException::beginFunction(), llvm::ARMException::endFunction(), and needFuncLabelsForEHOrDebugInfo().
Returns true if V is a constant integer zero.
Definition at line 8811 of file SelectionDAG.cpp.
References dyn_cast(), and llvm::ConstantSDNode::isNullValue().
Referenced by AddCombineTo64bitUMAAL(), llvm::ConstantFPSDNode::classof(), collectConcatOps(), combineADDCARRYDiamond(), combineBitcast(), combineCarryDiamond(), combineCMP(), combineExtractSubvector(), combineExtractVectorElt(), combineExtractWithShuffle(), combineFMA(), combineInsertSubvector(), combineMaskedLoadConstantMask(), combineOrCmpEqZeroToCtlzSrl(), combineReductionToHorizontal(), combineSBB(), combineSetCC(), combineShuffle(), combineToFPTruncExtElt(), combineVectorSizedSetCCEquality(), combineX86ShuffleChain(), llvm::ARMTargetLowering::computeKnownBitsForTargetNode(), llvm::AMDGPUTargetLowering::ComputeNumSignBitsForTargetNode(), llvm::SelectionDAG::computeOverflowKind(), EmitAVX512Test(), EmitCmp(), emitComparison(), emitConditionalComparison(), extractBooleanFlip(), foldAddSubBoolOfMaskedVal(), foldAddSubMasked1(), foldAddSubOfSignBit(), foldShuffleOfHorizOp(), generateEquivalentSub(), llvm::PPC::get_VSPLTI_elt(), getCombineLoadStoreParts(), getNormalLoadInput(), getVPTESTMOpc(), isCMN(), isFloatingPointZero(), isHorizontalBinOp(), isLegalMaskCompare(), isLowerSaturatingConditional(), IsNOT(), isSplatZeroExtended(), llvm::SelectionDAG::isUndef(), llvm::X86::isZeroNode(), isZeroOrAllOnes(), isZeroVector(), LookThroughSetCC(), lowerAtomicArith(), llvm::SITargetLowering::LowerCall(), LowerEXTRACT_VECTOR_ELT_SSE4(), llvm::SelectionDAG::matchBinOpReduction(), mayTailCallThisCC(), narrowExtractedVectorLoad(), parsePredicateConstraint(), PerformAddcSubcCombine(), performBRCONDCombine(), llvm::ARMTargetLowering::PerformCMOVCombine(), llvm::ARMTargetLowering::PerformCMOVToBFICombine(), llvm::PPCTargetLowering::PerformDAGCombine(), PerformUMLALCombine(), recoverFramePointer(), reduceBuildVecToShuffleWithZero(), llvm::R600TargetLowering::ReplaceNodeResults(), replaceZeroVectorStore(), scalarizeBinOpOfSplats(), scalarizeExtEltFP(), llvm::TargetLowering::SimplifyDemandedBits(), llvm::TargetLowering::SimplifyDemandedVectorElts(), simplifyDivRem(), llvm::TargetLowering::SimplifyMultipleUseDemandedBits(), simplifyShuffleOfShuffle(), stripTruncAndExt(), tryFoldToZero(), llvm::X86InstrInfo::unfoldMemoryOperand(), vectorizeExtractedCast(), and visitORCommutative().
Returns true if V is an FP constant with a value of positive zero.
Definition at line 8816 of file SelectionDAG.cpp.
References dyn_cast(), llvm::ConstantFPSDNode::isNegative(), and llvm::ConstantFPSDNode::isZero().
Referenced by llvm::ConstantFPSDNode::classof(), isNullFPScalarOrVectorConst(), llvm::X86::isZeroNode(), reduceBuildVecToShuffleWithZero(), replaceZeroVectorStore(), and llvm::TargetLowering::SimplifyDemandedVectorElts().
Return true if the value is a constant 0 integer or a splatted vector of a constant 0 integer (with no undefs by default).
Build vector implicit truncation is not an issue for null values.
Definition at line 8937 of file SelectionDAG.cpp.
References C, isConstOrConstSplat(), and llvm::ConstantSDNode::isNullValue().
Referenced by llvm::ConstantFPSDNode::classof(), combineShiftAnd1ToBitTest(), combineShiftOfShiftedLogic(), extractBooleanFlip(), foldAddSubMasked1(), foldAddSubOfSignBit(), foldExtendedSignBitTest(), getAsNonOpaqueConstant(), isTruncateOf(), simplifyDivRem(), llvm::SelectionDAG::simplifyShift(), and tryFoldToZero().
|
inline |
Returns true if a reg:subreg pair P has a TRC class.
Definition at line 1054 of file SIInstrInfo.h.
References llvm::MachineRegisterInfo::getRegClass(), llvm::MachineRegisterInfo::getTargetRegisterInfo(), llvm::TargetInstrInfo::RegSubRegPair::Reg, llvm::TargetInstrInfo::RegSubRegPair::SubReg, and TRI.
Referenced by createGCNDPPCombinePass(), and isIdentityValue().
Returns true if V is a constant integer one.
Definition at line 8826 of file SelectionDAG.cpp.
References dyn_cast(), and llvm::ConstantSDNode::isOne().
Referenced by checkBoolTestSetCCCombine(), llvm::ConstantFPSDNode::classof(), combineADDCARRYDiamond(), combineCarryThroughADD(), combineParity(), combineShiftAnd1ToBitTest(), combineZext(), EmitAVX512Test(), Expand64BitShift(), foldAddSubBoolOfMaskedVal(), foldXor1SetCC(), foldXorTruncShiftIntoCmp(), getAsCarry(), isLegalMaskCompare(), isXor1OfSetCC(), LookThroughSetCC(), LowerAndToBT(), LowerXOR(), mayTailCallThisCC(), PerformAddcSubcCombine(), llvm::ARMTargetLowering::PerformCMOVCombine(), scalarizeBinOpOfSplats(), simplifyDivRem(), stripTruncAndExt(), and visitFMinMax().
Return true if the value is a constant 1 integer or a splatted vector of a constant 1 integer (with no undefs).
Does not permit build vector implicit truncation.
Definition at line 8943 of file SelectionDAG.cpp.
References C, llvm::SDValue::getScalarValueSizeInBits(), llvm::SDNode::getValueSizeInBits(), isConstOrConstSplat(), and llvm::ConstantSDNode::isOne().
Referenced by llvm::ConstantFPSDNode::classof(), extractBooleanFlip(), foldAddSubMasked1(), foldAddSubOfSignBit(), and tryFoldToZero().
| bool llvm::isOnlyUsedInZeroEqualityComparison | ( | const Instruction * | CxtI | ) |
Definition at line 215 of file ValueTracking.cpp.
References C, isKnownToBeAPowerOfTwo(), and llvm::Value::users().
Referenced by annotateNonNullAndDereferenceable(), getMemCmpLoad(), and optimizeMemCmpConstantSize().
| bool llvm::isOpNewLikeFn | ( | const Value * | V, |
| const TargetLibraryInfo * | TLI, | ||
| bool | LookThroughBitCast = false |
||
| ) |
Tests if a value is a call or invoke to a library function that allocates memory and throws if an allocation failed (e.g., new).
Definition at line 305 of file MemoryBuiltins.cpp.
References getAllocationData(), and OpNewLike.
Referenced by annotateAnyAllocSite().
| bool llvm::isOverflowIntrinsicNoWrap | ( | const WithOverflowInst * | WO, |
| const DominatorTree & | DT | ||
| ) |
Returns true if the arithmetic part of the WO 's result is used only along the paths control dependent on the computation not overflowing, WO being an <op>.with.overflow intrinsic.
Definition at line 4338 of file ValueTracking.cpp.
References any_of(), assert(), B, llvm::DominatorTree::dominates(), llvm::SmallVectorTemplateBase< T >::push_back(), Results, and llvm::Value::users().
Referenced by MatchBinaryOp().
| Optional< int64_t > llvm::isPointerOffset | ( | const Value * | Ptr1, |
| const Value * | Ptr2, | ||
| const DataLayout & | DL | ||
| ) |
If Ptr1 is provably equal to Ptr2 plus a constant offset, return that offset.
For example, Ptr1 might be &A[42], and Ptr2 might be &A[40]. In this case offset would be -8.
Definition at line 5922 of file ValueTracking.cpp.
References dyn_cast(), GEP, llvm::User::getNumOperands(), getOffsetFromIndex(), llvm::User::getOperand(), None, and llvm::Value::stripPointerCasts().
Referenced by createAArch64StackTaggingPass().
|
inlinestatic |
Definition at line 634 of file ARMBaseInstrInfo.h.
Referenced by isCSRestore(), and tryFoldSPUpdateIntoPushPop().
| bool llvm::isPotentiallyReachable | ( | const Instruction * | From, |
| const Instruction * | To, | ||
| const SmallPtrSetImpl< BasicBlock *> * | ExclusionSet = nullptr, |
||
| const DominatorTree * | DT = nullptr, |
||
| const LoopInfo * | LI = nullptr |
||
| ) |
Determine whether instruction 'To' is reachable from 'From', without passing through any blocks in ExclusionSet, returning true if uncertain.
Determine whether there is a path from From to To within a single function. Returns false only if we can prove that once 'From' has been executed then 'To' can not be executed. Conservatively returns true.
This function is linear with respect to the number of blocks in the CFG, walking down successors from From to reach To, with a fixed threshold. Using DT or LI allows us to answer more quickly. LI reduces the cost of an entire loop of any number of blocks to be the same as the cost of a single block. DT reduces the cost by allowing the search to terminate when we find a block that dominates the block containing 'To'. DT is most useful on branchy code but not loops, and LI is most useful on code with loops but does not help on branchy code outside loops.
Definition at line 218 of file CFG.cpp.
References assert(), E, llvm::SmallPtrSetImplBase::empty(), llvm::BasicBlock::end(), llvm::Function::getEntryBlock(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::LoopInfoBase< BlockT, LoopT >::getLoopFor(), llvm::Instruction::getParent(), llvm::BasicBlock::getParent(), I, isPotentiallyReachableFromMany(), llvm::DominatorTree::isReachableFromEntry(), succ_begin(), and succ_end().
Referenced by createDwarfEHPass(), foldOperationIntoPhiValue(), llvm::CaptureTracker::isDereferenceableOrNull(), MergeAliasResults(), and postDominates().
| bool llvm::isPotentiallyReachable | ( | const BasicBlock * | From, |
| const BasicBlock * | To, | ||
| const DominatorTree * | DT = nullptr, |
||
| const LoopInfo * | LI = nullptr |
||
| ) |
Determine whether block 'To' is reachable from 'From', returning true if uncertain.
Determine whether there is a path from From to To within a single function. Returns false only if we can prove that once 'From' has been reached then 'To' can not be executed. Conservatively returns true.
Definition at line 206 of file CFG.cpp.
References assert(), llvm::BasicBlock::getParent(), isPotentiallyReachableFromMany(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
| bool llvm::isPotentiallyReachableFromMany | ( | SmallVectorImpl< BasicBlock *> & | Worklist, |
| BasicBlock * | StopBB, | ||
| const DominatorTree * | DT = nullptr, |
||
| const LoopInfo * | LI = nullptr |
||
| ) |
Determine whether there is at least one path from a block in 'Worklist' to 'StopBB', returning true if uncertain.
Determine whether there is a path from at least one block in Worklist to StopBB within a single function. Returns false only if we can prove that once any block in 'Worklist' has been reached then 'StopBB' can not be executed. Conservatively returns true.
Referenced by llvm::CaptureTracker::isDereferenceableOrNull(), and isPotentiallyReachable().
| bool llvm::isPotentiallyReachableFromMany | ( | SmallVectorImpl< BasicBlock *> & | Worklist, |
| BasicBlock * | StopBB, | ||
| const SmallPtrSetImpl< BasicBlock *> * | ExclusionSet, | ||
| const DominatorTree * | DT = nullptr, |
||
| const LoopInfo * | LI = nullptr |
||
| ) |
Determine whether there is at least one path from a block in 'Worklist' to 'StopBB' without passing through any blocks in 'ExclusionSet', returning true if uncertain.
Determine whether there is a path from at least one block in Worklist to StopBB within a single function without passing through any of the blocks in 'ExclusionSet'. Returns false only if we can prove that once any block in 'Worklist' has been reached then 'StopBB' can not be executed. Conservatively returns true.
Definition at line 130 of file CFG.cpp.
References llvm::SmallVectorImpl< T >::append(), llvm::SmallPtrSetImpl< PtrType >::count(), llvm::DominatorTree::dominates(), llvm::SmallVectorBase::empty(), llvm::SmallPtrSetImplBase::empty(), llvm::LoopBase< BlockT, LoopT >::getExitBlocks(), getOutermostLoop(), llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::DominatorTree::isReachableFromEntry(), llvm::SmallVectorImpl< T >::pop_back_val(), succ_begin(), and succ_end().
Return true if the argument is a power of two > 0.
Ex. isPowerOf2_32(0x00100000U) == true (32 bit edition.)
Definition at line 465 of file MathExtras.h.
Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), adjustDown(), adjustUp(), llvm::AMDGPULegalizerInfo::AMDGPULegalizerInfo(), llvm::HexagonFrameLowering::assignCalleeSavedSpillSlots(), branchMaxOffsets(), canLowerByDroppingEvenElements(), CanMergeParamLoadStoresStartingAt(), clampDynamicVectorIndex(), llvm::FoldingSetBase::clear(), combineHorizontalPredicateResult(), combineMulToPMULDQ(), combineReductionToHorizontal(), combineShiftOfShiftedLogic(), combineShiftRightLogical(), combineTruncateWithSat(), combineVectorTruncation(), combineX86ShufflesRecursively(), llvm::LoopVectorizationCostModel::computeMaxVF(), llvm::TargetLoweringBase::computeRegisterProperties(), convert_i1_to_i8(), decodeLLVMAttributesForBitcode(), DecodeVALIGNMask(), detectAVGPattern(), detectPMADDUBSW(), earlyExpandDIVFIX(), EltsFromConsecutiveLoads(), llvm::AMDGPUTargetELFStreamer::emitAMDGPULDS(), llvm::PPCFrameLowering::emitPrologue(), emitXBegin(), llvm::slpvectorizer::BoUpSLP::eraseInstructions(), ExtractBitFromMaskVector(), extractSubVector(), FindMemType(), FixedPointIntrinsicToOpcode(), foldGuardedRotateToFunnelShift(), foldIdentityPaddedShuffles(), foldVecTruncToExtElt(), getChainID(), getContiguousRangeOfSetBits(), getImmedFromMO(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getIntrinsicInstrCost(), llvm::VNCoercion::getLoadValueForLoad(), llvm::X86TTIImpl::getMaskedMemoryOpCost(), llvm::X86TTIImpl::getMemoryOpCost(), getNegativeIsTrueBoolVec(), llvm::X86TargetLowering::getNumRegistersForCallingConv(), llvm::InnerLoopVectorizer::getOrCreateVectorTripCount(), getParentPad(), getPlatformName(), llvm::SystemZTTIImpl::getPopcntSupport(), llvm::WebAssemblyTTIImpl::getPopcntSupport(), llvm::PPCTTIImpl::getPopcntSupport(), llvm::AArch64TTIImpl::getPopcntSupport(), llvm::X86TTIImpl::getPopcntSupport(), llvm::GCNTTIImpl::getPopcntSupport(), llvm::X86TargetLowering::getRegisterTypeForCallingConv(), getShuffleReduction(), llvm::slpvectorizer::BoUpSLP::getTreeCost(), llvm::TargetLoweringBase::getVectorTypeBreakdown(), llvm::X86TargetLowering::getVectorTypeBreakdownForCallingConv(), getVectorTypeBreakdownMVT(), INITIALIZE_PASS(), InsertBitToMaskVector(), insertSubVector(), instrumentMaskedLoadOrStore(), isAlwaysLive(), llvm::ARMTargetLowering::isLegalAddressingMode(), llvm::X86TTIImpl::isLegalMaskedGather(), llvm::TargetTransformInfoImplBase::isLegalNTLoad(), llvm::X86TTIImpl::isLegalNTStore(), llvm::TargetTransformInfoImplBase::isLegalNTStore(), llvm::ARMTargetLowering::isLegalT2ScaledAddressingMode(), llvm::SelectionDAGISel::isOrEquivalentToAdd(), llvm::IntegerType::isPowerOf2ByteWidth(), isReInterleaveMask(), isSlicingProfitable(), llvm::PPC::isSplatShuffleMask(), isSplatZeroExtended(), llvm::ShuffleVectorInst::isTransposeMask(), llvm::HexagonInstrInfo::isValidOffset(), isVectorPredicable(), isVectorReductionOp(), llvm::LegalizerHelper::lower(), LowerCONCAT_VECTORSvXi1(), llvm::CombinerHelper::matchCombineExtendingLoads(), matchPairwiseReduction(), matchPMADDWD(), matchPMADDWD_2(), matchRotate(), matchVectorSplittingReduction(), llvm::LegalityPredicates::memSizeInBytesNotPow2(), llvm::rdf::NodeAllocator::NodeAllocator(), llvm::LegalityPredicates::numElementsNotPow2(), parseGlobalValue(), parseOptionalLinkageAux(), PerformMULCombine(), PerformSplittingToWideningLoad(), PerformTruncatingStoreCombine(), llvm::LoopVectorizationPlanner::plan(), llvm::LoopVectorizationPlanner::planInVPlanNativePath(), PrintQuotedString(), llvm::PPCTargetLowering::ReplaceNodeResults(), llvm::SLPVectorizerPass::runImpl(), scalarizeExtractedBinop(), llvm::LegalityPredicates::scalarOrEltSizeNotPow2(), llvm::jitlink::JITLinkMemoryManager::SegmentRequest::SegmentRequest(), llvm::HexagonDAGToDAGISel::SelectVAlignAddr(), llvm::MCSymbol::setCommon(), llvm::TargetLoweringBase::setJumpIsExpensive(), llvm::SITargetLowering::shouldEmitPCReloc(), llvm::TargetLowering::ShrinkDemandedOp(), shrinkScalarLogicOp(), simplifyNeonVld1(), llvm::LegalityPredicates::sizeNotPow2(), truncateVectorWithPACK(), UnrollRuntimeLoopRemainder(), UpgradeX86ALIGNIntrinsics(), llvm::AMDGPULibCalls::useNative(), llvm::InstCombiner::visitCallInst(), llvm::InstCombiner::visitLShr(), and llvm::LegalizerHelper::widenScalar().
|
inline |
Return true if the argument is a power of two > 0 (64 bit edition.)
Definition at line 470 of file MathExtras.h.
Referenced by llvm::Align::Align(), llvm::jitlink::InProcessMemoryManager::allocate(), combineMul(), combineMulSpecial(), computeMinimumValueSizes(), llvm::slpvectorizer::BoUpSLP::computeMinimumValueSizes(), computeRecurrenceType(), createVariablePermute(), CTLog2(), encodeBitmaskPerm(), llvm::FastISel::fastEmit_ri_(), getAddrSpace(), getNewAlignmentDiff(), getOptimalRepmovsType(), getParentPad(), llvm::AArch64TargetLowering::isLegalAddressingMode(), isMulPowOf2(), llvm::APInt::isPowerOf2(), isSaturatingConditional(), LowerAndToBT(), llvm::PPCTargetLowering::LowerAsmOperandForConstraint(), LowerCONCAT_VECTORSvXi1(), matchRotateSub(), llvm::MaybeAlign::MaybeAlign(), mayTailCallThisCC(), operator/(), llvm::AArch64InstrInfo::optimizeCondBranch(), parseHexOcta(), llvm::MipsAsmPrinter::PrintAsmOperand(), llvm::AMDGPUInstPrinter::printSwizzle(), llvm::FastISel::selectBinaryOp(), llvm::jitlink::Block::setAlignment(), tryToShorten(), and TypeSizeToSizeIndex().
| bool llvm::isPrefixedHexStyle | ( | HexPrintStyle | S | ) |
Definition at line 249 of file NativeFormatting.cpp.
References PrefixLower, and PrefixUpper.
Referenced by llvm::detail::HelperFunctions::consumeNumHexDigits().
Check whether the given Opcode is a generic opcode that is not supposed to appear after ISel.
Definition at line 30 of file TargetOpcodes.h.
Referenced by constrainSelectedInstRegOperands(), llvm::ARMRegisterBankInfo::getInstrMapping(), llvm::X86RegisterBankInfo::getInstrMapping(), llvm::AArch64RegisterBankInfo::getInstrMapping(), getRegClassFromGRPhysReg(), getVectorSHLImm(), llvm::Legalizer::legalizeMachineFunction(), machineFunctionIsIllegal(), and llvm::GISelCSEInfo::shouldCSE().
Checks whether character C is printable.
Locale-independent version of the C standard library isprint whose results may differ on different platforms.
Definition at line 105 of file StringExtras.h.
References C.
Referenced by llvm::TextInstrProfReader::hasFormat(), llvm::raw_ostream::operator<<(), printEscapedString(), PrintQuotedString(), and llvm::raw_ostream::write_escaped().
|
inlinestatic |
Definition at line 640 of file ARMBaseInstrInfo.h.
Referenced by tryFoldSPUpdateIntoPushPop().
isRawBitcode - Return true if the given bytes are the magic bytes for raw LLVM IR bitcode (without a wrapper).
Definition at line 204 of file BitcodeReader.h.
Referenced by isBitcode().
|
static |
Definition at line 481 of file RuntimeDyld.cpp.
References assert(), llvm::object::ELFSectionRef::getFlags(), llvm::object::SectionRef::getObject(), llvm::COFF::IMAGE_SCN_CNT_INITIALIZED_DATA, llvm::COFF::IMAGE_SCN_MEM_READ, llvm::COFF::IMAGE_SCN_MEM_WRITE, llvm::ELF::SHF_EXECINSTR, and llvm::ELF::SHF_WRITE.
Referenced by llvm::RuntimeDyldImpl::computeTotalAllocSize(), and llvm::RuntimeDyldImpl::emitSection().
| bool llvm::isReallocLikeFn | ( | const Value * | V, |
| const TargetLibraryInfo * | TLI, | ||
| bool | LookThroughBitCast = false |
||
| ) |
Tests if a value is a call or invoke to a library function that reallocates memory (e.g., realloc).
Definition at line 292 of file MemoryBuiltins.cpp.
References getAllocationData(), and ReallocLike.
Referenced by annotateAnyAllocSite(), and inferLibFuncAttributes().
| bool llvm::isReallocLikeFn | ( | const Function * | F, |
| const TargetLibraryInfo * | TLI | ||
| ) |
Tests if a function is a call or invoke to a library function that reallocates memory (e.g., realloc).
Tests if a functions is a call or invoke to a library function that reallocates memory (e.g., realloc).
Definition at line 299 of file MemoryBuiltins.cpp.
References getAllocationDataForFunction(), and ReallocLike.
|
inline |
Definition at line 153 of file AliasAnalysis.h.
Referenced by llvm::AliasSetTracker::add(), checkFunctionMemoryAccess(), llvm::AAResults::doesNotReadMemory(), eliminateDeadStores(), llvm::AAResults::getModRefInfo(), handleEndBlock(), and isOrdered().
| bool llvm::isRegLiveInExitBlocks | ( | MachineLoop * | Loop, |
| int | PhysReg | ||
| ) |
Return true if PhysReg is live outside the loop, i.e.
determine if it is live in the loop exit blocks, and false otherwise.
Definition at line 135 of file MachineLoopUtils.cpp.
References llvm::LoopBase< BlockT, LoopT >::getExitBlocks().
|
inline |
Definition at line 131 of file AtomicOrdering.h.
References isAtLeastOrStrongerThan(), and Release.
Referenced by atomicSizeSupported(), llvm::RISCVTargetLowering::emitLeadingFence(), llvm::PPCTargetLowering::emitLeadingFence(), llvm::TargetLoweringBase::emitLeadingFence(), llvm::AArch64TargetLowering::emitStoreConditional(), llvm::ARMTargetLowering::emitStoreConditional(), and isMulPowOf2().
|
static |
Definition at line 458 of file RuntimeDyld.cpp.
References assert(), llvm::object::coff_section::Characteristics, llvm::object::ELFSectionRef::getFlags(), llvm::object::SectionRef::getObject(), llvm::COFF::IMAGE_SCN_LNK_INFO, llvm::COFF::IMAGE_SCN_MEM_DISCARDABLE, llvm::ELF::SHF_ALLOC, llvm::object::coff_section::SizeOfRawData, and llvm::object::coff_section::VirtualSize.
Referenced by llvm::RuntimeDyldImpl::computeTotalAllocSize(), and llvm::RuntimeDyldImpl::emitSection().
Definition at line 159 of file LanaiInstrInfo.h.
Referenced by llvm::LanaiRegisterInfo::eliminateFrameIndex(), and PostOperandDecodeAdjust().
Definition at line 169 of file LanaiInstrInfo.h.
Referenced by PostOperandDecodeAdjust().
Returns true iff Val consists of one contiguous run of 1s with any number of 0s on either side.
The 1s are allowed to wrap from LSB to MSB, so 0x000FFF0, 0x0000FFFF, and 0xFF0000FF are all runs. 0x0F0F0000 is not, since all 1s are not contiguous.
Definition at line 61 of file PPCMCTargetDesc.h.
References countLeadingZeros(), and isShiftedMask_32().
Referenced by addNegOperand(), isOpcWithIntImmediate(), and mayUseP9Setb().
Definition at line 85 of file PPCMCTargetDesc.h.
References countLeadingZeros(), and isShiftedMask_64().
Referenced by mayUseP9Setb().
It is safe to destroy a constant iff it is only used by constants itself.
Note that constants cannot be cyclic, so this test is pretty easy to implement recursively.
Definition at line 45 of file GlobalStatus.cpp.
References llvm::Value::users().
Referenced by analyzeGlobalAux(), CleanupConstantGlobalUsers(), CleanupPointerRootUsers(), eliminateAvailableExternally(), isSafeSROAElementUse(), and llvm::GlobalDCEPass::run().
| bool llvm::isSafeToExpand | ( | const SCEV * | S, |
| ScalarEvolution & | SE | ||
| ) |
Return true if the given expression is safe to expand in the sense that all materialized values are safe to speculate anywhere their operands are defined.
Definition at line 2424 of file ScalarEvolutionExpander.cpp.
References visitAll().
Referenced by canFoldIVIncExpr(), ConvertToSInt(), getMaxBackedgeTakenCount(), GetPointerOperand(), isSafeToExpandAt(), and llvm::LoopDataPrefetchPass::run().
| bool llvm::isSafeToExpandAt | ( | const SCEV * | S, |
| const Instruction * | InsertionPoint, | ||
| ScalarEvolution & | SE | ||
| ) |
Return true if the given expression is safe to expand in the sense that all materialized values are defined and safe to speculate at the specified location and their operands are defined at this location.
Definition at line 2430 of file ScalarEvolutionExpander.cpp.
References llvm::ScalarEvolution::dominates(), llvm::Instruction::getParent(), llvm::BasicBlock::getTerminator(), isSafeToExpand(), llvm::User::operand_values(), and llvm::ScalarEvolution::properlyDominates().
Referenced by CanGenerateTest(), generateLoopLatchCheck(), and getVectorType().
| bool llvm::isSafeToLoadUnconditionally | ( | Value * | V, |
| MaybeAlign | MA, | ||
| APInt & | Size, | ||
| const DataLayout & | DL, | ||
| Instruction * | ScanFrom = nullptr, |
||
| const DominatorTree * | DT = nullptr |
||
| ) |
Return true if we know that executing a load from this value cannot trap.
Check if executing a load of this pointer value cannot trap.
If DT and ScanFrom are specified this method performs context-sensitive analysis and returns true if it is safe to load immediately before ScanFrom.
If it is not obviously safe to load from the specified pointer, we do a quick local scan of the basic block containing ScanFrom, to determine if the address is already accessed.
If DT and ScanFrom are specified this method performs context-sensitive analysis and returns true if it is safe to load immediately before ScanFrom.
If it is not obviously safe to load from the specified pointer, we do a quick local scan of the basic block containing ScanFrom, to determine if the address is already accessed.
This uses the pointee type to determine how many bytes need to be safe to load from the pointer.
Definition at line 262 of file Loads.cpp.
References AreEquivalentAddressValues(), llvm::BasicBlock::begin(), E, llvm::APInt::getBitWidth(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::Instruction::getParent(), llvm::Type::getPointerElementType(), llvm::Value::getType(), llvm::DataLayout::getTypeStoreSize(), llvm::DataLayout::getValueOrABITypeAlignment(), llvm::APInt::getZExtValue(), isDereferenceableAndAlignedPointer(), SI, and llvm::Value::stripPointerCasts().
Referenced by canMoveAboveCall(), isSafePHIToSpeculate(), isSafeSelectToSpeculate(), isSafeToLoadUnconditionally(), and llvm::InstCombiner::visitLoadInst().
| bool llvm::isSafeToLoadUnconditionally | ( | Value * | V, |
| Type * | Ty, | ||
| MaybeAlign | Alignment, | ||
| const DataLayout & | DL, | ||
| Instruction * | ScanFrom = nullptr, |
||
| const DominatorTree * | DT = nullptr |
||
| ) |
Return true if we know that executing a load from this value cannot trap.
If DT and ScanFrom are specified this method performs context-sensitive analysis and returns true if it is safe to load immediately before ScanFrom.
If it is not obviously safe to load from the specified pointer, we do a quick local scan of the basic block containing ScanFrom, to determine if the address is already accessed.
Definition at line 341 of file Loads.cpp.
References DefMaxInstsToScan, llvm::DataLayout::getIndexTypeSizeInBits(), llvm::Value::getType(), llvm::DataLayout::getTypeStoreSize(), llvm::cl::Hidden, llvm::cl::init(), isSafeToLoadUnconditionally(), and Size.
| bool llvm::isSafeToMoveBefore | ( | Instruction & | I, |
| Instruction & | InsertPoint, | ||
| const DominatorTree & | DT, | ||
| const PostDominatorTree & | PDT, | ||
| DependenceInfo & | DI | ||
| ) |
Return true if I can be safely moved before InsertPoint.
Definition at line 92 of file CodeMoverUtils.cpp.
References any_of(), llvm::SmallPtrSetImpl< PtrType >::begin(), collectInstructionsInBetween(), llvm::DependenceInfo::depends(), llvm::DominatorTree::dominates(), dyn_cast(), llvm::SmallPtrSetImpl< PtrType >::end(), llvm::ilist_node_with_parent< NodeTy, ParentTy, Options >::getNextNode(), llvm::CallBase::hasFnAttr(), I, llvm::SmallPtrSetImpl< PtrType >::insert(), isControlFlowEquivalent(), isSafeToSpeculativelyExecute(), llvm::Instruction::isTerminator(), llvm::Instruction::mayThrow(), llvm::User::operands(), reportInvalidCandidate(), and llvm::Value::uses().
Referenced by moveInstsBottomUp().
| bool llvm::isSafeToSpeculativelyExecute | ( | const Value * | V, |
| const Instruction * | CtxI = nullptr, |
||
| const DominatorTree * | DT = nullptr |
||
| ) |
Return true if the instruction does not have any effects besides calculating the result and does not have undefined behavior.
This method never returns true for an instruction that returns true for mayHaveSideEffects; however, this method also does some other checks in addition. It checks for undefined behavior, like dividing by zero or loading from an invalid pointer (but not for undefined results, like a shift with a shift amount larger than the width of the result). It checks for malloc and alloca because speculatively executing them might cause a memory leak. It also returns false for instructions related to control flow, specifically terminators and PHI nodes.
If the CtxI is specified this method performs context-sensitive analysis and returns true if it is safe to execute the instruction immediately before the CtxI.
If the CtxI is NOT specified this method only looks at the instruction itself and its operands, so if this method returns true, it is safe to move the instruction as long as the correct dominance relationships for the operands and users hold.
This method can return true for instructions that read memory; for such instructions, moving them may change the resulting value.
Definition at line 4057 of file ValueTracking.cpp.
References C, llvm::MCID::Call, Callee, dyn_cast(), llvm::numbers::e, llvm::LoadInst::getAlignment(), llvm::Module::getDataLayout(), llvm::Instruction::getModule(), llvm::User::getNumOperands(), llvm::Operator::getOpcode(), llvm::User::getOperand(), llvm::LoadInst::getPointerOperand(), llvm::Value::getType(), isDereferenceableAndAlignedPointer(), llvm::APInt::isMinSignedValue(), llvm::SPII::Load, llvm::PatternMatch::m_APInt(), llvm::PatternMatch::match(), mustSuppressSpeculation(), llvm::MipsISD::Ret, and llvm::SPII::Store.
Referenced by llvm::IVUsers::AddUsersImpl(), appendSpeculatableOperands(), CanPHITrans(), ComputeSpeculationCost(), ComputeSpeculationCost(), DominatesMergePoint(), GetUnderlyingObject(), HoistThenElseCodeToIf(), isEphemeralValueOf(), isHoistable(), isIgnorableInst(), isInTailCallPosition(), isOnlyReachableViaThisEdge(), isSafeToExecuteUnconditionally(), isSafeToMoveBefore(), isSupportedGuardInstruction(), llvm::Loop::makeLoopInvariant(), mayBeMemoryDependent(), llvm::PHITransAddr::PHITranslateWithInsertion(), RemoveInstInputs(), reportMayClobberedLoad(), shouldMergeGEPs(), llvm::JumpThreadingPass::SimplifyPartiallyRedundantLoad(), sinkSelectOperand(), and SpeculativelyExecuteBB().
| bool llvm::isSafeToUnrollAndJam | ( | Loop * | L, |
| ScalarEvolution & | SE, | ||
| DominatorTree & | DT, | ||
| DependenceInfo & | DI | ||
| ) |
Definition at line 688 of file LoopUnrollAndJam.cpp.
References llvm::SimpleLoopSafetyInfo::anyBlockMayThrow(), checkDependencies(), llvm::SimpleLoopSafetyInfo::computeLoopSafetyInfo(), llvm::LoopBase< BlockT, LoopT >::contains(), llvm::SmallPtrSetImpl< PtrType >::count(), dbgs(), llvm::LoopBase< BlockT, LoopT >::getExitingBlock(), llvm::LoopBase< BlockT, LoopT >::getHeader(), llvm::LoopBase< BlockT, LoopT >::getLoopLatch(), llvm::Instruction::getParent(), llvm::LoopBase< BlockT, LoopT >::getSubLoops(), llvm::BasicBlock::hasAddressTaken(), hasIterationCountInvariantInParent(), I, llvm::Loop::isLoopSimplifyForm(), LLVM_DEBUG, llvm::Instruction::mayHaveSideEffects(), llvm::Instruction::mayReadOrWriteMemory(), partitionOuterLoopBlocks(), processHeaderPhiOperands(), and llvm::SmallPtrSetImplBase::size().
Referenced by tryToUnrollAndJamLoop().
Definition at line 155 of file NVPTXUtilities.cpp.
References assert(), findAllNVVMAnnotation(), findOneNVVMAnnotation(), llvm::GlobalValue::getParent(), and is_contained().
Referenced by llvm::NVPTXAsmPrinter::doFinalization(), getOpenCLAlignment(), and INITIALIZE_PASS().
|
inlinestatic |
Definition at line 107 of file X86InstrInfo.h.
References llvm::MachineOperand::getImm(), and llvm::MachineOperand::isImm().
Referenced by isLeaMem().
|
inline |
Returns true if this personality uses scope-style EH IR instructions: catchswitch, catchpad/ret, and cleanuppad/ret.
Definition at line 79 of file EHPersonalities.h.
References CoreCLR, llvm_unreachable, MSVC_CXX, MSVC_Win64SEH, MSVC_X86SEH, and Wasm_CXX.
Referenced by llvm::LoopSafetyInfo::computeBlockColors(), createCallInst(), createDwarfEHPass(), createObjCARCOptPass(), INITIALIZE_PASS(), InlineFunction(), isUsingScopeBasedEH(), llvm::SelectionDAGBuilder::lowerInvokable(), llvm::MachineFunction::MachineFunction(), matchPair(), and llvm::EscapeEnumerator::Next().
|
inline |
Checks if a signed integer is an N bit number shifted left by S.
Definition at line 351 of file MathExtras.h.
References N.
Return true if the argument contains a non-empty sequence of ones with the remainder zero (32 bit version.) Ex.
isShiftedMask_32(0x0000FF00U) == true.
Definition at line 453 of file MathExtras.h.
References isMask_32().
Referenced by CombineANDShift(), llvm::PPCTTIImpl::getIntImmCostInst(), llvm::ARM::isBitFieldInvertedMask(), isRunOfOnes(), isShiftedMask(), and SDValueToConstBool().
|
inline |
Return true if the argument contains a non-empty sequence of ones with the remainder zero (64 bit version.)
Definition at line 459 of file MathExtras.h.
References isMask_64().
Referenced by foldMaskedShiftToBEXTR(), llvm::PPCTTIImpl::getIntImmCostInst(), getPermuteMask(), isBitfieldPositioningOp(), isRunOfOnes64(), llvm::APInt::isShiftedMask(), isShiftedMask(), optimizeLogicalImm(), and llvm::AArch64_AM::processLogicalImmediate().
|
inline |
Checks if a unsigned integer is an N bit number shifted left by S.
Definition at line 391 of file MathExtras.h.
References N.
|
inline |
Given an exploded icmp instruction, return true if the comparison only checks the sign bit.
If it only checks the sign bit, set TrueIfSigned if the result of the comparison is true when the input value is signed.
Definition at line 119 of file InstCombineInternal.h.
References C, getFlippedStrictnessPredicateAndConstant(), llvm::CmpInst::ICMP_SGE, llvm::CmpInst::ICMP_SGT, llvm::CmpInst::ICMP_SLE, llvm::CmpInst::ICMP_SLT, llvm::CmpInst::ICMP_UGE, llvm::CmpInst::ICMP_UGT, llvm::CmpInst::ICMP_ULE, llvm::CmpInst::ICMP_ULT, llvm::APInt::isAllOnesValue(), llvm::APInt::isMaxSignedValue(), llvm::APInt::isMinSignedValue(), and llvm::APInt::isNullValue().
Referenced by llvm::InstCombiner::canonicalizeCondSignextOfHighBitExtractToSignextHighBitExtract(), foldICmpShlOne(), getDemandedBitsLHSMask(), and processUGT_ADDCST_ADD().
Return true if the input value is known to be a vector with all identical elements (potentially including undefined elements).
This may be more powerful than the related getSplatValue() because it is not limited by finding a scalar source value to a splatted vector.
Definition at line 333 of file VectorUtils.cpp.
References assert(), C, llvm::Constant::getSplatValue(), llvm::Value::getType(), llvm::PatternMatch::m_BinOp(), llvm::PatternMatch::m_Constant(), llvm::PatternMatch::m_Select(), llvm::PatternMatch::m_ShuffleVector(), llvm::PatternMatch::m_Value(), llvm::BitmaskEnumDetail::Mask(), llvm::PatternMatch::match(), X, and Y.
Referenced by llvm::SelectionDAG::isKnownNeverSNaN().
Definition at line 145 of file LanaiInstrInfo.h.
Referenced by llvm::LanaiRegisterInfo::eliminateFrameIndex(), and PostOperandDecodeAdjust().
Definition at line 20 of file Statepoint.cpp.
References F(), and llvm::CallBase::getCalledFunction().
Referenced by createCodeGenPreparePass(), getParentPad(), llvm::GCProjectionInst::getStatepoint(), isSafeToEliminateVarargsCast(), isStatepoint(), needsStatepoint(), llvm::RewriteStatepointsForGC::runOnFunction(), llvm::StatepointBase< Function, Instruction, Value, CallBase >::StatepointBase(), and llvm::SelectionDAGBuilder::visitBitTestCase().
Definition at line 26 of file Statepoint.cpp.
References isStatepoint().
Definition at line 32 of file Statepoint.cpp.
References isStatepoint().
Return true if the Attr is an attribute that is a statepoint directive.
Definition at line 54 of file Statepoint.cpp.
References llvm::Attribute::hasAttribute().
Referenced by legalizeCallAttributes().
| bool llvm::isStrdupLikeFn | ( | const Value * | V, |
| const TargetLibraryInfo * | TLI, | ||
| bool | LookThroughBitCast = false |
||
| ) |
Tests if a value is a call or invoke to a library function that allocates memory (strdup, strndup).
Definition at line 312 of file MemoryBuiltins.cpp.
References getAllocationData(), and StrDupLike.
Referenced by annotateAnyAllocSite().
|
inline |
Returns true if ao is stronger than other as defined by the AtomicOrdering lattice, which is based on C++'s definition.
Definition at line 89 of file AtomicOrdering.h.
References lookup().
Referenced by llvm::InstructionSelector::executeMatchTable(), llvm::AAResults::getModRefInfo(), isContiguous(), isStrongerThanMonotonic(), isStrongerThanUnordered(), and llvm::StoreInst::setAlignment().
|
inline |
Definition at line 123 of file AtomicOrdering.h.
References isStrongerThan(), and Monotonic.
Referenced by llvm::AliasSetTracker::add(), llvm::AAResults::getModRefInfo(), isWorthFoldingADDlow(), LowerATOMIC_LOAD_STORE(), LowerAtomicLoadStore(), and pickOpcodeForVT().
|
inline |
Definition at line 119 of file AtomicOrdering.h.
References isStrongerThan(), and Unordered.
Referenced by llvm::GVNExpression::Expression::dump(), and llvm::MemoryDependenceResults::getSimplePointerDependencyFrom().
Definition at line 144 of file NVPTXUtilities.cpp.
References assert(), and findOneNVVMAnnotation().
Referenced by llvm::NVPTXAsmPrinter::doFinalization(), and INITIALIZE_PASS().
Check whether the given Opcode is a target-specific opcode.
Definition at line 36 of file TargetOpcodes.h.
Referenced by constrainOperandRegClass(), and llvm::SIInstrInfo::mayReadEXEC().
Definition at line 133 of file NVPTXUtilities.cpp.
References assert(), and findOneNVVMAnnotation().
Referenced by llvm::NVPTXAsmPrinter::doFinalization(), and INITIALIZE_PASS().
|
static |
Definition at line 24 of file RuntimeDyldCOFFThumb.h.
References llvm::raw_ostream::flush(), llvm::object::SymbolRef::getType(), llvm::COFF::IMAGE_SCN_MEM_16BIT, logAllUnhandledErrors(), report_fatal_error(), llvm::object::SymbolRef::ST_Function, and llvm::Expected< T >::takeError().
Referenced by llvm::RuntimeDyldCOFFThumb::processRelocationRef().
| bool llvm::isTriviallyDead | ( | const MachineInstr & | MI, |
| const MachineRegisterInfo & | MRI | ||
| ) |
Check whether an instruction MI is dead: it only defines dead virtual registers, and doesn't have other side effects.
Definition at line 158 of file Utils.cpp.
References llvm::MachineInstr::isPHI(), llvm::Register::isPhysicalRegister(), llvm::MachineInstr::isSafeToMove(), llvm::MachineInstr::operands(), Reg, and llvm::MachineRegisterInfo::use_nodbg_empty().
Referenced by llvm::Combiner::combineMachineInstrs(), llvm::Legalizer::legalizeMachineFunction(), and llvm::InstructionSelect::runOnMachineFunction().
| bool llvm::isTriviallyVectorizable | ( | Intrinsic::ID | ID | ) |
Identify if the intrinsic is trivially vectorizable.
Return true if all of the intrinsic's arguments and return type are scalars for the scalar form of the intrinsic, and vectors for the vector form of the intrinsic (except operands that are marked as always being scalar by hasVectorInstrinsicScalarOpd).
This method returns true if the intrinsic's argument types are all scalars for the scalar form of the intrinsic and all vectors (or scalars handled by hasVectorInstrinsicScalarOpd) for the vector form of the intrinsic.
Definition at line 44 of file VectorUtils.cpp.
References log2(), maximum(), maxnum(), minimum(), minnum(), and round().
Referenced by llvm::slpvectorizer::BoUpSLP::eraseInstructions(), getVectorIntrinsicIDForCall(), and isTriviallyScalariable().
|
inline |
Checks if an unsigned integer fits into the given bit width.
This is written as two functions rather than as simply
return N >= 64 || X < (UINT64_C(1) << N);
to keep MSVC from (incorrectly) warning on isUInt<64> that we're shifting left too many places.
Definition at line 368 of file MathExtras.h.
References N.
Referenced by IsRevOpcode().
Definition at line 374 of file MathExtras.h.
|
inline |
Definition at line 382 of file MathExtras.h.
Referenced by CC_MipsO32_FP64(), combineADDToADDZE(), llvm::PPCInstrInfo::convertToImmediateForm(), covertDoubleImmToSingleImm(), createXCoreISelDag(), llvm::MCDwarfFrameEmitter::EncodeAdvanceLoc(), encodeBitmaskPerm(), encodeCnt(), getAddrSpace(), getComparePred(), llvm::PPCTTIImpl::getIntImmCostInst(), getLit64Encoding(), getVPTESTMOpc(), INITIALIZE_PASS(), llvm::SystemZTTIImpl::isFoldableLoad(), isImmSExti16i8Value(), llvm::AMDGPU::isInlinableLiteralV216(), llvm::SIInstrInfo::isInlineConstant(), isKImmOrKUImmOperand(), isKUImmOperand(), llvm::PPCTargetLowering::isLegalAddImmediate(), llvm::SITargetLowering::isLegalAddressingMode(), llvm::PPCTargetLowering::isLegalICmpImmediate(), isRegOrImmWithInputMods(), isShiftedUIntAtAnyPosition(), isStackPtrRelative(), llvm::LanaiTargetLowering::LowerAsmOperandForConstraint(), llvm::PPCTargetLowering::LowerAsmOperandForConstraint(), needsExpandMemInst(), llvm::AMDGPUInstPrinter::printInst(), llvm::AMDGPUInstPrinter::printRegOperand(), llvm::ARMTargetLowering::ReplaceNodeResults(), selectI64Imm(), selectSGPRVectorRegClassID(), shouldSwapCmpOperands(), supportedAddressingMode(), updateOperand(), llvm::SIInstrInfo::verifyInstruction(), verifyScalarSize(), and verifyVectorElementCount().
|
inline |
Definition at line 385 of file MathExtras.h.
Referenced by computeBytesPoppedByCalleeForSRet(), covertDoubleImmToSingleImm(), llvm::AMDGPUAsmPrinter::doFinalization(), llvm::SIFrameLowering::eliminateCallFramePseudoInstr(), llvm::MCDwarfFrameEmitter::EncodeAdvanceLoc(), encodeBitmaskPerm(), findMemSDNode(), foldImmediates(), foldMaskedShiftToScaledMask(), llvm::SystemZTTIImpl::getIntImmCost(), llvm::SystemZTTIImpl::getIntImmCostInst(), llvm::X86TTIImpl::getIntImmCostInst(), llvm::SystemZTTIImpl::getIntImmCostIntrin(), getRegNum(), getTime(), getVPTESTMOpc(), hasAnyNonFlatUseOfReg(), hasSingleUsesFromRoot(), isImmSExti32i8Value(), llvm::SystemZTargetLowering::isLegalAddImmediate(), llvm::SITargetLowering::isLegalAddressingMode(), llvm::SystemZTargetLowering::isLegalICmpImmediate(), isShiftedUIntAtAnyPosition(), LowerAndToBT(), parseHexOcta(), parsePredicateConstraint(), parseSectionFlags(), llvm::AMDGPUInstPrinter::printRegOperand(), llvm::AMDGPUInstructionSelector::select(), selectI64Imm(), and selectSGPRVectorRegClassID().
|
inline |
Definition at line 379 of file MathExtras.h.
Referenced by dumpRelocs(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::BitstreamWriter::emitBlob(), llvm::MCDwarfFrameEmitter::EncodeAdvanceLoc(), encodeBitmaskPerm(), getBufferFormatWithCompCount(), llvm::SystemZInstrInfo::getFusedCompare(), llvm::AVRTargetLowering::getSingleConstraintMatchWeight(), llvm::SystemZTargetLowering::getSingleConstraintMatchWeight(), getVPTESTMOpc(), INITIALIZE_PASS(), isImmUnsignedi8Value(), isImmValidForOpcode(), isLegalAddressImmediate(), llvm::SITargetLowering::isLegalAddressingMode(), llvm::AMDGPU::isLegalSMRDImmOffset(), isLegalT2AddressImmediate(), isStackPtrRelative(), LowerAndToBT(), llvm::AVRTargetLowering::LowerAsmOperandForConstraint(), llvm::SystemZTargetLowering::LowerAsmOperandForConstraint(), Mips16WhichOp8uOr16simm(), and selectSGPRVectorRegClassID().
Checks if an unsigned integer fits into the given (dynamic) bit width.
Definition at line 429 of file MathExtras.h.
References maxUIntN().
Referenced by addNegOperand(), llvm::MCStreamer::EmitIntValue(), llvm::MCObjectStreamer::EmitValueImpl(), llvm::MCDwarfFrameEmitter::EncodeAdvanceLoc(), getPrefixes(), isExtendedBUILD_VECTOR(), isOperator(), IsRevOpcode(), llvm::ConstantInt::isValueValidForType(), lowerObjectSizeCall(), adjust::unsigned_width(), valueFitsIntoFixupKind(), llvm::SelectionDAGBuilder::visitBitTestHeader(), and widenCtPop().
|
inlinestatic |
Definition at line 352 of file AArch64InstrInfo.h.
References B.
Referenced by llvm::ARMBaseInstrInfo::PredicateInstruction(), llvm::ARCInstrInfo::removeBranch(), llvm::ARMBaseInstrInfo::removeBranch(), and llvm::AArch64InstrInfo::removeBranch().
|
inlinestatic |
Definition at line 487 of file ARMBaseInstrInfo.h.
References B.
Definition at line 298 of file LoopVectorizationLegality.cpp.
References assert(), llvm::LoopBase< BlockT, LoopT >::contains(), dbgs(), dyn_cast(), llvm::Loop::getCanonicalInductionVariable(), llvm::LoopBase< BlockT, LoopT >::getLoopLatch(), llvm::BasicBlock::getTerminator(), llvm::Loop::isLoopInvariant(), and LLVM_DEBUG.
Referenced by isUniformLoopNest().
Definition at line 343 of file LoopVectorizationLegality.cpp.
References isUniformLoop().
Referenced by llvm::LoopVectorizationLegality::isUniform().
Definition at line 24 of file ARMFeatures.h.
References IsCPSRDead().
Referenced by IsCPSRDead< MCInst >(), and llvm::ARMBaseInstrInfo::isPredicable().
Return whether an MDNode might represent an access group.
Access group metadata nodes have to be distinct and empty. Being always-empty ensures that it never needs to be changed (which – because MDNodes are designed immutable – would require creating a new MDNode). Note that this is not a sufficient condition: not every distinct and empty NDNode is representing an access group.
Definition at line 1007 of file LoopInfo.cpp.
Referenced by addToAccessGroupList(), intersectAccessGroups(), llvm::Loop::isAnnotatedParallel(), and llvm::LoopInfoWrapperPass::releaseMemory().
| bool llvm::isValidAssumeForContext | ( | const Instruction * | I, |
| const Instruction * | CxtI, | ||
| const DominatorTree * | DT = nullptr |
||
| ) |
Return true if it is valid to use the assumptions provided by an assume intrinsic, I, at the point in the control-flow identified by the context instruction, CxtI.
Definition at line 527 of file ValueTracking.cpp.
References llvm::DominatorTree::dominates(), llvm::BasicBlock::end(), llvm::Instruction::getParent(), llvm::BasicBlock::getSinglePredecessor(), I, llvm::ARM_PROC::IE, isEphemeralValueOf(), and isGuaranteedToTransferExecutionToSuccessor().
Referenced by computeKnownBitsFromAssume(), GetUnderlyingObject(), isKnownNonZeroFromAssume(), and llvm::AlignmentFromAssumptionsPass::processAssumption().
|
inline |
Definition at line 74 of file AtomicOrdering.h.
References NotAtomic, and SequentiallyConsistent.
|
inline |
Definition at line 44 of file AtomicOrdering.h.
|
inlinestatic |
isValidCoprocessorNumber - decide whether an explicit coprocessor number is legal in generic instructions like CDP.
The answer can vary with the subtarget.
Definition at line 648 of file ARMBaseInstrInfo.h.
References addPredicatedMveVpredNOp(), addUnpredicatedMveVpredNOp(), addUnpredicatedMveVpredROp(), convertAddSubFlagsOpcode(), emitARMRegPlusImmediate(), emitT2RegPlusImmediate(), emitThumbRegPlusImmediate(), findCMPToFoldIntoCBZ(), From, getInstrPredicate(), getMatchingCondBranchOpcode(), MI, MRI, Reg, registerDefinedBetween(), rewriteARMFrameIndex(), rewriteT2FrameIndex(), TII, TRI, and tryFoldSPUpdateIntoPushPop().
Referenced by DecodeCoprocessor(), and MatchCoprocessorOperandName().
Definition at line 48 of file MCLinkerOptimizationHint.h.
References MCLOH_AdrpAdrp, and MCLOH_AdrpLdrGot.
Referenced by incrementLoc(), llvm::MCLOHDirective::MCLOHDirective(), and llvm::AArch64FunctionInfo::MILOHDirective::MILOHDirective().
|
inlinestatic |
Definition at line 599 of file ARMBaseInstrInfo.h.
References llvm::MachineInstr::getOpcode().
Referenced by IsSafeToMove().
|
inlinestatic |
Definition at line 512 of file ARMBaseInstrInfo.h.
Referenced by isVectorPredicable().
Returns true iff U is a widenable branch (that is, parseWidenableBranch returns true).
Definition at line 22 of file GuardUtils.cpp.
References parseWidenableBranch().
Referenced by makeGuardControlFlowExplicit(), setWidenableBranchCond(), turnToExplicitForm(), and widenWidenableBranch().
|
static |
Definition at line 499 of file RuntimeDyld.cpp.
References llvm::object::SectionRef::getObject(), llvm::object::ELFSectionRef::getType(), llvm::COFF::IMAGE_SCN_CNT_UNINITIALIZED_DATA, llvm::MachO::S_GB_ZEROFILL, llvm::MachO::S_ZEROFILL, and llvm::ELF::SHT_NOBITS.
Referenced by llvm::RuntimeDyldImpl::emitSection().
Definition at line 328 of file ItaniumDemangle.cpp.
References assert(), demangle_invalid_args, demangle_invalid_mangled_name, demangle_memory_alloc_failure, demangle_success, and initializeOutputStream().
Referenced by demangle(), and llvm::symbolize::LLVMSymbolizer::DemangleName().
|
inline |
Definition at line 238 of file StringExtras.h.
References getToken(), llvm::Sched::Source, SplitString(), StrInStrNoCase(), and utostr().
Referenced by createAMDGPUPrintfRuntimeBinding(), createThreadSanitizerLegacyPassPass(), llvm::IntInit::getAsString(), getOrInsertGlobal(), instrumentMaskedLoadOrStore(), llvm::AArch64InstPrinter::printTypedVectorList(), RetagMask(), llvm::HWAddressSanitizerPass::run(), TypeSizeToSizeIndex(), and llvm::codeview::TypeRecordMapping::visitMemberEnd().
|
static |
Definition at line 149 of file RTDyldMemoryManager.cpp.
References LLVM_ATTRIBUTE_WEAK.
Referenced by llvm::RTDyldMemoryManager::getSymbolAddressInProcess().
| void llvm::jitLinkForORC | ( | object::ObjectFile & | Obj, |
| std::unique_ptr< MemoryBuffer > | UnderlyingBuffer, | ||
| RuntimeDyld::MemoryManager & | MemMgr, | ||
| JITSymbolResolver & | Resolver, | ||
| bool | ProcessAllSections, | ||
| unique_function< Error(std::unique_ptr< RuntimeDyld::LoadedObjectInfo >, std::map< StringRef, JITEvaluatedSymbol >)> | OnLoaded, | ||
| unique_function< void(Error)> | OnEmitted | ||
| ) |
| void llvm::jitLinkForORC | ( | object::ObjectFile & | Obj, |
| std::unique_ptr< MemoryBuffer > | UnderlyingBuffer, | ||
| RuntimeDyld::MemoryManager & | MemMgr, | ||
| JITSymbolResolver & | Resolver, | ||
| bool | ProcessAllSections, | ||
| unique_function< Error(std::unique_ptr< RuntimeDyld::LoadedObjectInfo > LoadedObj, std::map< StringRef, JITEvaluatedSymbol >)> | OnLoaded, | ||
| unique_function< void(Error)> | OnEmitted | ||
| ) |
Definition at line 1406 of file RuntimeDyld.cpp.
References llvm::RuntimeDyld::getErrorString(), llvm::RuntimeDyld::hasError(), inconvertibleErrorCode(), Info, llvm::RuntimeDyld::loadObject(), and llvm::RuntimeDyld::setProcessAllSections().
| T llvm::jitTargetAddressToFunction | ( | JITTargetAddress | Addr | ) |
Convert a JITTargetAddress to a callable function pointer.
Casts the given address to a callable function pointer. This operation will perform pointer signing for platforms that require it (e.g. arm64e).
Definition at line 60 of file JITSymbol.h.
| T llvm::jitTargetAddressToPointer | ( | JITTargetAddress | Addr | ) |
Convert a JITTargetAddress to a pointer.
Note: This is a raw cast of the address bit pattern to the given pointer type. When casting to a function pointer in order to execute JIT'd code jitTargetAddressToFunction should be preferred, as it will also perform pointer signing on targets that require it.
Definition at line 49 of file JITSymbol.h.
References assert().
|
inline |
Joins the strings in the range [Begin, End), adding Separator between the elements.
Definition at line 370 of file StringExtras.h.
Referenced by checkFeature(), collectPGOFuncNameStrings(), collectRegDefs(), ExpandCryptoAEK(), llvm::SubtargetFeatures::getString(), INITIALIZE_PASS(), isRegOtherThanSPAndFP(), join(), and toString().
|
inline |
Joins the strings in the range [R.begin(), R.end()), adding Separator between the elements.
Definition at line 378 of file StringExtras.h.
References llvm::AMDGPU::HSAMD::Kernel::Key::Args, and join().
|
inline |
Joins the strings in the parameter pack Items, adding Separator between the elements.
All arguments must be implicitly convertible to std::string, or there should be an overload of std::string::operator+=() that accepts the argument explicitly.
Definition at line 387 of file StringExtras.h.
References llvm::detail::join_items_impl(), llvm::detail::join_items_size(), and llvm::detail::join_one_item_size().
Concatenate errors.
The resulting Error is unchecked, and contains the ErrorInfo(s), if any, contained in E1, followed by the ErrorInfo(s), if any, contained in E2.
Definition at line 423 of file Error.h.
References LLVM_NODISCARD.
Referenced by llvm::xray::PipelineConsumer::consume(), llvm::FileCheckPatternContext::defineCmdlineVariables(), llvm::DWARFUnit::findLoclistFromOffset(), llvm::pdb::NamedStreamMap::load(), llvm::codeview::mergeIdRecords(), llvm::DWARFDebugLine::Prologue::parse(), llvm::xray::FileBasedRecordProducer::produce(), readGSIHashBuckets(), readGSIHashRecords(), llvm::pdb::readSparseBitVector(), llvm::pdb::PublicsStream::reload(), llvm::pdb::InfoStream::reload(), slotForIndex(), and llvm::pdb::writeSparseBitVector().
|
inline |
left_justify - append spaces after string so total output is Width characters.
If Str is larger that Width, full string is written with no padding.
Definition at line 145 of file Format.h.
References llvm::FormattedString::JustifyLeft.
Referenced by buildCallOperands(), llvm::DWARFUnitIndex::dump(), and llvm::DebugCounter::print().
| StringRef llvm::lexMIToken | ( | StringRef | Source, |
| MIToken & | Token, | ||
| function_ref< void(StringRef::iterator, const Twine &)> | ErrorCallback | ||
| ) |
Consume a single machine instruction token in the given source and return the remaining source string.
Referenced by llvm::MIToken::hasIntegerValue(), maybeLexEscapedIRValue(), and llvm::MIRFormatter::parseIRValue().
Definition at line 264 of file LibDriver.cpp.
| void llvm::linkAllBuiltinGCs | ( | ) |
FIXME: Collector instances are not useful on their own.
These no longer serve any purpose except to link in the plugins. Ensure the definition of the builtin GCs gets linked in
Definition at line 130 of file BuiltinGCs.cpp.
| void llvm::linkErlangGCPrinter | ( | ) |
Creates an erlang-compatible metadata printer.
Definition at line 121 of file ErlangGCPrinter.cpp.
| void llvm::linkOcamlGCPrinter | ( | ) |
Creates an ocaml-compatible metadata printer.
Definition at line 49 of file OcamlGCPrinter.cpp.
lintFunction - Check a function for errors, printing messages on stderr.
| F | The function to be checked |
Definition at line 740 of file Lint.cpp.
References assert(), llvm::GlobalValue::getParent(), and llvm::GlobalValue::isDeclaration().
Check a module.
lintModule - Check a module for errors, printing messages on stderr.
This should only be used for debugging, because it plays games with PassManagers and stuff.
| M | The module to be checked |
Definition at line 752 of file Lint.cpp.
References llvm::legacy::PassManager::add(), and llvm::legacy::PassManager::run().
| llvm::LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE | ( | ) |
Referenced by llvm::BitmaskEnumDetail::operator^=().
| void llvm::llvm_execute_on_thread | ( | void(*)(void *) | UserFn, |
| void * | UserData, | ||
| llvm::Optional< unsigned > | StackSizeInBytes = llvm::None |
||
| ) |
Execute the given UserFn on a separate thread, passing it the provided UserData and waits for thread completion.
This function does not guarantee that the code will actually be executed on a separate thread or honoring the requested stack size, but tries to do so where system support is available.
| UserFn | - The callback to execute. |
| UserData | - An argument to pass to the callback function. |
| StackSizeInBytes | - A requested size (in bytes) for the thread stack (or None for default) |
Definition at line 126 of file Threading.cpp.
References Info.
Referenced by llvm_is_multithreaded(), and llvm::CrashRecoveryContext::RunSafelyOnThread().
| void llvm::llvm_execute_on_thread_async | ( | llvm::unique_function< void()> | Func, |
| llvm::Optional< unsigned > | StackSizeInBytes = llvm::None |
||
| ) |
Schedule the given Func for execution on a separate thread, then return to the caller immediately.
Roughly equivalent to std::thread(Func).detach(), except it allows requesting a specific stack size, if supported for the platform.
This function would report a fatal error if it can't execute the code on a separate thread.
| Func | - The callback to execute. |
| StackSizeInBytes | - A requested size (in bytes) for the thread stack (or None for default) |
Definition at line 134 of file Threading.cpp.
Referenced by llvm_is_multithreaded().
| bool llvm::llvm_is_multithreaded | ( | ) |
Returns true if LLVM is compiled with support for multi-threading, and false otherwise.
Definition at line 31 of file Threading.cpp.
References llvm::SmallVectorImpl< T >::clear(), get_max_thread_name_length(), get_thread_name(), get_threadid(), hardware_concurrency(), heavyweight_hardware_concurrency(), llvm_execute_on_thread(), llvm_execute_on_thread_async(), Name, report_fatal_error(), and set_thread_name().
Referenced by LLVMIsMultithreaded(), llvm::sys::SmartMutex< false >::lock(), llvm::sys::SmartRWMutex< true >::lock(), llvm::sys::SmartRWMutex< true >::lock_shared(), llvm::ManagedStaticBase::RegisterManagedStatic(), llvm::sys::SmartMutex< false >::try_lock(), llvm::sys::SmartMutex< false >::unlock(), llvm::sys::SmartRWMutex< true >::unlock(), and llvm::sys::SmartRWMutex< true >::unlock_shared().
| void llvm::llvm_shutdown | ( | ) |
llvm_shutdown - Deallocate and destroy all ManagedStatic variables.
Definition at line 78 of file ManagedStatic.cpp.
References llvm::ManagedStaticBase::destroy(), getManagedStaticMutex(), and Lock.
Referenced by llvm::ManagedStatic< C, Creator, Deleter >::claim(), LLVMShutdown(), llvm::InitLLVM::~InitLLVM(), and llvm::llvm_shutdown_obj::~llvm_shutdown_obj().
| void llvm::llvm_unreachable_internal | ( | const char * | msg = nullptr, |
| const char * | file = nullptr, |
||
| unsigned | line = 0 |
||
| ) |
This function calls abort(), and prints the optional message to stderr.
Use the llvm_unreachable macro (that adds location info), instead of calling this function directly.
Definition at line 199 of file ErrorHandling.cpp.
References dbgs().
Referenced by llvm::ScopedFatalErrorHandler::~ScopedFatalErrorHandler().
| LLVM_EXTERNAL_VISIBILITY void llvm::LLVMInitializeAVRTarget | ( | ) |
Definition at line 79 of file AVRTargetMachine.cpp.
References llvm::PassRegistry::getPassRegistry(), getTheAVRTarget(), initializeAVRExpandPseudoPass(), initializeAVRRelaxMemPass(), and X.
|
inlinestatic |
Definition at line 153 of file Sparc.h.
Referenced by LOX10(), replaceFI(), and llvm::SparcFrameLowering::SparcFrameLowering().
|
inlinestatic |
Definition at line 104 of file VE.h.
Referenced by llvm::VEFrameLowering::emitEpilogueInsns().
|
inline |
Return the low 32 bits of a 64 bit value.
Definition at line 325 of file MathExtras.h.
Referenced by bitOpWithConstantIsReducible(), covertDoubleImmToSingleImm(), findMemSDNode(), INITIALIZE_PASS(), isDebug(), KnuthDiv(), makeCombineInst(), and llvm::AMDGPUTargetLowering::PerformDAGCombine().
LoadIntFromMemory - Loads the integer stored in the LoadBytes bytes starting from Src into IntVal, which is assumed to be wide enough and to hold zero.
Definition at line 3091 of file APInt.cpp.
References assert(), llvm::APInt::getBitWidth(), llvm::APInt::getRawData(), and llvm::sys::IsLittleEndianHost.
Referenced by llvm::ExecutionEngine::LoadValueFromMemory(), and llvm::APIntOps::RoundFloatToAPInt().
|
static |
Returns the log2 of the alignment.
Definition at line 204 of file Alignment.h.
Referenced by branchMaxOffsets(), canConstantFoldCallTo(), CompareMBBNumbers(), llvm::GISelKnownBits::computeKnownBitsForAlignment(), ConstantFoldBinaryInstruction(), createMipsNaClELFStreamer(), getElementByteSizeValue(), llvm::HexagonTTIImpl::getMemoryOpCost(), getUnconditionalBrDisp(), mayCrossBoundary(), llvm::DataLayout::operator==(), performANDCombine(), llvm::BasicBlockInfo::postKnownBits(), llvm::MachineBasicBlock::print(), llvm::TargetLowering::SimplifyDemandedBits(), UnknownPadding(), and llvm::InstCombiner::visitFMul().
|
inline |
Returns the log2 of the alignment.
Definition at line 208 of file Alignment.h.
References ALIGN_CHECK_ISSET, llvm::Optional< T >::getValue(), and llvm::Align::Log2.
|
inline |
Return the log base 2 of the specified value.
Definition at line 574 of file MathExtras.h.
References log2().
|
static |
Definition at line 861 of file AMDGPULibCalls.cpp.
References abs(), assert(), llvm::BasicBlock::begin(), llvm::APFloat::convertToDouble(), llvm::APFloat::convertToFloat(), llvm::IRBuilder< T, Inserter >::CreateAnd(), llvm::IRBuilder< T, Inserter >::CreateBitCast(), llvm::IRBuilder< T, Inserter >::CreateFAdd(), llvm::IRBuilder< T, Inserter >::CreateFDiv(), llvm::IRBuilder< T, Inserter >::CreateFMul(), llvm::IRBuilder< T, Inserter >::CreateFPToSI(), llvm::IRBuilder< T, Inserter >::CreateOr(), llvm::IRBuilder< T, Inserter >::CreateShl(), llvm::IRBuilder< T, Inserter >::CreateSIToFP(), llvm::IRBuilder< T, Inserter >::CreateZExtOrBitCast(), dyn_cast(), llvm::AMDGPULibFuncBase::EI_CBRT, llvm::AMDGPULibFuncBase::EI_COS, llvm::AMDGPULibFuncBase::EI_EXP2, llvm::AMDGPULibFuncBase::EI_FABS, llvm::AMDGPULibFuncBase::EI_LOG2, llvm::AMDGPULibFuncBase::EI_POW, llvm::AMDGPULibFuncBase::EI_POWN, llvm::AMDGPULibFuncBase::EI_POWR, llvm::AMDGPULibFuncBase::EI_RSQRT, llvm::AMDGPULibFuncBase::EI_SIN, llvm::AMDGPULibFuncBase::EI_SINCOS, llvm::AMDGPULibFuncBase::EI_SQRT, llvm::StringRef::equals(), llvm::Instruction::eraseFromParent(), errs(), llvm::AMDGPULibFuncBase::F32, llvm::AMDGPULibFuncBase::F64, FindAvailableLoadedValue(), AMDGPUAS::FLAT_ADDRESS, llvm::ConstantFP::get(), llvm::VectorType::get(), llvm::ConstantDataVector::get(), llvm::CallBase::getArgOperand(), getArgType(), llvm::CallBase::getCalledFunction(), llvm::Module::getContext(), llvm::ConstantDataSequential::getElementAsDouble(), llvm::ConstantDataSequential::getElementAsFloat(), llvm::SequentialType::getElementType(), llvm::AMDGPULibFuncBase::getEPtrKindFromAddrSpace(), llvm::AMDGPULibFunc::getId(), llvm::IRBuilderBase::GetInsertPoint(), llvm::IRBuilderBase::getInt32Ty(), llvm::IRBuilderBase::getInt64Ty(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::AMDGPULibFunc::getLeads(), llvm::Instruction::getModule(), llvm::Value::getName(), llvm::ConstantDataSequential::getNumElements(), llvm::Value::getNumUses(), llvm::Instruction::getParent(), llvm::Type::getScalarSizeInBits(), llvm::ConstantInt::getSExtValue(), llvm::ConstantDataVector::getSplat(), llvm::ConstantDataVector::getSplatValue(), llvm::Value::getType(), llvm::ConstantFP::getValueAPF(), getVecSize(), HasNative(), I, llvm::Type::isDoubleTy(), llvm::ConstantFP::isExactlyValue(), llvm::Type::isIntegerTy(), llvm::ConstantFP::isNegative(), llvm::AMDGPULibCalls::isUnsafeMath(), llvm::ConstantFP::isZero(), LLVM_DEBUG, llvm::numbers::ln2, llvm::AMDGPULibFunc::mangle(), llvm::AMDGPULibFuncBase::NATIVE, llvm::AMDGPULibFunc::parse(), llvm::AMDGPULibFuncBase::Param::PtrKind, llvm::SmallVectorTemplateBase< T >::push_back(), llvm::Value::replaceAllUsesWith(), llvm::AMDGPULibCalls::replaceCall(), llvm::AMDGPULibFunc::setId(), and llvm::Value::users().
Referenced by canConstantFoldCallTo(), createPowWithIntegerExponent(), FixedPointIntrinsicToOpcode(), getIntrinsicForCallSite(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getIntrinsicInstrCost(), getIntToFPVal(), getOffsetFromIndices(), llvm::PPCTTIImpl::getUserCost(), llvm::ARMTTIImpl::isLoweredToCall(), isTriviallyVectorizable(), Log2(), llvm::IntrinsicLowering::LowerIntrinsicCall(), llvm::LibCallSimplifier::optimizeCall(), and simplifyUnaryIntrinsic().
Return the floor log base 2 of the specified value, -1 if the value is zero.
(32 bit edition.) Ex. Log2_32(32) == 5, Log2_32(1) == 0, Log2_32(0) == -1, Log2_32(6) == 2
Definition at line 585 of file MathExtras.h.
References countLeadingZeros().
Referenced by branchMaxOffsets(), calculateUnswitchCostMultiplier(), clampDynamicVectorIndex(), combineBasicSADPattern(), combineBT(), combineReductionToHorizontal(), combineShiftOfShiftedLogic(), llvm::SelectionDAG::computeKnownBits(), llvm::TargetLowering::computeKnownBitsForFrameIndex(), llvm::AMDGPUTargetLowering::computeKnownBitsForTargetNode(), computeKnownBitsFromOperator(), llvm::PPCFrameLowering::emitPrologue(), emitSignedInt64(), llvm::BPFSelectionDAGInfo::EmitTargetCodeForMemcpy(), ExpandPowI(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getArithmeticReductionCost(), getARMFixupKindMachOInfo(), getContiguousRangeOfSetBits(), getCopyFromParts(), getCopyToParts(), getElSizeLog2Diff(), llvm::MCSymbolMachO::getEncodedFlags(), getFalkorUnrollingPreferences(), llvm::LaneBitmask::getHighestLane(), getImmedFromMO(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getMinMaxReductionCost(), getPlatformName(), llvm::DataLayout::getPreferredAlignmentLog(), llvm::SIInstrInfo::getScratchRsrcWords23(), getStringEncoding(), getVectorSHLImm(), llvm::GCNSubtarget::getWavefrontSizeLog2(), INITIALIZE_PASS(), isEFLAGSLive(), isImmMskBitp(), isInSymtab(), llvm::HexagonTargetLowering::isLegalAddressingMode(), llvm::HexagonInstrInfo::isValidOffset(), isWorthFoldingADDlow(), llvm::XCoreInstrInfo::loadImmediate(), llvm::TargetLowering::lowerCmpEqZeroToCtlzSrl(), lowerX86CmpEqZeroToCtlzSrl(), llvm::SelectionDAG::matchBinOpReduction(), matchPairwiseReduction(), mayUsePostIncMode(), PerformMULCombine(), llvm::AMDGPUTargetLowering::performTruncateCombine(), printMemExtendImpl(), PrintQuotedString(), llvm::MachineMemOperand::refineAlignment(), llvm::MCSymbol::setCommon(), llvm::SITargetLowering::shouldEmitPCReloc(), llvm::AArch64TargetLowering::shouldReduceLoadWidth(), UnrollRuntimeLoopRemainder(), and llvm::InstCombiner::visitLShr().
Return the ceil log base 2 of the specified value, 32 if the value is zero.
(32 bit edition). Ex. Log2_32_Ceil(32) == 5, Log2_32_Ceil(1) == 0, Log2_32_Ceil(6) == 3
Definition at line 598 of file MathExtras.h.
References countLeadingZeros().
Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), llvm::AMDGPULegalizerInfo::AMDGPULegalizerInfo(), llvm::ValueEnumerator::computeBitsRequiredForTypeIndicies(), llvm::MCWinCOFFStreamer::EmitCommonSymbol(), emitSignedInt64(), llvm::SelectionDAG::getNode(), llvm::EVT::getPow2VectorType(), llvm::MVT::getPow2VectorType(), llvm::EVT::getRoundIntegerType(), getShiftAmountTyForConstant(), getStringEncoding(), isSubBorrowChain(), isVectorReductionOp(), memVTFromAggregate(), llvm::LegalizeMutations::moreElementsToNextPow2(), llvm::DenseMap< unsigned, unsigned >::shrink_and_clear(), llvm::SmallDenseMap< unsigned, unsigned, N >::shrink_and_clear(), SimplifyShift(), TypeSizeToSizeIndex(), llvm::InstCombiner::visitCallInst(), llvm::WebAssemblyTargetLowering::WebAssemblyTargetLowering(), and llvm::LegalizeMutations::widenScalarOrEltToNextPow2().
|
inline |
Return the floor log base 2 of the specified value, -1 if the value is zero.
(64 bit edition.)
Definition at line 591 of file MathExtras.h.
References countLeadingZeros().
Referenced by llvm::Align::Align(), combineMul(), combineMulSpecial(), llvm::BPFInstrInfo::copyPhysReg(), llvm::FastISel::fastEmit_ri_(), llvm::HexagonMCELFStreamer::HexagonMCEmitCommonSymbol(), llvm::AArch64TargetLowering::isLegalAddressingMode(), llvm::AArch64LegalizerInfo::legalizeIntrinsic(), LowerCONCAT_VECTORSvXi1(), matchRotateSub(), mayTailCallThisCC(), llvm::AArch64InstrInfo::optimizeCondBranch(), llvm::MipsAsmPrinter::PrintAsmOperand(), rewriteP2Align(), SaturatingMultiply(), and llvm::FastISel::selectBinaryOp().
|
inline |
Return the ceil log base 2 of the specified value, 64 if the value is zero.
(64 bit edition.)
Definition at line 604 of file MathExtras.h.
References countLeadingZeros().
Referenced by buildFrameType(), llvm::ArrayRecycler< T, Align >::Capacity::get(), LowerAndToBT(), LowerToTLSExecModel(), and llvm::raw_ostream::operator<<().
| void llvm::logAllUnhandledErrors | ( | Error | E, |
| raw_ostream & | OS, | ||
| Twine | ErrorBanner = {} |
||
| ) |
Log all errors (if any) in E to OS.
If there are any errors, ErrorBanner will be printed before the first one is logged. A newline will be printed after each error.
This function is compatible with the helpers from Support/WithColor.h. You can pass any of them as the OS. Please consider using them instead of including 'error: ' in the ErrorBanner.
This is useful in the base level of your program to allow clean termination (allowing clean deallocation of resources, etc.), while reporting error information to the user.
Definition at line 61 of file Error.cpp.
Referenced by llvm::RuntimeDyldCheckerImpl::checkAllRulesInBuffer(), doImportingForModule(), emitNullTerminatedSymbolName(), llvm::MCJIT::generateCodeForModule(), llvm::LTOModule::isThinLTO(), isThumbFunc(), LLVMGetSymbolAddress(), LLVMGetSymbolName(), LLVMMoveToContainingSection(), llvm::RuntimeDyldCOFF::loadObject(), llvm::RuntimeDyldMachO::loadObject(), llvm::RuntimeDyldELF::loadObject(), llvm::RuntimeDyldELF::processRelocationRef(), llvm::FileCheck::readCheckFile(), and llvm::OrcCBindingsStack::UnregisterJITEventListener().
| const X86MemoryFoldTableEntry * llvm::lookupFoldTable | ( | unsigned | RegOp, |
| unsigned | OpNum | ||
| ) |
Definition at line 5585 of file X86InstrFoldTables.cpp.
References array_pod_sort(), assert(), llvm::X86MemoryFoldTableEntry::DstOp, llvm::X86MemoryFoldTableEntry::Flags, llvm::X86MemoryFoldTableEntry::KeyOp, lookupFoldTableImpl(), makeArrayRef(), TB_FOLDED_BCAST, TB_FOLDED_LOAD, TB_FOLDED_STORE, TB_INDEX_0, TB_INDEX_1, TB_INDEX_2, TB_INDEX_3, TB_INDEX_4, and TB_NO_REVERSE.
Referenced by llvm::X86InstrInfo::foldMemoryOperandImpl().
| const X86MemoryFoldTableEntry * llvm::lookupTwoAddrFoldTable | ( | unsigned | RegOp | ) |
Definition at line 5580 of file X86InstrFoldTables.cpp.
References lookupFoldTableImpl().
Referenced by llvm::X86InstrInfo::foldMemoryOperandImpl().
| const X86MemoryFoldTableEntry * llvm::lookupUnfoldTable | ( | unsigned | MemOp | ) |
Definition at line 5666 of file X86InstrFoldTables.cpp.
References I, and lower_bound().
Referenced by llvm::X86InstrInfo::getOpcodeAfterMemoryUnfold(), and llvm::X86InstrInfo::unfoldMemoryOperand().
| bool llvm::LoopRotation | ( | Loop * | L, |
| LoopInfo * | LI, | ||
| const TargetTransformInfo * | TTI, | ||
| AssumptionCache * | AC, | ||
| DominatorTree * | DT, | ||
| ScalarEvolution * | SE, | ||
| MemorySSAUpdater * | MSSAU, | ||
| const SimplifyQuery & | SQ, | ||
| bool | RotationOnly = true, |
||
| unsigned | Threshold = unsigned(-1), |
||
| bool | IsUtilMode = true |
||
| ) |
Convert a loop into a loop with bottom test.
The utility to convert a loop into a loop with bottom test.
It may perform loop latch simplication as well if the flag RotationOnly is false. The flag Threshold represents the size threshold of the loop header. If the loop header's size exceeds the threshold, the loop rotation will give up. The flag IsUtilMode controls the heuristic used in the LoopRotation. If it is true, the profitability heuristic will be ignored.
Definition at line 664 of file LoopRotationUtils.cpp.
References llvm::MemorySSAUpdater::getMemorySSA(), Threshold, VerifyMemorySSA, and llvm::MemorySSA::verifyMemorySSA().
Referenced by llvm::LoopRotatePass::run().
|
static |
Definition at line 471 of file APFloat.cpp.
References llvm::APFloatBase::integerPartWidth, lfExactlyHalf, lfExactlyZero, lfLessThanHalf, lfMoreThanHalf, llvm::APInt::tcExtractBit(), and llvm::APInt::tcLSB().
Referenced by llvm::detail::IEEEFloat::convert(), llvm::detail::IEEEFloat::convertFromZeroExtendedInteger(), llvm::detail::IEEEFloat::convertToHexString(), llvm::detail::IEEEFloat::convertToInteger(), and shiftRight().
| auto llvm::lower_bound | ( | R && | Range, |
| T && | Value | ||
| ) | -> decltype(adl_begin(Range)) |
Provide wrappers to std::lower_bound which take ranges instead of having to pass begin/end explicitly.
Definition at line 1278 of file STLExtras.h.
References adl_begin(), adl_end(), and lower_bound().
Referenced by llvm::MachO::detail::addEntry(), llvm::MachO::InterfaceFile::addParentUmbrella(), llvm::MachO::InterfaceFile::addUUID(), buildMultiplyTree(), llvm::LiveIntervals::checkRegMaskInterference(), CompareMBBNumbers(), llvm::orc::JITDylib::dump(), Find(), llvm::SourceMgr::FindBufferContainingLoc(), llvm::LiveRange::findIndexesLiveAt(), llvm::MCRegisterInfo::getDwarfRegNum(), llvm::InstrProfSymtab::getFuncName(), llvm::InstrProfSymtab::getFunction(), llvm::BlockFrequencyInfoImplBase::LoopData::getHeaderIndex(), getIntrinsicWithChain(), getIntrinsicWithoutChain(), llvm::BinaryItemStream< T, Traits >::getLength(), llvm::MCRegisterInfo::getLLVMRegNum(), getNumAllocatableRegsForConstraints(), getOffsetFromIndices(), llvm::TargetLibraryInfoImpl::getScalarizedFunction(), llvm::MCSection::getSubsectionInsertionPoint(), llvm::TargetLibraryInfoImpl::getVectorizedFunction(), llvm::TargetLibraryInfoImpl::getWidestVF(), llvm::MCSubtargetInfo::isCPUStringValid(), isDebug(), llvm::TargetLibraryInfoImpl::isFunctionVectorizable(), IsInRanges(), llvm::SMSchedule::isValidSchedule(), Lookup(), lookupFoldTableImpl(), LookupNEONLdSt(), lookupUnfoldTable(), lowerV8I16GeneralSingleInputShuffle(), llvm::MCInstPrinter::matchAliasPatterns(), llvm::DataLayout::operator==(), performCustomAdjustments(), promoteSingleBlockAlloca(), llvm::BitcodeReaderValueList::resolveConstantForwardRefs(), llvm::JumpThreadingPass::SimplifyPartiallyRedundantLoad(), and llvm::LiveIntervals::HMEditor::updateAllRanges().
| auto llvm::lower_bound | ( | R && | Range, |
| T && | Value, | ||
| Compare | C | ||
| ) | -> decltype(adl_begin(Range)) |
Definition at line 1284 of file STLExtras.h.
References adl_begin(), adl_end(), and C.
Referenced by lower_bound().
| void llvm::LowerARMMachineInstrToMCInst | ( | const MachineInstr * | MI, |
| MCInst & | OutMI, | ||
| ARMAsmPrinter & | AP | ||
| ) |
Definition at line 123 of file ARMMCInstLower.cpp.
References llvm::MCInst::addOperand(), llvm::ARMCC::AL, llvm::MCContext::createTempSymbol(), llvm::MachineInstr::emitError(), llvm::AsmPrinter::emitNops(), llvm::AsmPrinter::EmitToStreamer(), llvm::MCOperand::getImm(), llvm::MachineFunction::getInfo(), llvm::MachineInstr::getOpcode(), llvm::MachineBasicBlock::getParent(), llvm::MachineInstr::getParent(), llvm::ARM_AM::getSOImmVal(), llvm::MCOperand::isImm(), isThumbFunction(), llvm::ARMAsmPrinter::lowerOperand(), MI, llvm::MachineInstr::operands(), llvm::AsmPrinter::OutContext, llvm::AsmPrinter::OutStreamer, llvm::AsmPrinter::recordSled(), llvm::MCOperand::setImm(), and llvm::MCInst::setOpcode().
Referenced by llvm::ARMAsmPrinter::EmitInstruction().
Lowers llvm.dbg.declare intrinsics into appropriate set of llvm.dbg.value intrinsics.
LowerDbgDeclare - Lowers llvm.dbg.declare intrinsics into appropriate set of llvm.dbg.value intrinsics.
Definition at line 1391 of file Local.cpp.
References any_of(), llvm::DIExpression::append(), ConvertDebugDeclareToDebugValue(), llvm::SmallVectorBase::empty(), llvm::Instruction::eraseFromParent(), llvm::DbgDeclareInst::getAddress(), getDebugValueLoc(), llvm::DbgVariableIntrinsic::getExpression(), llvm::GlobalValue::getParent(), llvm::DbgVariableIntrinsic::getVariable(), I, isArray(), isStructure(), llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SmallVectorTemplateBase< T >::push_back(), SI, llvm::Value::users(), and llvm::Value::uses().
Referenced by llvm::coro::buildCoroutineFrame(), combineInstructionsOverFunction(), and getKnownAlignment().
| Value * llvm::lowerObjectSizeCall | ( | IntrinsicInst * | ObjectSize, |
| const DataLayout & | DL, | ||
| const TargetLibraryInfo * | TLI, | ||
| bool | MustSucceed | ||
| ) |
Try to turn a call to @llvm.objectsize into an integer value of the given Type.
Returns null on failure. If MustSucceed is true, this function will not return null, and may return conservative values governed by the second argument of the call to objectsize.
Definition at line 502 of file MemoryBuiltins.cpp.
References llvm::AMDGPU::HSAMD::Kernel::Arg::Key::Align, alignTo(), assert(), llvm::ObjectSizeOffsetEvaluator::compute(), llvm::IRBuilder< T, Inserter >::CreateICmpULT(), llvm::IRBuilder< T, Inserter >::CreateSelect(), llvm::IRBuilder< T, Inserter >::CreateSub(), llvm::IRBuilder< T, Inserter >::CreateZExtOrTrunc(), llvm::ObjectSizeOpts::EvalMode, llvm::ObjectSizeOpts::Exact, llvm::ConstantInt::get(), llvm::CallBase::getArgOperand(), llvm::Function::getContext(), llvm::Instruction::getFunction(), llvm::IntrinsicInst::getIntrinsicID(), getObjectSize(), llvm::Value::getType(), llvm::APInt::getZExtValue(), isUIntN(), isZero(), llvm::ObjectSizeOpts::Max, llvm::ObjectSizeOpts::Min, llvm::ObjectSizeOpts::NullIsUnknownSize, llvm::IRBuilderBase::SetInsertPoint(), Size, STATISTIC(), and llvm::ObjectSizeOffsetEvaluator::unknown().
Referenced by lowerConstantIntrinsics(), llvm::InstCombiner::visitAllocSite(), and llvm::InstCombiner::visitCallInst().
| void llvm::LowerPPCMachineInstrToMCInst | ( | const MachineInstr * | MI, |
| MCInst & | OutMI, | ||
| AsmPrinter & | AP, | ||
| bool | IsDarwin | ||
| ) |
Definition at line 150 of file PPCMCInstLower.cpp.
References llvm::MCInst::addOperand(), llvm::numbers::e, llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), LowerPPCMachineOperandToMCOperand(), and llvm::MCInst::setOpcode().
| bool llvm::LowerPPCMachineOperandToMCOperand | ( | const MachineOperand & | MO, |
| MCOperand & | OutMO, | ||
| AsmPrinter & | AP, | ||
| bool | IsDarwin | ||
| ) |
Definition at line 162 of file PPCMCInstLower.cpp.
References assert(), llvm::MCSymbolRefExpr::create(), llvm::MCOperand::createExpr(), llvm::MCOperand::createImm(), llvm::MCOperand::createReg(), llvm::MachineOperand::getBlockAddress(), llvm::AsmPrinter::GetBlockAddressSymbol(), llvm::AsmPrinter::GetCPISymbol(), llvm::MachineOperand::getImm(), llvm::MachineOperand::getIndex(), llvm::AsmPrinter::GetJTISymbol(), llvm::MachineOperand::getMBB(), llvm::MachineOperand::getMCSymbol(), llvm::MachineOperand::getReg(), llvm::MachineOperand::getSubReg(), llvm::MachineBasicBlock::getSymbol(), GetSymbolFromOperand(), GetSymbolRef(), llvm::MachineOperand::getType(), llvm_unreachable, llvm::MachineOperand::MO_BlockAddress, llvm::MachineOperand::MO_ConstantPoolIndex, llvm::MachineOperand::MO_ExternalSymbol, llvm::MachineOperand::MO_GlobalAddress, llvm::MachineOperand::MO_Immediate, llvm::MachineOperand::MO_JumpTableIndex, llvm::MachineOperand::MO_MachineBasicBlock, llvm::MachineOperand::MO_MCSymbol, llvm::MachineOperand::MO_Register, llvm::MachineOperand::MO_RegisterMask, and llvm::AsmPrinter::OutContext.
Referenced by LowerPPCMachineInstrToMCInst().
| void llvm::LowerRISCVMachineInstrToMCInst | ( | const MachineInstr * | MI, |
| MCInst & | OutMI, | ||
| const AsmPrinter & | AP | ||
| ) |
Definition at line 128 of file RISCVMCInstLower.cpp.
References llvm::MCInst::addOperand(), llvm::MachineInstr::getOpcode(), LowerRISCVMachineOperandToMCOperand(), llvm::MachineInstr::operands(), and llvm::MCInst::setOpcode().
| bool llvm::LowerRISCVMachineOperandToMCOperand | ( | const MachineOperand & | MO, |
| MCOperand & | MCOp, | ||
| const AsmPrinter & | AP | ||
| ) |
Definition at line 89 of file RISCVMCInstLower.cpp.
References llvm::MCOperand::createImm(), llvm::MCOperand::createReg(), llvm::MachineOperand::getBlockAddress(), llvm::AsmPrinter::GetBlockAddressSymbol(), llvm::AsmPrinter::GetCPISymbol(), llvm::AsmPrinter::GetExternalSymbolSymbol(), llvm::MachineOperand::getGlobal(), llvm::MachineOperand::getImm(), llvm::MachineOperand::getIndex(), llvm::MachineOperand::getMBB(), llvm::MachineOperand::getReg(), llvm::AsmPrinter::getSymbol(), llvm::MachineBasicBlock::getSymbol(), llvm::MachineOperand::getSymbolName(), llvm::MachineOperand::getType(), llvm::MachineOperand::isImplicit(), lowerSymbolOperand(), llvm::MachineOperand::MO_BlockAddress, llvm::MachineOperand::MO_ConstantPoolIndex, llvm::MachineOperand::MO_ExternalSymbol, llvm::MachineOperand::MO_GlobalAddress, llvm::MachineOperand::MO_Immediate, llvm::MachineOperand::MO_MachineBasicBlock, llvm::MachineOperand::MO_Register, llvm::MachineOperand::MO_RegisterMask, and report_fatal_error().
Referenced by LowerRISCVMachineInstrToMCInst().
| void llvm::LowerSparcMachineInstrToMCInst | ( | const MachineInstr * | MI, |
| MCInst & | OutMI, | ||
| AsmPrinter & | AP | ||
| ) |
Definition at line 93 of file SparcMCInstLower.cpp.
References llvm::MCInst::addOperand(), llvm::numbers::e, llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MCOperand::isValid(), LowerOperand(), and llvm::MCInst::setOpcode().
Referenced by EmitHiLo().
| void llvm::LowerVEMachineInstrToMCInst | ( | const MachineInstr * | MI, |
| MCInst & | OutMI, | ||
| AsmPrinter & | AP | ||
| ) |
Definition at line 58 of file VEMCInstLower.cpp.
References llvm::MCInst::addOperand(), llvm::numbers::e, llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MCOperand::isValid(), LowerOperand(), and llvm::MCInst::setOpcode().
|
inlinestatic |
Definition at line 161 of file Sparc.h.
References LO10().
Referenced by replaceFI(), and llvm::SparcFrameLowering::SparcFrameLowering().
| const MachineInstr * llvm::machineFunctionIsIllegal | ( | const MachineFunction & | MF | ) |
Checks that MIR is fully legal, returns an illegal instruction if it's not, nullptr otherwise.
Definition at line 743 of file LegalizerInfo.cpp.
References llvm::TargetSubtargetInfo::getLegalizerInfo(), llvm::MachineFunction::getRegInfo(), llvm::MachineFunction::getSubtarget(), isPreISelGenericOpcode(), MI, and MRI.
Referenced by llvm::LegalizerInfo::isLegal(), llvm::InstructionSelect::runOnMachineFunction(), and llvm::RegBankSelect::runOnMachineFunction().
| StringRef llvm::machineToStr | ( | COFF::MachineTypes | MT | ) |
Definition at line 31 of file WindowsMachineFlag.cpp.
References llvm::COFF::IMAGE_FILE_MACHINE_AMD64, llvm::COFF::IMAGE_FILE_MACHINE_ARM64, llvm::COFF::IMAGE_FILE_MACHINE_ARMNT, llvm::COFF::IMAGE_FILE_MACHINE_I386, and llvm_unreachable.
Make a 64-bit integer from a high / low pair of 32-bit integers.
Definition at line 330 of file MathExtras.h.
Referenced by KnuthDiv(), and readInstruction64().
| iterator_range<early_inc_iterator_impl<detail::IterOfRange<RangeT> > > llvm::make_early_inc_range | ( | RangeT && | Range | ) |
Make a range that does early increment to allow mutation of the underlying range without disrupting iteration.
The underlying iterator will be incremented immediately after it is dereferenced, allowing deletion of the current node or insertion of nodes to not disrupt iteration provided they do not invalidate the next iterator – the current iterator can be invalidated.
This requires a very exact pattern of use that is only really suitable to range based for loops and other range algorithms that explicitly guarantee to dereference exactly once each element, and to increment exactly once each element.
Definition at line 512 of file STLExtras.h.
References all_of(), any_of(), llvm::sys::path::begin(), llvm::sys::path::end(), make_range(), and P.
Referenced by moveLCSSAPhis().
| Error llvm::make_error | ( | ArgTs &&... | Args | ) |
Make a Error instance representing failure using the given error info type.
Definition at line 330 of file Error.h.
References llvm::AMDGPU::HSAMD::Kernel::Key::Args, and Error.
|
inline |
Definition at line 61 of file SampleProf.h.
References sampleprof_category().
|
inline |
Definition at line 260 of file BitcodeReader.h.
References BitcodeErrorCategory().
Referenced by llvm::xray::Profile::addBlock(), advanceToMetaBlock(), llvm::xray::Graph< VertexAttribute, EdgeAttribute, VI >::at(), llvm::xray::LogBuilderConsumer::consume(), llvm::xray::PipelineConsumer::consume(), llvm::InstrProfError::convertToErrorCode(), llvm::remarks::createRemarkParser(), llvm::remarks::createRemarkParserFromMeta(), error(), llvm::ErrorOr< T >::ErrorOr(), llvm::xray::Profile::expandPath(), llvm::NewArchiveMember::getFile(), getMemBufferCopyImpl(), getOpenFileImpl(), getReadWriteFile(), isBlock(), loadObj(), llvm::xray::loadTrace(), llvm::xray::loadTraceFile(), llvm::vfs::RedirectingFileSystem::lookupPath(), llvm::remarks::magicToFormat(), malformedRecord(), llvm::vfs::OverlayFileSystem::openFileForRead(), llvm::vfs::RedirectingFileSystem::openFileForRead(), llvm::remarks::ParsedStringTable::operator[](), parseBitcodeFileImpl(), parseBlock(), llvm::remarks::BitstreamParserHelper::parseBlockInfoBlock(), llvm::remarks::parseFormat(), llvm::remarks::BitstreamRemarkParser::parseMeta(), llvm::remarks::BitstreamRemarkParser::parseRemark(), llvm::remarks::YAMLRemarkParser::parseRemark(), processRemarkVersion(), processStrTab(), llvm::xray::FileBasedRecordProducer::produce(), llvm::msgpack::Reader::read(), llvm::xray::readBinaryFormatHeader(), llvm::msgpack::Reader::readExt(), llvm::msgpack::Reader::readInt(), llvm::msgpack::Reader::readLength(), llvm::msgpack::Reader::readRaw(), llvm::msgpack::Reader::readUInt(), llvm::RemarkStreamer::setFilter(), llvm::vfs::OverlayFileSystem::status(), unknownRecord(), validateMagicNumber(), llvm::xray::BlockVerifier::verify(), and llvm::xray::RecordInitializer::visit().
|
inline |
Definition at line 297 of file InstrProf.h.
References instrprof_category().
| fallible_iterator<Underlying> llvm::make_fallible_end | ( | Underlying | E | ) |
Convenience wrapper to make a fallible_iterator end value from an instance of an underlying iterator.
Definition at line 230 of file fallible_iterator.h.
References llvm::fallible_iterator< Underlying >::end().
| fallible_iterator<Underlying> llvm::make_fallible_itr | ( | Underlying | I, |
| Error & | Err | ||
| ) |
Convenience wrapper to make a fallible_iterator value from an instance of an underlying iterator and an Error reference.
Definition at line 223 of file fallible_iterator.h.
| iterator_range<fallible_iterator<Underlying> > llvm::make_fallible_range | ( | Underlying | I, |
| Underlying | E, | ||
| Error & | Err | ||
| ) |
Definition at line 236 of file fallible_iterator.h.
| iterator_range<filter_iterator<detail::IterOfRange<RangeT>, PredicateT> > llvm::make_filter_range | ( | RangeT && | Range, |
| PredicateT | Pred | ||
| ) |
Convenience function that takes a range of elements and a predicate, and return a new filter_iterator range.
FIXME: Currently if RangeT && is a rvalue reference to a temporary, the lifetime of that temporary is not kept by the returned range object, and the temporary is going to be dropped on the floor after the make_iterator_range full expression that contains this function call.
Definition at line 426 of file STLExtras.h.
References llvm::sys::path::begin(), llvm::sys::path::end(), and make_range().
Referenced by alwaysAvailable(), llvm::LoopVectorizationCostModel::blockNeedsPredication(), llvm::LoopBodyTraits::child_begin(), llvm::CFGViewSuccessors< true >::child_begin(), llvm::CFGViewPredecessors< true >::child_begin(), llvm::LoopBodyTraits::child_end(), llvm::CFGViewSuccessors< true >::child_end(), llvm::CFGViewPredecessors< true >::child_end(), llvm::MachO::InterfaceFile::exports(), llvm::RandomIRBuilder::findOrCreateSource(), llvm::RandomIRBuilder::findPointer(), llvm::InjectorIRStrategy::getDefaultOps(), getUniqueExitBlocksHelper(), llvm::BasicBlock::instructionsWithoutDebug(), phys_regs_and_masks(), llvm::MachO::Symbol::targets(), llvm::MachO::InterfaceFile::targets(), and llvm::MachO::InterfaceFile::undefineds().
| iterator_range<pointee_iterator<WrappedIteratorT> > llvm::make_pointee_range | ( | RangeT && | Range | ) |
Definition at line 302 of file iterator.h.
References llvm::sys::path::begin(), llvm::sys::path::end(), and make_range().
Referenced by llvm::MachineInstr::cloneMergedMemRefs(), and hasIdenticalMMOs().
| iterator_range<pointer_iterator<WrappedIteratorT> > llvm::make_pointer_range | ( | RangeT && | Range | ) |
Definition at line 330 of file iterator.h.
References llvm::sys::path::begin(), llvm::sys::path::end(), make_range(), and T1.
Referenced by llvm::IRMutationStrategy::mutate().
| iterator_range<T> llvm::make_range | ( | T | x, |
| T | y | ||
| ) |
Convenience function for iterating over sub-ranges.
This provides a bit of syntactic sugar to make using sub-ranges in for loops a bit easier. Analogous to std::make_pair().
Definition at line 54 of file iterator_range.h.
Referenced by llvm::jitlink::LinkGraph::absolute_symbols(), addVCallToSet(), llvm::ScheduleDAGInstrs::addVRegDefDeps(), llvm::ScheduleDAGInstrs::addVRegUseDeps(), llvm::Module::aliases(), llvm::SelectionDAG::allnodes(), llvm::mca::Scheduler::analyzeDataDependencies(), llvm::BlockFrequencyInfoImplBase::analyzeIrreducible(), llvm::codeview::InlineSiteSym::annotations(), llvm::AMDGPURegisterBankInfo::applyMappingImpl(), llvm::CallBase::arg_operands(), llvm::CallSiteBase< Function, BasicBlock, Value, User, Use, Instruction, CallInst, InvokeInst, CallBrInst, User::op_iterator >::args(), llvm::Function::args(), llvm::CallBase::args(), llvm::DWARFDie::attributes(), llvm::object::COFFObjectFile::base_relocs(), llvm::WebAssemblyException::blocks(), llvm::LoopBase< BasicBlock, Loop >::blocks(), llvm::GCOVFunction::blocks(), llvm::MemoryPhi::blocks(), llvm::jitlink::Section::blocks(), llvm::jitlink::LinkGraph::blocks(), llvm::PHINode::blocks(), breadth_first(), buildClonedLoopBlocks(), llvm::CallBase::bundle_op_infos(), llvm::HexagonMCInstrInfo::bundleInstructions(), llvm::StringRef::bytes(), llvm::LoopVectorizationCostModel::calculateRegisterUsage(), llvm::StatepointBase< Function, Instruction, Value, CallBase >::call_args(), callingConvSupported(), llvm::LazyCallGraph::EdgeSequence::calls(), canRenameComdat(), canSplitCallSite(), llvm::SwitchInst::cases(), NoAutoPaddingScope::changeAndComment(), llvm::SchedBoundary::checkHazard(), children(), llvm::object::Archive::children(), llvm::DWARFDie::children(), llvm::DIE::children(), children_edges(), clearKillFlags(), llvm::RegionBase< RegionTraits< Function > >::clearNodeCache(), CompareMBBNumbers(), llvm::DebugInfoFinder::compile_units(), llvm::ScheduleDAGMILive::computeCyclicCriticalPath(), computeLiveIns(), const_mi_bundle_ops(), llvm::StackMapParser< Endianness >::constants(), containsIrreducibleCFG(), ContainsReg(), llvm::GEPOperator::countNonConstantIndices(), createBreakFalseDeps(), createCodeGenPreparePass(), llvm::AbstractDependenceGraphBuilder< DataDependenceGraph >::createPiBlocks(), CriticalPathStep(), llvm::mca::EntryStage::cycleEnd(), llvm::OnDiskIterableChainedHashTable< Info >::data(), llvm::CallSiteBase< Function, BasicBlock, Value, User, Use, Instruction, CallInst, InvokeInst, CallBrInst, User::op_iterator >::data_ops(), llvm::CallBase::data_ops(), llvm::DataDependenceGraph::DataDependenceGraph(), llvm::Module::debug_compile_units(), llvm::object::COFFObjectFile::debug_directories(), llvm::MachineRegisterInfo::def_bundles(), def_chain(), llvm::MachineRegisterInfo::def_instructions(), llvm::MachineRegisterInfo::def_operands(), llvm::jitlink::LinkGraph::defined_symbols(), llvm::MachineInstr::defs(), llvm::object::COFFObjectFile::delay_import_directories(), llvm::StatepointBase< Function, Instruction, Value, CallBase >::deopt_operands(), depth_first(), depth_first_ext(), DoInitialMatch(), drop_begin(), llvm::GCOVBlock::dsts(), llvm::vfs::RedirectingFileSystem::dumpEntry(), llvm::jitlink::Block::edges(), llvm::RegionBase< RegionTraits< Function > >::elements(), llvm::SystemZHazardRecognizer::emitInstruction(), llvm::EHStreamer::emitTypeInfos(), llvm::HexagonPacketizerList::endPacket(), llvm::Registry< T >::entries(), llvm::AppleAcceleratorTable::equal_range(), llvm::DWARFDebugNames::NameIndex::equal_range(), llvm::DWARFDebugNames::equal_range(), llvm::VPWidenRecipe::execute(), llvm::AMDGPURegisterBankInfo::executeInWaterfallLoop(), llvm::MachineInstr::explicit_operands(), llvm::MachineInstr::explicit_uses(), llvm::object::COFFObjectFile::export_directories(), llvm::object::MachOObjectFile::external_relocations(), llvm::jitlink::LinkGraph::external_symbols(), llvm::opt::ArgList::filtered(), llvm::opt::ArgList::filtered_reverse(), findIrreducibleHeaders(), findProfitablePHIs(), llvm::ScheduleDAGInstrs::fixupKills(), foldUnusualPatterns(), llvm::StackSafetyInfo::FunctionInfo::FunctionInfo(), llvm::StackMapParser< Endianness >::functions(), llvm::Module::functions(), llvm::StatepointBase< Function, Instruction, Value, CallBase >::gc_args(), llvm::StatepointBase< Function, Instruction, Value, CallBase >::gc_transition_args(), llvm::GraphDiff< llvm::BasicBlock *, IsPostDom >::getAddedChildren(), llvm::IRPosition::getAttrs(), llvm::ScalarEvolution::getBlockDisposition(), llvm::orc::getConstructors(), llvm::coverage::CoverageMapping::getCoveredFunctions(), llvm::orc::getDestructors(), llvm::object::ELFObjectFile< ELFT >::getDynamicSymbolIterators(), llvm::RegionBase< RegionTraits< Function > >::getEnteringBlock(), llvm::RegionBase< RegionTraits< Function > >::getExitingBlock(), llvm::RegionBase< RegionTraits< Function > >::getExpandedRegion(), llvm::InterleavedAccessInfo::getInterleaveGroups(), getLastNonPseudo(), llvm::ScalarEvolution::getLoopDisposition(), llvm::RegionInfoBase< RegionTraits< Function > >::getMaxRegionExit(), llvm::object::MinidumpFile::getMemoryInfoList(), llvm::DiagnosticInfoOptimizationBase::getMsg(), getNames(), llvm::RegionBase< RegionTraits< Function > >::getNameStr(), llvm::rdf::Liveness::getNearestAliasedRef(), llvm::DwarfUnit::getParentContextString(), llvm::TargetRegisterClass::getRegisters(), llvm::pdb::SymbolStream::getSymbols(), llvm::slpvectorizer::BoUpSLP::getTreeCost(), getUnderlyingObjects(), getVFSEntries(), llvm::RegisterBankInfo::OperandsMapper::getVRegs(), llvm::DebugInfoFinder::global_variables(), llvm::Module::globals(), handleNormalInst(), llvm::CatchSwitchInst::handlers(), hasUseAfterLoop(), llvm::Module::ifuncs(), llvm::MachineInstr::implicit_operands(), llvm::object::COFFObjectFile::import_directories(), llvm::object::ImportDirectoryEntryRef::imported_symbols(), llvm::object::DelayImportDirectoryEntryRef::imported_symbols(), incorporateNewSCCRange(), llvm::GetElementPtrInst::indices(), llvm::ExtractValueInst::indices(), llvm::InsertValueInst::indices(), INITIALIZE_PASS(), llvm::ScheduleDAGInstrs::initSUnits(), InlineFunction(), llvm::LazyCallGraph::RefSCC::insertIncomingRefEdge(), inverse_children(), inverse_depth_first(), inverse_depth_first_ext(), inverse_nodes(), inverse_post_order(), inverse_post_order_ext(), isCallInstruction(), isEFLAGSLive(), isEmptyFunction(), llvm::DenseMapInfo< VTableSlotSummary >::isEqual(), isFullDominator(), isFullPostDominator(), isInRage(), llvm::AAIsDead::isLiveInstSet(), isNopCopy(), isNoWrapAddRec(), llvm::MachineRegisterInfo::isPhysRegModified(), isPseudoCallIndirect(), isSCCHeader(), isSupportedGuardInstruction(), llvm::StringMap< uint64_t >::keys(), llvm::OnDiskIterableChainedHashTable< Info >::keys(), llvm::MachineBasicBlock::liveins(), llvm::MachineBasicBlock::liveins_dbg(), llvm::StackMapParser< Endianness >::RecordAccessor::liveouts(), llvm::object::MachOObjectFile::load_commands(), llvm::StackMapParser< Endianness >::RecordAccessor::locations(), llvm::object::ImportDirectoryEntryRef::lookup_table_symbols(), make_early_inc_range(), make_filter_range(), make_pointee_range(), make_pointer_range(), map_range(), markTails(), llvm::Value::materialized_users(), llvm::Value::materialized_uses(), llvm::CFLAndersAAResult::FunctionInfo::mayAlias(), llvm::BlockFrequencyInfoImplBase::LoopData::members(), mi_bundle_ops(), llvm::object::IRObjectFile::modules(), llvm::SIInstrInfo::moveToVALU(), moveUp(), llvm::Module::named_metadata(), nodes(), llvm::object::TapiUniversal::objects(), llvm::object::MachOUniversalBinary::objects(), llvm::SDNode::op_values(), llvm::User::operand_values(), llvm::SCEVNAryExpr::operands(), llvm::MCInstrDesc::operands(), llvm::MachineInstr::operands(), llvm::NamedMDNode::operands(), AllocaSlices::partition_iterator::operator*(), operator<<(), llvm::orc::operator<<(), optimized_def_chain(), pathHasTraversal(), llvm::MachineBasicBlock::phis(), possiblyDemandedEltsInMask(), post_order(), post_order_ext(), llvm::LazyCallGraph::postorder_ref_sccs(), llvm::MachineBasicBlock::predecessors(), predictUseListOrder(), llvm::VPWidenRecipe::print(), llvm::LiveRangeUpdater::print(), propagateMetadata(), llvm::MustBeExecutedContextExplorer::range(), rebuildLoopAfterUnswitch(), recomputeLivenessFlags(), llvm::StackMapParser< Endianness >::records(), llvm::MachineRegisterInfo::reg_bundles(), llvm::MachineRegisterInfo::reg_instructions(), llvm::MachineRegisterInfo::reg_nodbg_bundles(), llvm::MachineRegisterInfo::reg_nodbg_instructions(), llvm::MachineRegisterInfo::reg_nodbg_operands(), llvm::MachineRegisterInfo::reg_operands(), llvm::MCRegisterInfo::regclasses(), llvm::TargetRegisterInfo::regclasses(), llvm::object::SectionRef::relocations(), llvm::sys::path::remove_dots(), llvm::LazyCallGraph::RefSCC::removeInternalRefEdge(), llvm::ScheduleDAGTopologicalSort::RemovePred(), llvm::ResourceManager::reserveResources(), reverse(), llvm::AlwaysInlinerPass::run(), llvm::InstructionSelect::runOnMachineFunction(), llvm::MachinePipeliner::runOnMachineFunction(), llvm::DebugInfoFinder::scopes(), llvm::jitlink::LinkGraph::sections(), llvm::BitVector::set_bits(), llvm::SmallBitVector::set_bits(), shouldSplitOnPredicatedArgument(), llvm::LiveIntervals::shrinkToUses(), llvm::GCOVBlock::srcs(), llvm::DebugInfoFinder::subprograms(), llvm::LiveInterval::subranges(), llvm::MCRegisterInfo::subregs(), llvm::MCRegisterInfo::subregs_inclusive(), llvm::pdb::ModuleDebugStreamRef::subsections(), llvm::MachineBasicBlock::successors(), llvm::BranchInst::successors(), llvm::IndirectBrInst::successors(), llvm::MCRegisterInfo::superregs(), llvm::MCRegisterInfo::superregs_inclusive(), llvm::LazyCallGraph::RefSCC::switchInternalEdgeToCall(), llvm::LazyCallGraph::RefSCC::switchInternalEdgeToRef(), llvm::pdb::ModuleDebugStreamRef::symbols(), llvm::object::Archive::symbols(), llvm::MCAssembler::symbols(), llvm::jitlink::Section::symbols(), llvm::TargetRegistry::targets(), llvm::MachineBasicBlock::terminators(), truncateIVUse(), llvm::VPRecipeBuilder::tryToCreateRecipe(), llvm::pdb::TpiStream::types(), llvm::DebugInfoFinder::types(), llvm::AntiDepBreaker::UpdateDbgValues(), updateDefinedRegisters(), llvm::MemorySSAUpdater::updateForClonedBlockIntoPred(), updatePostorderSequenceForEdgeInsertion(), llvm::ScheduleDAGMILive::updatePressureDiffs(), upward_defs(), llvm::MachineRegisterInfo::use_bundles(), llvm::MachineRegisterInfo::use_instructions(), llvm::MachineRegisterInfo::use_nodbg_bundles(), llvm::MachineRegisterInfo::use_nodbg_instructions(), llvm::MachineRegisterInfo::use_nodbg_operands(), llvm::MachineRegisterInfo::use_operands(), llvm::MachineInstr::uses(), llvm::SDNode::uses(), llvm::CoroSuspendRetconInst::value_operands(), llvm::DIEValueList::values(), verifyBlocksInRegion(), verifyRegionRec(), llvm::MachObjectWriter::writeObject(), and llvm::TimerGroup::~TimerGroup().
| iterator_range<T> llvm::make_range | ( | std::pair< T, T > | p | ) |
Definition at line 58 of file iterator_range.h.
| std::reverse_iterator<IteratorTy> llvm::make_reverse_iterator | ( | IteratorTy | It | ) |
Definition at line 273 of file STLExtras.h.
Referenced by llvm::DWARFDie::rbegin(), llvm::DWARFDie::rend(), and reverse().
| LLVM_NODISCARD detail::scope_exit<typename std::decay<Callable>::type> llvm::make_scope_exit | ( | Callable && | F | ) |
Definition at line 58 of file ScopeExit.h.
References F().
Referenced by llvm::AArch64FrameLowering::emitEpilogue(), llvm::AArch64FrameLowering::emitPrologue(), llvm::LoopInfo::erase(), formDedicatedExitBlocks(), getCondFromFCMOV(), llvm::LazyCallGraph::RefSCC::insertIncomingRefEdge(), llvm::LazyCallGraph::RefSCC::insertTrivialCallEdge(), llvm::LazyCallGraph::RefSCC::insertTrivialRefEdge(), llvm::ScalarEvolution::isLoopEntryGuardedByCond(), llvm::LazyCallGraph::RefSCC::removeInternalRefEdge(), llvm::LazyCallGraph::RefSCC::removeOutgoingEdge(), llvm::LazyCallGraph::RefSCC::replaceNodeFunction(), llvm::IRTranslator::runOnMachineFunction(), llvm::LazyCallGraph::RefSCC::switchInternalEdgeToCall(), llvm::LazyCallGraph::RefSCC::switchInternalEdgeToRef(), llvm::LazyCallGraph::RefSCC::switchTrivialInternalEdgeToRef(), and verifySameBranchInstructions().
Construct an ArrayRef from a single element.
Definition at line 460 of file ArrayRef.h.
Referenced by allocateSGPR32InputImpl(), allocateVGPR32Input(), llvm::APInt::APInt(), appendToGlobalArray(), llvm::VarDefInit::args(), llvm::slpvectorizer::BoUpSLP::bestOrder(), buildCallOperands(), buildClonedLoops(), BuildSubAggregate(), CC_RISCV_FastCC(), CC_X86_64_VectorCallGetGPRs(), CC_X86_VectorCallGetSSEs(), CollectOpsToWiden(), CombineBaseUpdate(), combineTargetShuffle(), CombineVLDDUP(), llvm::codeview::DebugFrameDataSubsection::commit(), llvm::codeview::DebugSymbolRVASubsection::commit(), llvm::pdb::GSIHashStreamBuilder::commit(), llvm::pdb::DbiStreamBuilder::commit(), llvm::codeview::DebugChecksumsSubsection::commit(), llvm::codeview::DebugInlineeLinesSubsection::commit(), llvm::codeview::DebugLinesSubsection::commit(), concatSubVector(), ConstantFoldGetElementPtr(), ConstantFoldLoadFromConstPtr(), llvm::detail::IEEEFloat::convertFromZeroExtendedInteger(), llvm::object::convertUTF16LEToUTF8String(), createCast(), llvm::Instruction::dropUnknownNonDebugMetadata(), dwarfCCToCodeView(), llvm::object::ELFFile< ELFT >::dynamicEntries(), llvm::StringRef::edit_distance(), llvm::StructType::elements(), llvm::MCDwarfLineTableHeader::Emit(), llvm::BitstreamWriter::emitBlob(), llvm::BitstreamWriter::EmitRecord(), llvm::BitstreamWriter::EmitRecordWithAbbrev(), llvm::BitstreamWriter::EmitRecordWithArray(), llvm::BitstreamWriter::EmitRecordWithBlob(), llvm::ARMSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::codeview::ContinuationRecordBuilder::end(), llvm::ARM::WinEH::ExceptionDataRecord::EpilogueScopes(), llvm::DIExpression::extractAddressClass(), llvm::APInt::extractBits(), llvm::MD5::final(), llvm::pdb::DbiStreamBuilder::finalizeMsfLayout(), FindInsertedValue(), findMatchingInlineAsmOperand(), findTargetSubtable(), FunctionNumber(), GenerateTBL(), llvm::fuzzerop::gepDescriptor(), llvm::PredIteratorCache::get(), llvm::ConstantDataArray::get(), get64BitArgumentGPRs(), get64BitArgumentXMMs(), getAllSGPR128(), getAllSGPRs(), llvm::DagInit::getArgNames(), llvm::DagInit::getArgs(), llvm::DWARFFormValue::getAsBlock(), getBufferOffsetForMMO(), getBuildVectorSplat(), llvm::DebugLocStream::getBytes(), llvm::MipsABIInfo::GetByValArgRegs(), llvm::codeview::getCallingConventions(), llvm::RecordRecTy::getClasses(), llvm::codeview::getClassOptionNames(), llvm::DWARFUnitIndex::getColumnKinds(), getCombinerObjective(), llvm::DebugLocStream::getComments(), llvm::codeview::getCompileSym2FlagNames(), llvm::codeview::getCompileSym3FlagNames(), llvm::CondOpInit::getConds(), llvm::SelectionDAG::getCopyFromReg(), llvm::SelectionDAG::getCopyToReg(), llvm::codeview::getCPUTypeNames(), getDIEStringAttr(), llvm::object::MachOObjectFile::getDyldInfoBindOpcodes(), llvm::object::MachOObjectFile::getDyldInfoExportsTrie(), llvm::object::MachOObjectFile::getDyldInfoLazyBindOpcodes(), llvm::object::MachOObjectFile::getDyldInfoRebaseOpcodes(), llvm::object::MachOObjectFile::getDyldInfoWeakBindOpcodes(), llvm::DebugLocStream::getEntries(), getExpandedMinMaxOps(), llvm::codeview::getExportSymFlagNames(), llvm::codeview::getFileChecksumNames(), getFMA3Group(), llvm::codeview::getFrameCookieKindNames(), llvm::codeview::getFrameProcSymFlagNames(), llvm::codeview::getFunctionOptionEnum(), llvm::ConstantExpr::getGetElementPtr(), GetGlobalTypeString(), llvm::HexagonSubtarget::getHVXElementTypes(), llvm::codeview::getImageSectionCharacteristicNames(), llvm::AMDGPURegisterBankInfo::getInstrAlternativeMappings(), llvm::AMDGPURegisterBankInfo::getInstrAlternativeMappingsIntrinsic(), llvm::AMDGPURegisterBankInfo::getInstrAlternativeMappingsIntrinsicWSideEffects(), llvm::codeview::getLabelTypeEnum(), llvm::CodeViewContext::getLinesForExtent(), llvm::codeview::getLocalFlagNames(), llvm::ShuffleVectorSDNode::getMask(), llvm::ValueEnumerator::getMDStrings(), llvm::codeview::getMemberAccessNames(), llvm::codeview::getMemberKindNames(), llvm::codeview::VFTableRecord::getMethodNames(), llvm::codeview::getMethodOptionNames(), llvm::codeview::getModuleSubstreamKindNames(), llvm::codeview::VFTableRecord::getName(), llvm::ValueEnumerator::getNonMDStrings(), getOffsetFromIndices(), llvm::pdb::getOMFSegMapDescFlagNames(), getOrInsertValueProfilingCall(), llvm::MachineTraceMetrics::getProcResourceCycles(), llvm::MachineTraceMetrics::Ensemble::getProcResourceDepths(), llvm::MachineTraceMetrics::Ensemble::getProcResourceHeights(), llvm::codeview::getProcSymFlagNames(), llvm::codeview::getPtrKindNames(), llvm::codeview::getPtrMemberRepNames(), llvm::codeview::getPtrModeNames(), llvm::codeview::getPublicSymFlagNames(), llvm::TargetRegisterClass::getRawAllocationOrder(), llvm::codeview::getRegisterNames(), getRegNum(), llvm::SIRegisterInfo::getRegSplitParts(), GetRMWLibcall(), llvm::DWARFUnitIndex::getRows(), llvm::lto::LTO::getRuntimeLibcallSymbols(), llvm::object::XCOFFObjectFile::getSectionContents(), llvm::object::ELFObjectFile< ELFT >::getSectionContents(), llvm::object::COFFObjectFile::getSectionContents(), llvm::object::MachOObjectFile::getSectionRawFinalSegmentName(), llvm::object::MachOObjectFile::getSectionRawName(), llvm::AArch64InstrInfo::getSerializableBitmaskMachineOperandTargetFlags(), llvm::HexagonInstrInfo::getSerializableBitmaskMachineOperandTargetFlags(), llvm::ARMBaseInstrInfo::getSerializableBitmaskMachineOperandTargetFlags(), llvm::PPCInstrInfo::getSerializableBitmaskMachineOperandTargetFlags(), llvm::LanaiInstrInfo::getSerializableDirectMachineOperandTargetFlags(), llvm::RISCVInstrInfo::getSerializableDirectMachineOperandTargetFlags(), llvm::MipsInstrInfo::getSerializableDirectMachineOperandTargetFlags(), llvm::AArch64InstrInfo::getSerializableDirectMachineOperandTargetFlags(), llvm::HexagonInstrInfo::getSerializableDirectMachineOperandTargetFlags(), llvm::ARMBaseInstrInfo::getSerializableDirectMachineOperandTargetFlags(), llvm::PPCInstrInfo::getSerializableDirectMachineOperandTargetFlags(), llvm::X86InstrInfo::getSerializableDirectMachineOperandTargetFlags(), llvm::SIInstrInfo::getSerializableDirectMachineOperandTargetFlags(), llvm::AArch64InstrInfo::getSerializableMachineMemOperandTargetFlags(), llvm::WebAssemblyInstrInfo::getSerializableTargetIndices(), llvm::SIInstrInfo::getSerializableTargetIndices(), llvm::SIMachineFunctionInfo::getSGPRToVGPRSpills(), getShiftAmountTyForConstant(), getSignature(), llvm::codeview::getSourceLanguageNames(), llvm::ConstantDataArray::getString(), getSubprogram(), llvm::object::COFFObjectFile::getSymbolAuxData(), llvm::codeview::getSymbolTypeNames(), llvm::codeview::getThunkOrdinalNames(), llvm::codeview::getTrampolineNames(), llvm::codeview::getTypeLeafNames(), llvm::codeview::getTypeModifierNames(), getTypePartition(), llvm::object::MachOObjectFile::getUuid(), llvm::CondOpInit::getVals(), llvm::ListInit::getValues(), llvm::MipsABIInfo::GetVarArgRegs(), getX86MaskVec(), group2Shuffle(), llvm::CallLowering::handleAssignments(), llvm::codeview::GloballyHashedType::hashType(), INITIALIZE_PASS(), llvm::pdb::UDTLayoutBase::initializeChildren(), llvm::DWARFFormValue::isFormClass(), isLoopDead(), isMips64EL(), isPerfectIncrement(), layout(), llvm::AMDGPULegalizerInfo::legalizeFDIV64(), LLVMBuildCall(), LLVMBuildCall2(), LLVMBuildCatchPad(), LLVMBuildCleanupPad(), LLVMBuildInvoke(), LLVMBuildInvoke2(), LLVMConstExtractValue(), LLVMConstInsertValue(), LLVMConstIntOfArbitraryPrecision(), LLVMConstNamedStruct(), LLVMConstStructInContext(), LLVMConstVector(), LLVMMDNodeInContext(), lookupFoldTable(), LowerBUILD_VECTOR_i1(), llvm::SystemZTargetLowering::LowerFormalArguments(), llvm::X86TargetLowering::lowerInterleavedStore(), lowerMSASplatZExt(), LowerMULH(), MarkBlocksLiveIn(), llvm::codeview::CodeViewRecordIO::maxFieldLength(), llvm::sys::fs::md5_contents(), llvm::MachineInstr::memoperands(), llvm::MachineSDNode::memoperands(), llvm::InjectorIRStrategy::mutate(), needsRuntimeRegistrationOfSectionRange(), llvm::SDNode::ops(), llvm::yaml::ScalarTraits< FixedSizeHex< N > >::output(), llvm::FunctionType::params(), performANDCombine(), performCustomAdjustments(), performNEONPostLDSTCombine(), performSRACombine(), llvm::PHITransAddr::PHITranslateWithInsertion(), prepareIndirectCall(), llvm::SMDiagnostic::print(), llvm::ScopedPrinter::printBinary(), llvm::ScopedPrinter::printBinaryBlock(), llvm::AttributeSetNode::Profile(), llvm::AttributeListImpl::Profile(), llvm::BitsInit::Profile(), llvm::CondOpInit::Profile(), llvm::DagInit::Profile(), llvm::object::ELFFile< ELFT >::program_headers(), llvm::AppendingBinaryByteStream::readBytes(), llvm::AppendingBinaryByteStream::readLongestContiguousChunk(), llvm::coverage::BinaryCoverageReader::readNextRecord(), llvm::LiveRangeEdit::regs(), RemoveUnusedGlue(), reorderSubVector(), ReorganizeVector(), llvm::SLPVectorizerPass::runImpl(), SDValueToConstBool(), llvm::object::ELFFile< ELFT >::sections(), simplifyNeonTbl1(), simplifyRelocatesOffABase(), simplifyX86pshufb(), simplifyX86vpermilvar(), simplifyX86vpermv(), sinkInstruction(), llvm::pdb::DbiModuleDescriptorBuilder::source_files(), stripTruncAndExt(), llvm::Type::subtypes(), llvm::LazyCallGraph::RefSCC::switchInternalEdgeToCall(), llvm::detail::IEEEFloat::toString(), tryToElideArgumentCopy(), tryToVectorizeHorReductionOrInstOperands(), unpackLoadToAggregate(), unpackStoreToAggregate(), unswitchNontrivialInvariants(), llvm::ARM::WinEH::ExceptionDataRecord::UnwindByteCode(), llvm::MD5::update(), UpgradeX86ALIGNIntrinsics(), UpgradeX86PSLLDQIntrinsics(), UpgradeX86PSRLDQIntrinsics(), llvm::InstCombiner::visitExtractValueInst(), llvm::InstCombiner::visitGetElementPtrInst(), llvm::codeview::TypeRecordMapping::visitMemberBegin(), llvm::codeview::TypeDumpVisitor::visitMemberBegin(), llvm::codeview::TypeRecordMapping::visitMemberEnd(), llvm::codeview::TypeDumpVisitor::visitMemberEnd(), llvm::codeview::TypeRecordMapping::visitTypeBegin(), llvm::codeview::TypeDumpVisitor::visitTypeBegin(), llvm::codeview::TypeDumpVisitor::visitUnknownType(), wrapConstantAsMetadata(), writeContent(), writeRecords(), and llvm::yaml::yaml2minidump().
Construct an ArrayRef from a pointer and length.
Definition at line 466 of file ArrayRef.h.
Construct an ArrayRef from a range.
Definition at line 472 of file ArrayRef.h.
References llvm::sys::path::begin(), and llvm::sys::path::end().
| ArrayRef<T> llvm::makeArrayRef | ( | const SmallVectorImpl< T > & | Vec | ) |
Construct an ArrayRef from a SmallVector.
Definition at line 478 of file ArrayRef.h.
Construct an ArrayRef from a SmallVector.
Definition at line 484 of file ArrayRef.h.
Construct an ArrayRef from a std::vector.
Definition at line 490 of file ArrayRef.h.
| ArrayRef<T> llvm::makeArrayRef | ( | const std::array< T, N > & | Arr | ) |
Construct an ArrayRef from a std::array.
Definition at line 496 of file ArrayRef.h.
Construct an ArrayRef from an ArrayRef (no-op) (const)
Definition at line 501 of file ArrayRef.h.
Construct an ArrayRef from an ArrayRef (no-op)
Definition at line 506 of file ArrayRef.h.
Construct an ArrayRef from a C array.
Definition at line 512 of file ArrayRef.h.
Referenced by ReportLastErrorFatal().
| Optional< MDNode * > llvm::makeFollowupLoopID | ( | MDNode * | OrigLoopID, |
| ArrayRef< StringRef > | FollowupAttrs, | ||
| const char * | InheritOptionsAttrsPrefix = "", |
||
| bool | AlwaysNew = false |
||
| ) |
Create a new loop identifier for a loop created from a loop transformation.
| OrigLoopID | The loop ID of the loop before the transformation. |
| FollowupAttrs | List of attribute names that contain attributes to be added to the new loop ID. |
| InheritOptionsAttrsPrefix | Selects which attributes should be inherited from the original loop. The following values are considered: nullptr : Inherit all attributes from OrigLoopID. "" : Do not inherit any attribute from OrigLoopID; only use those specified by a followup attribute. "<prefix>": Inherit all attributes except those which start with <prefix>; commonly used to remove metadata for the applied transformation. |
| AlwaysNew | If true, do not try to reuse OrigLoopID and never return None. |
OrigLoopID: The original identifier can be reused. nullptr : The new loop has no attributes. MDNode* : A new unique loop identifier. Definition at line 302 of file LoopUtils.cpp.
References assert(), drop_begin(), findOptionMDForLoopID(), llvm::MDOperand::get(), llvm::MDNode::get(), llvm::MDNode::getContext(), llvm::MDNode::getNumOperands(), llvm::MDNode::getOperand(), None, llvm::MDNode::operands(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::MDNode::replaceOperandWith(), llvm::SmallVectorBase::size(), and llvm::StringRef::startswith().
Referenced by CloneLoopBlocks(), llvm::InnerLoopVectorizer::createVectorizedLoopSkeleton(), llvm::LoopVectorizePass::processLoop(), tryToUnrollAndJamLoop(), and tryToUnrollLoop().
| std::vector< const SUnit * > llvm::makeGCNILPScheduler | ( | ArrayRef< const SUnit *> | BotRoots, |
| const ScheduleDAG & | DAG | ||
| ) |
Definition at line 358 of file GCNILPSched.cpp.
Referenced by llvm::GCNIterativeScheduler::scheduleILP().
Splits control flow at point of Guard, replacing it with explicit branch by the condition of guard's first argument.
The taken branch then goes to the block that contains Guard's successors, and the non-taken branch goes to a newly-created deopt block that contains a sole call of the deoptimize function DeoptIntrinsic. If 'UseWC' is set, preserve the widenable nature of the guard by lowering to equivelent form. If not set, lower to a form without widenable semantics.
Definition at line 30 of file GuardUtils.cpp.
References llvm::CallBase::arg_begin(), llvm::CallBase::arg_end(), llvm::AMDGPU::HSAMD::Kernel::Key::Args, assert(), B, llvm::IRBuilder< T, Inserter >::CreateAnd(), llvm::IRBuilder< T, Inserter >::CreateCall(), llvm::IRBuilderBase::CreateIntrinsic(), llvm::IRBuilder< T, Inserter >::CreateRet(), llvm::IRBuilder< T, Inserter >::CreateRetVoid(), llvm::Instruction::eraseFromParent(), llvm::CallBase::getArgOperand(), llvm::CallBase::getCallingConv(), llvm::Value::getContext(), llvm::Instruction::getMetadata(), llvm::CallBase::getOperandBundle(), llvm::Instruction::getParent(), llvm::Function::getReturnType(), llvm::Instruction::getSuccessor(), llvm::Type::isVoidTy(), isWidenableBranch(), llvm::LLVMContext::OB_deopt, PredicatePassBranchWeight, llvm::Value::setName(), and SplitBlockAndInsertIfThen().
Referenced by lowerGuardIntrinsic(), and turnToExplicitForm().
| std::vector< const SUnit * > llvm::makeMinRegSchedule | ( | ArrayRef< const SUnit *> | TopRoots, |
| const ScheduleDAG & | DAG | ||
| ) |
Definition at line 278 of file GCNMinRegStrategy.cpp.
Referenced by llvm::GCNIterativeScheduler::scheduleMinReg(), and llvm::GCNIterativeScheduler::tryMaximizeOccupancy().
| MutableArrayRef<T> llvm::makeMutableArrayRef | ( | T & | OneElt | ) |
Construct a MutableArrayRef from a single element.
Definition at line 518 of file ArrayRef.h.
Referenced by canConstantFoldCallTo(), llvm::InstrProfRecord::clearValueData(), ConvertToSInt(), llvm::ExecutionEngine::getConstantValue(), getMemoryBufferForStream(), and llvm::detail::IEEEFloat::remainder().
| MutableArrayRef<T> llvm::makeMutableArrayRef | ( | T * | data, |
| size_t | length | ||
| ) |
Construct a MutableArrayRef from a pointer and length.
Definition at line 524 of file ArrayRef.h.
| MDNode * llvm::makePostTransformationMetadata | ( | llvm::LLVMContext & | Context, |
| MDNode * | OrigLoopID, | ||
| llvm::ArrayRef< llvm::StringRef > | RemovePrefixes, | ||
| llvm::ArrayRef< llvm::MDNode *> | AddAttrs | ||
| ) |
Create a new LoopID after the loop has been transformed.
This can be used when no follow-up loop attributes are defined (llvm::makeFollowupLoopID returning None) to stop transformations to be applied again.
| Context | The LLVMContext in which to create the new LoopID. |
| OrigLoopID | The original LoopID; can be nullptr if the original loop has no LoopID. |
| RemovePrefixes | Remove all loop attributes that have these prefixes. Use to remove metadata of the transformation that has been applied. |
| AddAttrs | Add these loop attributes to the new LoopID. |
Definition at line 1011 of file LoopInfo.cpp.
References any_of(), llvm::SmallVectorImpl< T >::append(), llvm::ArrayRef< T >::begin(), dyn_cast(), llvm::ArrayRef< T >::end(), llvm::MDNode::getDistinct(), llvm::MDNode::getNumOperands(), llvm::MDNode::getOperand(), llvm::MDString::getString(), llvm::MDNode::getTemporary(), None, llvm::cl::Prefix, llvm::SmallVectorTemplateBase< T >::push_back(), llvm::MDNode::replaceOperandWith(), and llvm::StringRef::startswith().
Referenced by llvm::LoopInfoWrapperPass::releaseMemory(), llvm::LoopVectorizeHints::setAlreadyVectorized(), and llvm::Loop::setLoopAlreadyUnrolled().
| ReservoirSampler<ElT, GenT> llvm::makeSampler | ( | GenT & | RandGen, |
| RangeT && | Items | ||
| ) |
Definition at line 75 of file Random.h.
References llvm::ReservoirSampler< T, GenT >::sample().
Referenced by llvm::RandomIRBuilder::findOrCreateSource(), llvm::RandomIRBuilder::findPointer(), llvm::InjectorIRStrategy::getDefaultOps(), and llvm::IRMutationStrategy::mutate().
| ReservoirSampler<T, GenT> llvm::makeSampler | ( | GenT & | RandGen, |
| const T & | Item, | ||
| uint64_t | Weight | ||
| ) |
Definition at line 82 of file Random.h.
References llvm::ReservoirSampler< T, GenT >::sample().
| ReservoirSampler<T, GenT> llvm::makeSampler | ( | GenT & | RandGen | ) |
|
inline |
Definition at line 231 of file STLExtras.h.
Referenced by map_range().
| auto llvm::map_range | ( | ContainerTy && | C, |
| FuncTy | F | ||
| ) | -> decltype(make_range(map_iterator(C.begin(), F), map_iterator(C.end(), F))) |
Definition at line 236 of file STLExtras.h.
References C, F(), make_range(), and map_iterator().
|
inline |
Lookup or compute a mapping for a piece of metadata.
Compute and memoize a mapping for MD.
MD is mapped, return it.MD is an MDString, return MD.MD is a ConstantAsMetadata, call MapValue() and re-wrap its return (returning nullptr on nullptr).MD is an MDNode. These are remapped, along with their transitive operands. Distinct nodes are duplicated or moved depending on RF_MoveDistinctNodes. Uniqued nodes are remapped like constants.Definition at line 228 of file ValueMapper.h.
References llvm::ValueMapper::mapMetadata().
Referenced by CloneFunctionInto(), CloneModule(), and llvm::orc::cloneModuleFlagsMetadata().
|
inline |
Version of MapMetadata with type safety for MDNode.
Definition at line 236 of file ValueMapper.h.
References llvm::ValueMapper::mapMDNode().
|
inline |
Look up or compute a value in the value map.
Return a mapped value for a function-local value (Argument, Instruction, BasicBlock), or compute and memoize a value for a Constant.
V is in VM, return the result.V can be materialized with Materializer, do so, memoize it in VM, and return it.V is a function-local value, return nullptr.V is a GlobalValue, return nullptr or V depending on RF_NullMapMissingGlobalValues.V is a MetadataAsValue wrapping a LocalAsMetadata, recurse on the local SSA value, and return nullptr or "metadata !{}" on missing depending on RF_IgnoreMissingValues.V is a MetadataAsValue, rewrap the return of MapMetadata().Definition at line 206 of file ValueMapper.h.
References llvm::ValueMapper::mapValue().
Referenced by CloneAndPruneIntoFromInst(), CloneFunctionInto(), CloneModule(), and llvm::orc::moveGlobalVariableInitializer().
|
inline |
Version of MapValue with type safety for Constant.
Definition at line 272 of file ValueMapper.h.
References llvm::ValueMapper::mapConstant().
| std::error_code llvm::mapWindowsError | ( | unsigned | EV | ) |
Referenced by LLVMResetFatalErrorHandler().
| bool llvm::MaskedValueIsZero | ( | const Value * | V, |
| const APInt & | Mask, | ||
| const DataLayout & | DL, | ||
| unsigned | Depth = 0, |
||
| AssumptionCache * | AC = nullptr, |
||
| const Instruction * | CxtI = nullptr, |
||
| const DominatorTree * | DT = nullptr, |
||
| bool | UseInstrInfo = true |
||
| ) |
Return true if 'V & Mask' is known to be zero.
We use this predicate to simplify operations downstream. Mask is known to be zero for bits that V cannot have.
This function is defined on values with integer type, values with pointer type, and vectors of integers. In the case where V is a vector, the mask, known zero, and known one values are the same width as the vector element, and the bit is set only if it is true for all of the elements in the vector.
Definition at line 290 of file ValueTracking.cpp.
References ComputeNumSignBits(), MaskedValueIsZero(), and safeCxtI().
Referenced by canEvaluateShifted(), llvm::SelectionDAG::DbgLabelEnd(), foldVecTruncToExtElt(), getAlternateBinop(), isKnownNonEqual(), isObjectSize(), llvm::InstCombiner::MaskedValueIsZero(), SimplifyOrInst(), llvm::InstCombiner::visitAdd(), llvm::InstCombiner::visitAnd(), llvm::InstCombiner::visitAShr(), llvm::InstCombiner::visitLShr(), llvm::InstCombiner::visitOr(), llvm::InstCombiner::visitSDiv(), llvm::InstCombiner::visitShl(), llvm::InstCombiner::visitSRem(), llvm::InstCombiner::visitXor(), and llvm::InstCombiner::visitZExt().
Given a mask vector of the form <Y x="" i1>="">, Return true if all of the elements of this predicate mask are true or undef.
That is, return true if all lanes can be assumed active.
Definition at line 770 of file VectorUtils.cpp.
References dyn_cast(), E, I, and llvm::BitmaskEnumDetail::Mask().
Referenced by simplifyX86vpermv().
Given a mask vector of the form <Y x="" i1>="">, Return true if all of the elements of this predicate mask are false or undef.
That is, return true if all lanes can be assumed inactive.
Definition at line 753 of file VectorUtils.cpp.
References dyn_cast(), E, I, and llvm::BitmaskEnumDetail::Mask().
Referenced by simplifyIntrinsic().
Create a bitmask with the N left-most bits set to 1, and all other bits set to 0.
Only unsigned types are allowed.
Definition at line 257 of file MathExtras.h.
References T.
Create a bitmask with the N left-most bits set to 0, and all other bits set to 1.
Only unsigned types are allowed.
Definition at line 269 of file MathExtras.h.
References T.
Create a bitmask with the N right-most bits set to 1, and all other bits set to 0.
Only unsigned types are allowed.
Definition at line 248 of file MathExtras.h.
References assert(), llvm::tgtok::Bits, N, and T.
Referenced by DecodeSignedOperand().
Create a bitmask with the N right-most bits set to 0, and all other bits set to 1.
Only unsigned types are allowed.
Definition at line 263 of file MathExtras.h.
References T.
| SelectPatternResult llvm::matchDecomposedSelectPattern | ( | CmpInst * | CmpI, |
| Value * | TrueVal, | ||
| Value * | FalseVal, | ||
| Value *& | LHS, | ||
| Value *& | RHS, | ||
| Instruction::CastOps * | CastOp = nullptr, |
||
| unsigned | Depth = 0 |
||
| ) |
Determine the pattern that a select with the given compare as its predicate and given values as its true/false operands would match.
Definition at line 5247 of file ValueTracking.cpp.
References C, llvm::Instruction::getFastMathFlags(), llvm::User::getOperand(), llvm::CmpInst::getPredicate(), llvm::Value::getType(), llvm::CmpInst::isEquality(), lookThroughCast(), matchSelectPattern(), llvm::FastMathFlags::setNoSignedZeros(), SPF_UNKNOWN, and SPNB_NA.
Referenced by matchSelectPattern().
Definition at line 230 of file PassTimingInfo.cpp.
References dbgs(), llvm::StringRef::endswith(), llvm::StringRef::find(), LLVM_DEBUG, llvm::StringRef::npos, llvm::cl::Prefix, and llvm::StringRef::substr().
| SelectPatternResult llvm::matchSelectPattern | ( | Value * | V, |
| Value *& | LHS, | ||
| Value *& | RHS, | ||
| Instruction::CastOps * | CastOp = nullptr, |
||
| unsigned | Depth = 0 |
||
| ) |
Pattern match integer [SU]MIN, [SU]MAX and ABS idioms, returning the kind and providing the out parameter results if we successfully match.
For ABS/NABS, LHS will be set to the input to the abs idiom. RHS will be the negation instruction from the idiom.
If CastOp is not nullptr, also match MIN/MAX idioms where the type does not match that of the original select. If this is the case, the cast operation (one of Trunc,SExt,Zext) that must be done to transform the type of LHS and RHS into the type of V is returned in CastOp.
For example: %1 = icmp slt i32 a, i32 4 %2 = sext i32 a to i64 %3 = select i1 %1, i64 %2, i64 4
-> LHS = a, RHS = i32 4, *CastOp = Instruction::SExt
Definition at line 5228 of file ValueTracking.cpp.
References dyn_cast(), llvm::SelectInst::getCondition(), llvm::SelectInst::getFalseValue(), llvm::SelectInst::getTrueValue(), matchDecomposedSelectPattern(), SI, SPF_UNKNOWN, and SPNB_NA.
Referenced by canonicalizeSaturatedAdd(), computeKnownBitsFromOperator(), foldCttzCtlz(), llvm::SelectPatternResult::isMinOrMax(), isSignedMinMaxClamp(), matchMinMaxOfMinMax(), matchSelectPattern(), processUGT_ADDCST_ADD(), setLimitsForSelectPattern(), ShrinkDemandedConstant(), llvm::InstCombiner::visitFCmpInst(), llvm::InstCombiner::visitSub(), llvm::InstCombiner::visitTrunc(), and llvm::InstCombiner::visitXor().
|
inline |
Definition at line 635 of file ValueTracking.h.
References Depth, getInverseMinMaxFlavor(), getInverseMinMaxPred(), getMinMaxPred(), isImpliedByDomCondition(), isImpliedCondition(), matchDecomposedSelectPattern(), and matchSelectPattern().
|
inline |
Definition at line 91 of file GCNRegPressure.h.
References I, and llvm::GCNRegPressure::TOTAL_KINDS.
Referenced by llvm::GCNRegPressure::getVGPRNum(), llvm::GCNRegPressure::getVGPRTuplesWeight(), and llvm::GCNRegPressure::higherOccupancy().
|
inline |
Definition at line 390 of file Alignment.h.
Referenced by llvm::AArch64CallLowering::AArch64CallLowering(), AbsoluteDifference(), llvm::LiveRangeUpdater::add(), llvm::SchedDFSImpl::addConnection(), llvm::CompileUnit::addFunctionRange(), llvm::DwarfExpression::addMachineRegExpression(), llvm::safestack::StackLayout::addObject(), llvm::SUnit::addPred(), addRegsToSet(), llvm::mca::WriteState::addUser(), adjustDown(), llvm::X86FrameLowering::adjustForHiPEPrologue(), llvm::HexagonSubtarget::adjustSchedDependency(), AdjustStackOffset(), aliasSameBasePointerGEPs(), llvm::ms_demangle::ArenaAllocator::allocArray(), llvm::jitlink::InProcessMemoryManager::allocate(), llvm::CCState::AllocateStack(), llvm::MemoryPhi::allocHungoffUses(), llvm::ms_demangle::ArenaAllocator::allocUnalignedBuffer(), allUsesTruncate(), llvm::AMDGPULegalizerInfo::AMDGPULegalizerInfo(), llvm::AMDGPUTargetLowering::analyzeFormalArgumentsCompute(), analyzeLoopUnrollCost(), annotateDereferenceableBytes(), annotateNonNullAndDereferenceable(), ApplyX86MaskOn1BitsVec(), ApproximateLoopSize(), llvm::LanaiInstrInfo::areMemAccessesTriviallyDisjoint(), llvm::RISCVInstrInfo::areMemAccessesTriviallyDisjoint(), llvm::PPCInstrInfo::areMemAccessesTriviallyDisjoint(), areStridedAccessesIndependent(), llvm::ConstantRange::ashr(), AssignProtectedObjSet(), llvm::WinException::beginFunclet(), buildCallOperands(), buildFrameType(), llvm::SchedBoundary::bumpCycle(), llvm::SchedBoundary::bumpNode(), llvm::CachedHashStringRef::CachedHashStringRef(), calculateCountScale(), llvm::LoopVectorizationCostModel::calculateRegisterUsage(), calculateUnswitchCostMultiplier(), callingConvSupported(), callWaitsOnFunctionReturn(), canCreateAliasFor(), llvm::RegisterBankInfo::cannotCopy(), CC_RISCVAssign2XLen(), llvm::ARMTargetLowering::CCAssignFnForReturn(), llvm::GenericScheduler::checkAcyclicLatency(), llvm::SchedBoundary::checkHazard(), llvm::LiveIntervalUnion::Query::checkInterference(), combineKnownAdjacentMMOs(), combineX86ShuffleChainWithExtract(), ComputeASanStackFrameLayout(), llvm::mca::computeBlockRThroughput(), computeFreeStackSlots(), computeImportForFunction(), llvm::MCSchedModel::computeInstrLatency(), llvm::SelectionDAG::computeKnownBits(), computeKnownBitsFromOperator(), llvm::GISelKnownBits::computeKnownBitsImpl(), computeKnownBitsMul(), llvm::MachineFrameInfo::computeMaxCallFrameSize(), llvm::NodeSet::computeNodeSetInfo(), llvm::SelectionDAG::ComputeNumSignBits(), llvm::AMDGPUTargetLowering::ComputeNumSignBitsForTargetNode(), ComputeNumSignBitsImpl(), llvm::TargetSchedModel::computeOperandLatency(), computePeelCount(), computeRemLatency(), llvm::SMSchedule::computeStart(), llvm::RuntimeDyldImpl::computeTotalAllocSize(), computeUnrollCount(), ConstantFoldGetElementPtr(), llvm::mca::RetireControlUnit::consumeCurrentToken(), convertFloatingToInteger(), convertFPR64ToFPR32(), ConvertI1VectorToInteger(), llvm::AMDGPUDisassembler::convertMIMGInst(), llvm::AMDGPURegisterBankInfo::copyCost(), llvm::detail::TrailingZerosCounter< T, SizeOfT >::count(), countToEliminateCompares(), llvm::msf::MSFBuilder::create(), llvm::InstrProfReader::create(), llvm::IndexedInstrProfReader::create(), llvm::LandingPadInst::Create(), createAArch64StackTaggingPass(), createGreedyRegisterAllocator(), createPSADBW(), createShuffleStride(), llvm::SelectionDAG::CreateStackTemporary(), createX86PadShortFunctions(), llvm::mca::Instruction::cycleEvent(), decodeBase64StringEntry(), DecodeDPRRegListOperand(), DecodeFromCyclicRange(), DecodePALIGNRMask(), DecodeSPRRegListOperand(), DeleteTriviallyDeadInstructions(), llvm::ARMFrameLowering::determineCalleeSaves(), llvm::PPCFrameLowering::determineFrameLayout(), DisableAllLoopOptsOnLoop(), llvm::mca::RetireControlUnit::dispatch(), llvm::mca::LSUnit::dispatch(), llvm::DWARFListTableBase< DWARFDebugRnglist >::dump(), dump(), llvm::WebAssemblyRegisterInfo::eliminateFrameIndex(), llvm::AMDGPUAsmPrinter::EmitBasicBlockStart(), llvm::MCWinCOFFStreamer::EmitCommonSymbol(), llvm::DwarfExpression::emitConstu(), llvm::DwarfDebug::emitDebugLocEntryLocation(), llvm::AMDGPUAsmPrinter::EmitFunctionEntryLabel(), llvm::MipsAsmPrinter::EmitFunctionEntryLabel(), EmitGEPOffset(), llvm::X86FrameLowering::emitPrologue(), llvm::RuntimeDyldImpl::emitSection(), enableAllocFrameElim(), encodeCounter(), llvm::CodeViewContext::encodeInlineLineTable(), enforceKnownAlignment(), EnsureStackAlignment(), llvm::opt::ArgList::eraseArg(), llvm::MachineFrameInfo::estimateStackSize(), llvm::ModuloScheduleExpander::expand(), llvm::AccelTableBase::finalize(), llvm::BlockFrequencyInfoImplBase::finalizeMetrics(), llvm::SourceMgr::FindBufferContainingLoc(), FindCallSeqStart(), findFirstSet(), llvm::SparseSet< unsigned, llvm::VirtReg2IndexFunctor >::findIndex(), llvm::SparseMultiSet< VReg2SUnit, VirtReg2IndexFunctor >::findIndex(), findLastSet(), llvm::wholeprogramdevirt::findLowestOffset(), llvm::MipsTargetELFStreamer::finish(), finishStackBlock(), FixedPointIntrinsicToOpcode(), llvm::TargetInstrInfo::foldMemoryOperand(), gatherUnrollingPreferences(), llvm::AttributeList::get(), llvm::ScaledNumbers::getAdjusted(), llvm::CFLSteensAAResult::FunctionInfo::getAliasSummary(), llvm::RegBankSelect::getAnalysisUsage(), llvm::X86TTIImpl::getArithmeticInstrCost(), llvm::json::Value::getAsInteger(), llvm::DWARFFormValue::getAsSignedConstant(), llvm::IRPosition::getAttrs(), getBranchHint(), llvm::RegisterBankInfo::getBreakDownCost(), llvm::AArch64FunctionInfo::getCalleeSavedStackSize(), llvm::SystemZTTIImpl::getCastInstrCost(), llvm::HexagonTTIImpl::getCastInstrCost(), llvm::DeclContextTree::getChildDeclContext(), getComparePred(), GetCtorAndDtorPriority(), llvm::mca::RetireControlUnit::getCurrentToken(), llvm::GCOVBlock::getCycleCount(), getDepthOfOptCmov(), llvm::ScaledNumbers::getDifference(), llvm::SpillPlacement::Node::getDissentingNeighbors(), getDwarfRegNum(), getElementByteSizeValue(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getEstimatedNumberOfCaseClusters(), llvm::SchedBoundary::getExecutedCount(), llvm::AMDGPUSubtarget::getExplicitKernArgSize(), getExtendInVec(), getFauxShuffleMask(), llvm::sampleprof::SampleProfileReaderExtBinaryBase::getFileSize(), getFrameIndexOperandNum(), llvm::bfi_detail::BlockMass::getFull(), getFullUnrollBoostingFactor(), llvm::DataLayout::getIndexTypeSizeInBits(), llvm::R600InstrInfo::getIndirectIndexBegin(), GetInitialOffset(), llvm::PPCInstrInfo::getInstrLatency(), llvm::SIInstrInfo::getInstrLatency(), llvm::SystemZTTIImpl::getInterleavedMemoryOpCost(), llvm::X86TTIImpl::getInterleavedMemoryOpCostAVX512(), llvm::AArch64TTIImpl::getIntImmCost(), llvm::X86TTIImpl::getIntImmCost(), llvm::RISCVMatInt::getIntMatCost(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getIntrinsicInstrCost(), getItineraryLatency(), llvm::ScaledNumber< uint64_t >::getLargest(), getLatency(), getLayoutSuccessorProbThreshold(), llvm::SourceMgr::getLineAndColumn(), getLongestEntryLength(), getMatchingNonSExtOpcode(), llvm::BlockFrequencyInfoImplBase::BlockNode::getMaxIndex(), llvm::SDNode::getMaxNumOperands(), llvm::DataLayout::getMaxPointerSize(), llvm::SelectionDAG::getMemIntrinsicNode(), getMinimalExtentFrom(), getMinVisibility(), getMOVL(), llvm::ScalarEvolution::getMulExpr(), llvm::Value::getName(), getNegatibleInsts(), llvm::vfs::getNextVirtualUniqueID(), llvm::BFIDOTGraphTraitsBase< BlockFrequencyInfoT, BranchProbabilityInfoT >::getNodeAttributes(), getNumAllocatableRegsForConstraints(), llvm::WebAssemblyTTIImpl::getNumberOfRegisters(), llvm::MipsTargetLowering::getNumRegistersForCallingConv(), llvm::AMDGPU::IsaInfo::getNumSGPRBlocks(), llvm::AMDGPU::IsaInfo::getNumVGPRBlocks(), llvm::AMDGPUSubtarget::getOccupancyWithLocalMemSize(), llvm::GCNSubtarget::getOccupancyWithNumVGPRs(), getOffsetFromIndices(), llvm::cl::generic_parser_base::getOptionWidth(), llvm::LLVMContextImpl::getOrInsertSyncScopeID(), getParentPad(), llvm::R600AsmPrinter::getPassName(), llvm::Value::getPointerAlignment(), llvm::DataLayout::getPreferredAlignment(), llvm::PressureChange::getPSetOrMax(), llvm::ScaledNumbers::getQuotient(), llvm::ReachingDefAnalysis::getReachingDef(), llvm::GCNIterativeScheduler::getRegionPressure(), getRelevantOperands(), llvm::MachineTraceMetrics::Trace::getResourceDepth(), llvm::MachineTraceMetrics::Trace::getResourceLength(), getRetpolineSymbol(), getScalingFactorCost(), llvm::SchedBoundary::getScheduledLatency(), llvm::object::ELFFile< ELFT >::getSectionContentsAsArray(), getSetupCost(), llvm::LoopVectorizationCostModel::getSmallestAndWidestTypes(), GetSortedValueDataFromCallTargets(), llvm::InstrItineraryData::getStageLatency(), getStartOrEndSlot(), getStringEncoding(), getSVECalleeSaveSlotRange(), getUnconditionalBrDisp(), getUnderlyingArgRegs(), llvm::AMDGPUTTIImpl::getUnrollingPreferences(), getUnsigned(), llvm::RegPressureTracker::getUpwardPressureDelta(), llvm::X86TTIImpl::getUserCost(), llvm::ARMTTIImpl::getVectorInstrCost(), getWaitStatesSince(), greaterWithBias(), llvm::SmallVectorTemplateBase< T >::grow(), llvm::SmallVectorBase::grow_pod(), HandleByValArgument(), llvm::DWARFVerifier::handleDebugLine(), hasAnyNonFlatUseOfReg(), llvm::RISCVFrameLowering::hasBP(), hasProfileData(), hasSameExtUse(), hasUseAfterLoop(), llvm::HexagonTargetLowering::HexagonTargetLowering(), ignoreDependence(), llvm::RegPressureTracker::increaseRegPressure(), INITIALIZE_PASS(), llvm::DbgVariable::initializeMMI(), InlineFunction(), llvm::gsym::AddressRanges::insert(), insertCSRRestores(), insertDeleteInstructions(), instrumentMaskedLoadOrStore(), intersect(), llvm::PBQP::GraphBase::invalidEdgeId(), llvm::PBQP::GraphBase::invalidNodeId(), isDebug(), isDefInSubRange(), llvm::AArch64_IMM::isEndChunk(), isFormingBranchFromSelectProfitable(), llvm::bfi_detail::BlockMass::isFull(), isIdentityValue(), isIndirectBrTarget(), isIntersect(), isKnownTypeIdMember(), isLegalT2AddressImmediate(), isMulPowOf2(), llvm::TargetLowering::isNegatibleForFree(), isOverwrite(), isPushPop(), isReassociableOp(), isRegUsedByPhiNodes(), isSafePHIToSpeculate(), isSaturatingConditional(), IsSmallObject(), llvm::AArch64_IMM::isStartChunk(), isSupportedType(), isTargetConstant(), isTerminalReg(), isVectorPromotionViableForSlice(), llvm::SMSchedule::latestCycleInChain(), llvm::AArch64LegalizerInfo::legalizeIntrinsic(), llvm::coverage::LineCoverageStats::LineCoverageStats(), LowerBUILD_VECTOR_i1(), llvm::HexagonTargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_64(), lowerCallResult(), LowerCallResult(), LowerEXTEND_VECTOR_INREG(), lowerObjCCall(), llvm::SelectionDAGBuilder::lowerRangeToAssertZExt(), lowerShuffleAsBlend(), lowerShuffleAsByteRotateAndPermute(), lowerShuffleAsRepeatedMaskAndLanePermute(), lowerShuffleToEXPAND(), lowerV2I64Shuffle(), LowerVASTART(), llvm::ConstantRange::lshr(), llvm::mca::LSUnitBase::LSUnitBase(), llvm::MachineFunction::MachineFunction(), llvm::jitlink::MachOJITLinker_arm64::MachOJITLinker_arm64(), llvm::jitlink::MachOJITLinker_x86_64::MachOJITLinker_x86_64(), mapBinOpcode(), llvm::codeview::CodeViewRecordIO::mapStringZVectorZ(), MatchingStackOffset(), matchUnaryShuffle(), llvm::PBQP::RegAlloc::MatrixMetadata::MatrixMetadata(), llvm::RandomNumberGenerator::max(), llvm::MachineInstr::mayAlias(), mayCombineMisaligned(), mayTailCallThisCC(), llvm::HexagonMCInstrInfo::minConstant(), MinOptional(), llvm::TargetTransformInfoImplBase::minRequiredElementSize(), llvm::ModuloSchedule::ModuloSchedule(), llvm::LegalizeMutations::moreElementsToNextPow2(), moveUp(), MulOverflow(), llvm::ConstantRange::multiply(), needsRuntimeRegistrationOfSectionRange(), llvm::BlockFrequencyInfoImplBase::Distribution::normalize(), llvm::mca::WriteState::onInstructionIssued(), llvm::SmallBitVector::operator &=(), llvm::object::MinidumpFile::MemoryInfoIterator::operator++(), llvm::detail::enumerator_iter< R >::operator++(), llvm::bfi_detail::BlockMass::operator+=(), llvm::SmallBitVector::operator^=(), llvm::SmallBitVector::operator|=(), llvm::OptBisect::OptBisect(), llvm::InstrProfRecord::overlap(), llvm::LiveRange::overlaps(), llvm::formatted_raw_ostream::PadToColumn(), parseSegmentLoadCommand(), pickOpcodeForVT(), llvm::BasicBlockInfo::postKnownBits(), llvm::BasicBlockInfo::postOffset(), llvm::GCNHazardRecognizer::PreEmitNoopsCommon(), llvm::PressureChange::PressureChange(), PrintHelpOptionList(), ParameterPackExpansion::printLeft(), llvm::cl::PrintOptionValues(), llvm::TargetRegistry::printRegisteredTargetsForVersion(), PrintStatistics(), processDbgDeclares(), llvm::SystemZFrameLowering::processFunctionBeforeFrameFinalized(), llvm::HexagonFrameLowering::processFunctionBeforeFrameFinalized(), promoteLoopAccessesToScalars(), pushDepHeight(), llvm::sampleprof::SampleProfileReaderBinary::readNumber(), llvm::sampleprof::SampleProfileReaderGCC::readNumber(), llvm::AArch64TargetLowering::ReconstructShuffle(), reduceBuildVecToShuffleWithZero(), RedzoneSizeForScale(), llvm::ConvergingVLIWScheduler::releaseBottomNode(), llvm::SchedBoundary::releaseNode(), llvm::SchedBoundary::releasePending(), llvm::ConvergingVLIWScheduler::releaseTopNode(), replace(), llvm::ARMTargetLowering::ReplaceNodeResults(), llvm::X86TargetLowering::ReplaceNodeResults(), llvm::SchedBoundary::reset(), llvm::SelectionDAGBuilder::resolveDanglingDebugInfo(), RetagMask(), llvm::SLPVectorizerPass::runImpl(), llvm::MachinePipeliner::runOnMachineFunction(), SaturatingAdd(), SaturatingMultiply(), llvm::detail::scalbn(), llvm::ScaledNumber< uint64_t >::scale(), scaleBranchCount(), scaleCaseProbality(), scaleWeights(), llvm::GenericScheduler::schedNode(), llvm::PostGenericScheduler::schedNode(), llvm::GCNScheduleDAGMILive::schedule(), llvm::SchedDFSResult::scheduleTree(), selectI64Imm(), llvm::LoopVectorizationCostModel::selectInterleaveCount(), llvm::LoopVectorizationCostModel::selectVectorizationFactor(), llvm::FunctionLoweringInfo::set(), llvm::LoopVectorizationCostModel::setCostBasedWideningDecision(), setGroupSize(), llvm::SUnit::setHeightToAtLeast(), llvm::CompileUnit::setLabelBegin(), setupMemoryBuffer(), llvm::ConstantRange::shl(), llvm::FastISel::shouldOptForSize(), llvm::DenseMap< unsigned, unsigned >::shrink_and_clear(), ShrinkLoadReplaceStoreWithStore(), llvm::SIMachineFunctionInfo::SIMachineFunctionInfo(), AllocaSlices::SliceBuilder::SliceBuilder(), llvm::ConstantRange::smul_sat(), sortSubCommands(), strongerOrdering(), swapMIOperands(), SwitchToLookupTable(), llvm::DecIntegerState< base_ty >::takeAssumedMaximum(), llvm::IncIntegerState< base_ty, BestState, WorstState >::takeAssumedMinimum(), llvm::IncIntegerState< base_ty, BestState, WorstState >::takeKnownMaximum(), llvm::DecIntegerState< base_ty >::takeKnownMinimum(), llvm::X86TargetLowering::targetShrinkDemandedConstant(), llvm::ScaledNumber< uint64_t >::toInt(), llvm::ScaledNumberBase::toString(), llvm::AMDGPU::HSAMD::toString(), llvm::SelectionDAG::transferDbgValues(), llvm::GCNIterativeScheduler::tryMaximizeOccupancy(), tryPressure(), tryToUnrollLoop(), TypeSizeToSizeIndex(), uniform(), llvm::ScopedPrinter::unindent(), llvm::LocationSize::unionWith(), unpackAllocSizeArgs(), llvm::LiveIntervals::HMEditor::updateAllRanges(), llvm::MachineTraceMetrics::Ensemble::updateDepth(), llvm::CalleeInfo::updateHotness(), updatePhysDepsDownwards(), updatePhysDepsUpwards(), llvm::ScheduleDAGMILive::updateScheduledPressure(), llvm::HexagonSubtarget::usePredicatedCalls(), llvm::detail::result_pair< R >::value(), VarAndRedzoneSize(), llvm::RegisterBankInfo::ValueMapping::verify(), llvm::LegalizerInfo::verify(), llvm::ScheduleDAG::VerifyScheduledDAG(), llvm::sroa::AllocaSliceRewriter::visit(), llvm::Interpreter::visitAllocaInst(), llvm::InstCombiner::visitAllocaInst(), llvm::InstCombiner::visitFPTrunc(), llvm::InstCombiner::visitTrunc(), llvm::LegalizeMutations::widenScalarOrEltToNextPow2(), llvm::coverage::CoverageMappingWriter::write(), llvm::msgpack::Writer::write(), write_hex(), llvm::MachObjectWriter::writeObject(), and zeroExtendToMatch().
|
inline |
Definition at line 394 of file Alignment.h.
Implements IEEE 754-2018 maximum semantics.
Returns the larger of 2 arguments, propagating NaNs and treating -0 as less than +0.
Definition at line 1282 of file APFloat.h.
References B, llvm::APFloatBase::cmpLessThan, llvm::APFloat::compare(), llvm::APFloat::isNaN(), llvm::APFloat::isNegative(), and llvm::APFloat::isZero().
Referenced by canConstantFoldCallTo(), cannotBeOrderedLessThanZeroImpl(), llvm::IRBuilderBase::CreateMaximum(), FixedPointIntrinsicToOpcode(), getOffsetFromIndices(), isTriviallyVectorizable(), simplifyBinaryIntrinsic(), llvm::InstCombiner::visitCallInst(), and visitFMinMax().
|
inline |
Gets the maximum value for a N-bit signed integer.
Definition at line 420 of file MathExtras.h.
References assert().
Referenced by isIntN(), and adjust::signed_width().
Implements IEEE maxNum semantics.
Returns the larger of the 2 arguments if both are not NaN. If either argument is a NaN, returns the other argument.
Definition at line 1258 of file APFloat.h.
References llvm::APFloatBase::cmpLessThan, llvm::APFloat::compare(), llvm::APFloat::isNaN(), and LLVM_READONLY.
Referenced by canConstantFoldCallTo(), cannotBeOrderedLessThanZeroImpl(), llvm::IRBuilderBase::CreateMaxNum(), createPowWithIntegerExponent(), FixedPointIntrinsicToOpcode(), fmed3AMDGCN(), getIntrinsicForCallSite(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getIntrinsicInstrCost(), getOffsetFromIndices(), llvm::PPCTTIImpl::getUserCost(), isKnownNeverNaN(), isTriviallyVectorizable(), simplifyBinaryIntrinsic(), SimplifyFCmpInst(), SimplifyNVVMIntrinsic(), llvm::InstCombiner::visitCallInst(), and visitFMinMax().
|
inline |
Gets the maximum value for a N-bit unsigned integer.
Definition at line 402 of file MathExtras.h.
References assert(), N, and UINT64_MAX.
Referenced by isUIntN(), and adjust::unsigned_width().
| void llvm::maybeMarkSanitizerLibraryCallNoBuiltin | ( | CallInst * | CI, |
| const TargetLibraryInfo * | TLI | ||
| ) |
Given a CallInst, check if it calls a string function known to CodeGen, and mark it with NoBuiltin if so.
To be used by sanitizers that intend to intercept string functions and want to avoid converting them to target specific instructions.
Definition at line 2908 of file Local.cpp.
References llvm::CallBase::addAttribute(), llvm::Function::doesNotAccessMemory(), F(), llvm::AttributeList::FunctionIndex, llvm::CallBase::getCalledFunction(), llvm::TargetLibraryInfo::getLibFunc(), llvm::Value::getName(), llvm::GlobalValue::hasLocalLinkage(), llvm::Value::hasName(), and llvm::TargetLibraryInfo::hasOptimizedCodeGen().
Referenced by getKnownAlignment(), instrumentMaskedLoadOrStore(), and isAtomic().
| bool llvm::mayBeMemoryDependent | ( | const Instruction & | I | ) |
Returns true if the result or effects of the given instructions I depend on or influence global memory.
Memory dependence arises for example if the instruction reads from memory or may produce effects or undefined behaviour. Memory dependent instructions generally cannot be reorderd with respect to other memory dependent instructions or moved into non-dominated basic blocks. Instructions which just compute a value based on the values of their operands are not memory dependent.
Definition at line 4141 of file ValueTracking.cpp.
References isSafeToSpeculativelyExecute(), and llvm::Instruction::mayReadOrWriteMemory().
Referenced by GetUnderlyingObject(), isReassociableOp(), and isSafeToSpeculatePHIUsers().
Check whether a string looks like an old loop attachment tag.
Definition at line 84 of file AutoUpgrade.h.
References B, N, llvm::StringRef::startswith(), UpgradeDataLayoutString(), UpgradeFramePointerAttributes(), and upgradeInstructionLoopAttachment().
|
static |
Definition at line 30 of file ARMBasicBlockInfo.cpp.
References llvm::MachineInstr::getOpcode().
Referenced by llvm::ARMBasicBlockUtils::computeBlockSize().
|
inlinestatic |
Definition at line 44 of file MCLinkerOptimizationHint.h.
Referenced by isMatchingOrAlias(), and truncateToSize().
Definition at line 67 of file MCLinkerOptimizationHint.h.
References MCLOHCaseIdToName.
Referenced by truncateToSize().
|
inlinestatic |
Definition at line 83 of file MCLinkerOptimizationHint.h.
References MCLOH_AdrpAdd, MCLOH_AdrpAddLdr, MCLOH_AdrpAddStr, MCLOH_AdrpAdrp, MCLOH_AdrpLdr, MCLOH_AdrpLdrGot, MCLOH_AdrpLdrGotLdr, and MCLOH_AdrpLdrGotStr.
Referenced by incrementLoc(), and truncateToSize().
|
inlinestatic |
Definition at line 52 of file MCLinkerOptimizationHint.h.
References MCLOHCaseNameToId, and Name.
Referenced by incrementLoc().
|
inline |
Helper to compute and return lower 64 bits of the given string's MD5 hash.
Definition at line 109 of file MD5.h.
References llvm::MD5::final(), llvm::MD5::MD5Result::low(), and llvm::MD5::update().
Referenced by llvm::IndexedInstrProf::ComputeHash(), llvm::GlobalValue::getGUID(), llvm::sampleprof::SampleProfileReaderCompactBinary::readImpl(), and llvm::sampleprof::SampleProfileWriterCompactBinary::writeNameTable().
| void llvm::MergeBasicBlockIntoOnlyPred | ( | BasicBlock * | BB, |
| DomTreeUpdater * | DTU = nullptr |
||
| ) |
BB is a block with one predecessor and its predecessor is known to have one successor (BB!).
Eliminate the edge between them, moving the instructions in the predecessor into BB. This deletes the predecessor block.
Definition at line 670 of file Local.cpp.
References llvm::DomTreeUpdater::applyUpdatesPermissive(), assert(), llvm::BasicBlock::begin(), llvm::DominatorTreeBase< BasicBlock, false >::Delete, llvm::DomTreeUpdater::deleteBB(), llvm::Constant::destroyConstant(), E, llvm::Instruction::eraseFromParent(), llvm::BasicBlock::eraseFromParent(), find(), llvm::ConstantInt::get(), llvm::BlockAddress::get(), llvm::UndefValue::get(), llvm::BasicBlock::getContext(), llvm::Value::getContext(), llvm::Function::getEntryBlock(), llvm::BasicBlock::getInstList(), llvm::Type::getInt32Ty(), llvm::ConstantExpr::getIntToPtr(), llvm::BasicBlock::getParent(), llvm::BasicBlock::getSinglePredecessor(), llvm::BasicBlock::getTerminator(), llvm::Value::getType(), llvm::BasicBlock::hasAddressTaken(), llvm::DomTreeUpdater::hasDomTree(), I, llvm::DominatorTreeBase< BasicBlock, false >::Insert, llvm::BasicBlock::moveAfter(), pred_begin(), pred_end(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::DomTreeUpdater::recalculate(), llvm::Value::replaceAllUsesWith(), llvm::iplist_impl< IntrusiveListT, TraitsT >::splice(), succ_end(), and successors().
Referenced by llvm::JumpThreadingPass::MaybeMergeBasicBlockIntoOnlyPred(), and llvm::SimplifyCFGOptions::setAssumptionCache().
| bool llvm::MergeBlockIntoPredecessor | ( | BasicBlock * | BB, |
| DomTreeUpdater * | DTU = nullptr, |
||
| LoopInfo * | LI = nullptr, |
||
| MemorySSAUpdater * | MSSAU = nullptr, |
||
| MemoryDependenceResults * | MemDep = nullptr, |
||
| bool | PredecessorWithTwoSuccessors = false |
||
| ) |
Attempts to merge a block into its predecessor, if possible.
The return value indicates success or failure. By default do not merge blocks if BB's predecessor has multiple successors. If PredecessorWithTwoSuccessors = true, the blocks can only be merged if BB's Pred has a branch to BB and to AnotherBB, and BB has a single successor Sing. In this case the branch will be updated with Sing instead of BB, and BB will still be merged into its predecessor and removed.
Definition at line 171 of file BasicBlockUtils.cpp.
References dbgs(), llvm::DominatorTreeBase< BasicBlock, false >::Delete, dyn_cast(), E, find(), FoldSingleEntryPHINodes(), llvm::BasicBlock::front(), llvm::Value::getName(), getParent(), llvm::BranchInst::getSuccessor(), llvm::BasicBlock::getTerminator(), llvm::BasicBlock::getUniquePredecessor(), llvm::BasicBlock::getUniqueSuccessor(), llvm::BasicBlock::hasAddressTaken(), I, llvm::DominatorTreeBase< BasicBlock, false >::Insert, llvm::Instruction::isExceptionalTerminator(), llvm::BranchInst::isUnconditional(), LLVM_DEBUG, llvm::BasicBlock::phis(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), succ_begin(), succ_end(), succ_size(), and successors().
Referenced by createCodeGenPreparePass(), llvm::VPlan::execute(), isOnlyReachableViaThisEdge(), mergeBlocksIntoPredecessors(), removeUndefIntroducingPredecessor(), ReplaceUsesOfWith(), shouldRotateLoopExitingLatch(), UnrollAndJamLoop(), and UnrollLoop().
|
inline |
Definition at line 65 of file SampleProf.h.
References success.
Referenced by llvm::sampleprof::SampleRecord::merge(), llvm::sampleprof::FunctionSamples::merge(), and llvm::sampleprof::SampleProfileReaderText::readImpl().
|
inline |
Definition at line 210 of file MachineInstrBundle.h.
References llvm::MIBundleOperands::end(), llvm::MachineInstr::getParent(), and make_range().
Referenced by llvm::LiveIntervals::HMEditor::updateAllRanges().
| char * llvm::microsoftDemangle | ( | const char * | mangled_name, |
| char * | buf, | ||
| size_t * | n, | ||
| int * | status, | ||
| MSDemangleFlags | Flags = MSDF_None |
||
| ) |
Definition at line 2337 of file MicrosoftDemangle.cpp.
References D, demangle_invalid_mangled_name, demangle_memory_alloc_failure, demangle_success, llvm::ms_demangle::Demangler::dumpBackReferences(), llvm::ms_demangle::Demangler::Error, initializeOutputStream(), MSDF_DumpBackrefs, MSDF_NoAccessSpecifier, MSDF_NoCallingConvention, MSDF_NoMemberType, MSDF_NoReturnType, llvm::ms_demangle::OF_Default, llvm::ms_demangle::OF_NoAccessSpecifier, llvm::ms_demangle::OF_NoCallingConvention, llvm::ms_demangle::OF_NoMemberType, llvm::ms_demangle::OF_NoReturnType, llvm::ms_demangle::SymbolNode::output(), and llvm::ms_demangle::Demangler::parse().
Referenced by demangle(), and llvm::symbolize::LLVMSymbolizer::DemangleName().
|
inline |
A and B are either alignments or offsets.
Return the minimum alignment that may be assumed after adding the two together.
Definition at line 661 of file MathExtras.h.
References B.
Referenced by llvm::CCState::AllocateStack(), buildMUBUFOffsetLoadStore(), combineLoad(), combineStore(), commonAlignment(), llvm::InstructionSelector::executeMatchTable(), expandf64Toi32(), llvm::TargetLowering::expandUnalignedLoad(), llvm::TargetLowering::expandUnalignedStore(), ExtendUsesToFormExtLoad(), FixedPointIntrinsicToOpcode(), llvm::X86InstrInfo::foldMemoryOperandImpl(), llvm::MachineMemOperand::getAlignment(), getComparePred(), llvm::MachineFunction::getMachineMemOperand(), getMemcpyLoadsAndStores(), getMemsetValue(), getParamsForOneTrueMaskedElt(), llvm::AMDGPULegalizerInfo::getSegmentAperture(), getVectorCompareInfo(), llvm::MipsCallLowering::MipsHandler::handle(), llvm::CCState::HandleByVal(), hasUndefContents(), llvm::SelectionDAG::InferPtrAlignment(), isSwiftError(), isWordAligned(), llvm::R600TargetLowering::LowerFormalArguments(), llvm::SITargetLowering::LowerFormalArguments(), llvm::AMDGPUCallLowering::lowerFormalArgumentsKernel(), moveUp(), numVectorEltsOrZero(), llvm::PPCTargetLowering::PerformDAGCombine(), llvm::SIRegisterInfo::restoreSGPR(), scalarizeMaskedLoad(), scalarizeMaskedStore(), llvm::TargetLowering::scalarizeVectorLoad(), llvm::TargetLowering::scalarizeVectorStore(), scalarizeVectorStore(), llvm::SITargetLowering::shouldEmitPCReloc(), ShrinkLoadReplaceStoreWithStore(), llvm::SIRegisterInfo::spillSGPR(), splitStoreSplat(), llvm::AMDGPUTargetLowering::SplitVectorLoad(), llvm::AMDGPUTargetLowering::SplitVectorStore(), splitVectorStore(), SRAGlobal(), unpackLoadToAggregate(), unpackStoreToAggregate(), and widenCtPop().
Implements IEEE 754-2018 minimum semantics.
Returns the smaller of 2 arguments, propagating NaNs and treating -0 as less than +0.
Definition at line 1269 of file APFloat.h.
References B, llvm::APFloatBase::cmpLessThan, llvm::APFloat::compare(), llvm::APFloat::isNaN(), llvm::APFloat::isNegative(), llvm::APFloat::isZero(), and LLVM_READONLY.
Referenced by canConstantFoldCallTo(), cannotBeOrderedLessThanZeroImpl(), llvm::IRBuilderBase::CreateMinimum(), FixedPointIntrinsicToOpcode(), getOffsetFromIndices(), isTriviallyVectorizable(), simplifyBinaryIntrinsic(), llvm::InstCombiner::visitCallInst(), and visitFMinMax().
|
inline |
Gets the minimum value for a N-bit signed integer.
Definition at line 413 of file MathExtras.h.
References assert().
Referenced by isIntN(), and adjust::signed_width().
Implements IEEE minNum semantics.
Returns the smaller of the 2 arguments if both are not NaN. If either argument is a NaN, returns the other argument.
Definition at line 1247 of file APFloat.h.
References llvm::APFloatBase::cmpLessThan, llvm::APFloat::compare(), llvm::APFloat::isNaN(), and LLVM_READONLY.
Referenced by canConstantFoldCallTo(), cannotBeOrderedLessThanZeroImpl(), llvm::IRBuilderBase::CreateMinNum(), createPowWithIntegerExponent(), FixedPointIntrinsicToOpcode(), getIntrinsicForCallSite(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getIntrinsicInstrCost(), getOffsetFromIndices(), llvm::PPCTTIImpl::getUserCost(), isKnownNeverNaN(), isTriviallyVectorizable(), simplifyBinaryIntrinsic(), SimplifyNVVMIntrinsic(), llvm::InstCombiner::visitCallInst(), and visitFMinMax().
| void llvm::moveInstsBottomUp | ( | BasicBlock & | FromBB, |
| BasicBlock & | ToBB, | ||
| const DominatorTree & | DT, | ||
| const PostDominatorTree & | PDT, | ||
| DependenceInfo & | DI | ||
| ) |
Move instructions from FromBB bottom up to the beginning of ToBB when proven safe.
Definition at line 177 of file CodeMoverUtils.cpp.
References llvm::BasicBlock::getFirstNonPHIOrDbg(), I, isSafeToMoveBefore(), llvm::Instruction::moveBefore(), llvm::BasicBlock::rbegin(), and llvm::BasicBlock::rend().
| std::enable_if<std::is_signed<T>::value, T>::type llvm::MulOverflow | ( | T | X, |
| T | Y, | ||
| T & | Result | ||
| ) |
Multiply two signed integers, computing the two's complement truncated result, returning true if an overflow ocurred.
Definition at line 930 of file MathExtras.h.
Return true if speculation of the given load must be suppressed to avoid ordering or interfering with an active sanitizer.
If not suppressed, dereferenceability and alignment must be proven separately. Note: This is only needed for raw reasoning; if you use the interface below (isSafeToSpeculativelyExecute), this is handled internally.
Definition at line 4045 of file ValueTracking.cpp.
References F(), llvm::Instruction::getFunction(), llvm::Function::hasFnAttribute(), and llvm::LoadInst::isUnordered().
Referenced by llvm::LoopVectorizationLegality::blockNeedsPredication(), GetUnderlyingObject(), and isSafeToSpeculativelyExecute().
| bool llvm::mustTriggerUB | ( | const Instruction * | I, |
| const SmallSet< const Value *, 16 > & | KnownPoison | ||
| ) |
Return true if the given instruction must trigger undefined behavior.
when I is executed with any operands which appear in KnownPoison holding a full-poison value at the point of execution.
Definition at line 4559 of file ValueTracking.cpp.
References llvm::SmallSet< T, N, C >::count(), and getGuaranteedNonFullPoisonOp().
Referenced by mustExecuteUBIfPoisonOnPathTo().
Rename all the anon globals in the module using a hash computed from the list of public globals in the module.
Definition at line 65 of file NameAnonGlobals.cpp.
References llvm::Module::aliases(), count(), and llvm::Module::global_objects().
Referenced by llvm::NameAnonGlobalPass::run().
Check if we can use Comdat for profile variables.
This will eliminate the duplicated profile variables for Comdat functions.
Definition at line 1044 of file InstrProf.cpp.
References llvm::GlobalValue::AvailableExternallyLinkage, llvm::GlobalValue::ExternalWeakLinkage, llvm::GlobalValue::getLinkage(), llvm::Module::getTargetTriple(), and llvm::GlobalObject::hasComdat().
Referenced by canRenameComdatFunc(), getPGOFuncNameMetadataName(), and needsRuntimeRegistrationOfSectionRange().
Returns the negated value of the argument.
Definition at line 1239 of file APFloat.h.
References llvm::APFloat::changeSign(), LLVM_READONLY, and X.
Referenced by branchMaxOffsets(), ConstantFoldUnaryInstruction(), and llvm::TargetLowering::isNegatibleForFree().
|
inline |
Returns the next power of two (in 64-bits) that is strictly greater than A.
Returns zero on overflow.
Definition at line 672 of file MathExtras.h.
Referenced by annotateNonNullAndDereferenceable(), combineWeightsByHashing(), computeMinimumValueSizes(), llvm::slpvectorizer::BoUpSLP::computeMinimumValueSizes(), computeRecurrenceType(), llvm::OnDiskChainedHashTableGenerator< Info >::Emit(), llvm::MemoryDependenceResults::getLoadLoadClobberFullWidthSize(), llvm::VNCoercion::getLoadValueForLoad(), getMinBucketToReserveForEntries(), llvm::DenseMapBase< DenseMap< const llvm::SCEV *, const llvm::SCEV *, DenseMapInfo< const llvm::SCEV *>, llvm::detail::DenseMapPair< const llvm::SCEV *, const llvm::SCEV *> >, const llvm::SCEV *, const llvm::SCEV *, DenseMapInfo< const llvm::SCEV *>, llvm::detail::DenseMapPair< const llvm::SCEV *, const llvm::SCEV *> >::getMinBucketToReserveForEntries(), getShiftAmount(), llvm::TargetLoweringBase::getVectorTypeBreakdown(), getVectorTypeBreakdownMVT(), llvm::SmallVectorTemplateBase< T >::grow(), llvm::DenseMap< unsigned, unsigned >::grow(), llvm::SmallDenseMap< unsigned, unsigned, N >::grow(), isKnownTypeIdMember(), llvm::LegalizerHelper::lower(), llvm::BitmaskEnumDetail::Mask(), operator new(), PowerOf2Ceil(), llvm::detail::IEEEFloat::roundToIntegral(), llvm::TargetLoweringBase::setJumpIsExpensive(), llvm::TargetLowering::ShrinkDemandedOp(), ShrinkLoadReplaceStoreWithStore(), llvm::SmallDenseMap< unsigned, unsigned, N >::SmallDenseMap(), SwitchToLookupTable(), llvm::WebAssemblyTargetLowering::WebAssemblyTargetLowering(), and llvm::SelectionDAG::WidenVector().
| iterator_range<typename GraphTraits<GraphType>::nodes_iterator> llvm::nodes | ( | const GraphType & | G | ) |
Definition at line 108 of file GraphTraits.h.
References make_range().
Referenced by llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::FindRoots(), FunctionNumber(), and okayForPHIOfOps().
| bool llvm::none_of | ( | R && | Range, |
| UnaryPredicate | P | ||
| ) |
Provide wrappers to std::none_of which take ranges instead of having to pass begin/end explicitly.
Definition at line 1196 of file STLExtras.h.
References adl_begin(), and adl_end().
Referenced by llvm::DbgVariable::addMMIEntry(), llvm::SIScheduleBlock::addPred(), llvm::SIScheduleBlock::addSucc(), llvm::DIExpression::appendToStack(), collectRegDefs(), llvm::CodeExtractor::extractCodeRegion(), foldShuffleWithInsert(), llvm::AttributeList::get(), llvm::InsertPointAnalysis::InsertPointAnalysis(), IsNonLocalValue(), isPointerValueDeadOnEntryToFunction(), isVariableIndexable(), lowerV16I8Shuffle(), llvm::SelectionDAG::matchBinOpReduction(), optimizeVcndVcmpPair(), resolveTargetShuffleInputsAndMask(), llvm::MachineInstr::setPhysRegsDeadExcept(), stashEntryDbgValues(), stripDebugLocFromLoopID(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::UpdateRootsAfterUpdate(), upgradeInstructionLoopAttachment(), and wrapConstantAsMetadata().
| const SCEV * llvm::normalizeForPostIncUse | ( | const SCEV * | S, |
| const PostIncLoopSet & | Loops, | ||
| ScalarEvolution & | SE | ||
| ) |
Normalize S to be post-increment for all loops present in Loops.
Definition at line 96 of file ScalarEvolutionNormalization.cpp.
References llvm::SmallPtrSetImpl< PtrType >::count(), llvm::SCEVAddRecExpr::getLoop(), and Normalize.
Referenced by canFoldIVIncExpr(), llvm::IVUsers::getExpr(), and IsIncrementNUW().
| const SCEV * llvm::normalizeForPostIncUseIf | ( | const SCEV * | S, |
| NormalizePredTy | Pred, | ||
| ScalarEvolution & | SE | ||
| ) |
Normalize S for all add recurrence sub-expressions for which Pred returns true.
Definition at line 105 of file ScalarEvolutionNormalization.cpp.
References Normalize.
Referenced by llvm::IVUsers::AddUsersImpl().
|
inlinestatic |
Normalize the spill weight of a live interval.
The spill weight of a live interval is computed as:
(sum(use freq) + sum(def freq)) / (K + size)
| UseDefFreq | Expected number of executed use and def instructions per function call. Derived from block frequencies. |
| Size | Size of live interval as returnexd by getSize() |
| NumInstr | Number of instructions using this live interval |
Definition at line 34 of file CalcSpillWeights.h.
References llvm::SlotIndex::InstrDist.
Referenced by getNumAllocatableRegsForConstraints(), normalizePBQPSpillWeight(), and llvm::VirtRegAuxInfo::VirtRegAuxInfo().
Check whether null pointer dereferencing is considered undefined behavior for a given function or an address space.
Null pointer access in non-zero address space is not considered undefined. Return value: false => null pointer dereference is undefined. Return value: true => null pointer dereference is not undefined.
Definition at line 1628 of file Function.cpp.
References llvm::Function::nullPointerIsDefined().
Referenced by AllUsesOfValueWillTrapIfNull(), annotateAnyAllocSite(), annotateDereferenceableBytes(), annotateNonNullBasedOnAccess(), canConstantFoldCallTo(), canSimplifyNullLoadOrGEP(), canSimplifyNullStoreOrGEP(), llvm::Function::classof(), computePointerICmp(), ConstantFoldCompareInstruction(), evaluateICmpRelation(), llvm::IRPosition::getAttrs(), getPointerSize(), getPtrStride(), llvm::Argument::hasNonNullAttr(), isGEPKnownNonNull(), isKnownNonNullFromDominatingCondition(), isNoWrap(), isObjectDereferencedInBlock(), llvm::CallSiteBase< Function, BasicBlock, Value, User, Use, Instruction, CallInst, InvokeInst, CallBrInst, User::op_iterator >::isReturnNonNull(), llvm::CallBase::isReturnNonNull(), markAliveBlocks(), MergeAliasResults(), OptimizeAwayTrappingUsesOfValue(), optimizeOnceStoredGlobal(), passingValueIsAlwaysUndefined(), and llvm::InstCombiner::visitLoadInst().
| raw_ostream & llvm::nulls | ( | ) |
This returns a reference to a raw_ostream which simply discards output.
nulls() - This returns a reference to a raw_ostream which discards output.
Definition at line 889 of file raw_ostream.cpp.
Referenced by llvm::raw_fd_ostream::clear_error(), llvm::DWARFFormValue::dump(), llvm::RuntimeDyldCheckerExprEval::evaluate(), llvm::MCStreamer::GetCommentOS(), and LLVMParseCommandLineOptions().
Returns the necessary adjustment for aligning Addr to Alignment bytes, rounding up.
Definition at line 199 of file Alignment.h.
References offsetToAlignment().
Referenced by llvm::BumpPtrAllocatorImpl< MallocAllocator, 65536 >::Allocate(), and loadTestingFormat().
|
inline |
Returns the offset to the next integer (mod 2**64) that is greater than or equal to Value and is a multiple of Align.
Definition at line 193 of file Alignment.h.
References alignTo().
Referenced by CompareMBBNumbers(), llvm::MCAssembler::computeFragmentSize(), computeMemberData(), computeStringTable(), covertDoubleImmToSingleImm(), llvm::RuntimeDyldImpl::emitCommonSymbols(), llvm::MachObjectWriter::getPaddingSize(), INITIALIZE_PASS(), needPadding(), needsExpandMemInst(), offsetToAlignedAddr(), printBSDMemberHeader(), llvm::MachObjectWriter::writeObject(), and writeSymbolTable().
Return true if the only users of this pointer are lifetime markers.
Definition at line 4034 of file ValueTracking.cpp.
References dyn_cast(), llvm::Instruction::isLifetimeStartOrEnd(), and llvm::Value::users().
Referenced by GetUnderlyingObject(), and isAllocaPromotable().
| ChangeStatus llvm::operator& | ( | ChangeStatus | l, |
| ChangeStatus | r | ||
| ) |
|
inline |
Definition at line 174 of file JITSymbol.h.
|
inline |
Definition at line 682 of file SmallBitVector.h.
|
inline |
Definition at line 858 of file SparseBitVector.h.
Definition at line 2036 of file APInt.h.
Referenced by operator|().
|
inline |
Definition at line 37 of file DWARFLocationExpression.h.
References operator<<().
|
inline |
Definition at line 52 of file MachineLocation.h.
|
inline |
Definition at line 154 of file DWARFExpression.h.
|
inline |
Definition at line 202 of file IntrusiveRefCntPtr.h.
References llvm::IntrusiveRefCntPtr< T >::get().
|
inline |
Definition at line 213 of file IntrusiveRefCntPtr.h.
References B, and llvm::IntrusiveRefCntPtr< T >::get().
|
inline |
Definition at line 223 of file IntrusiveRefCntPtr.h.
References llvm::IntrusiveRefCntPtr< T >::get().
| bool llvm::operator!= | ( | std::nullptr_t | A, |
| const IntrusiveRefCntPtr< T > & | B | ||
| ) |
Definition at line 238 of file IntrusiveRefCntPtr.h.
References B.
| bool llvm::operator!= | ( | const IntrusiveRefCntPtr< T > & | A, |
| std::nullptr_t | B | ||
| ) |
Definition at line 243 of file IntrusiveRefCntPtr.h.
References B.
Definition at line 244 of file ModuleSummaryIndex.h.
References assert(), and llvm::ValueInfo::getRef().
| bool llvm::operator!= | ( | PointerUnion< PTs... > | lhs, |
| PointerUnion< PTs... > | rhs | ||
| ) |
Definition at line 248 of file PointerUnion.h.
References llvm::PointerUnion< PTs >::getOpaqueValue().
Definition at line 256 of file Alignment.h.
References ALIGN_CHECK_ISPOSITIVE, and llvm::Align::value().
| bool llvm::operator!= | ( | const SmallSet< T, LN, C > & | LHS, |
| const SmallSet< T, RN, C > & | RHS | ||
| ) |
Inequality comparison for SmallSet.
Equivalent to !(LHS == RHS). See operator== for performance notes.
Definition at line 272 of file SmallSet.h.
|
inline |
Definition at line 281 of file Alignment.h.
| bool llvm::operator!= | ( | const Optional< T > & | X, |
| const Optional< U > & | Y | ||
| ) |
Definition at line 305 of file Optional.h.
References Y.
Definition at line 309 of file Alignment.h.
|
inline |
Definition at line 322 of file DWARFDie.h.
|
inline |
Definition at line 330 of file Alignment.h.
References ALIGN_CHECK_ISSET, and llvm::Align::value().
Definition at line 332 of file DWARFDie.h.
Definition at line 342 of file Optional.h.
References None.
Definition at line 347 of file Optional.h.
References None.
|
inline |
Definition at line 356 of file Alignment.h.
References ALIGN_CHECK_ISSET, and llvm::Align::value().
|
inline |
Definition at line 372 of file DWARFDie.h.
Definition at line 391 of file Optional.h.
References Y.
Definition at line 395 of file Optional.h.
References Y.
| bool llvm::operator!= | ( | const SmallPtrSetImpl< PtrType > & | LHS, |
| const SmallPtrSetImpl< PtrType > & | RHS | ||
| ) |
Inequality comparison for SmallPtrSet.
Equivalent to !(LHS == RHS).
Definition at line 433 of file SmallPtrSet.h.
|
inline |
Definition at line 458 of file DWARFDie.h.
Definition at line 538 of file ArrayRef.h.
| bool llvm::operator!= | ( | const DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT > & | LHS, |
| const DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT > & | RHS | ||
| ) |
Inequality comparison for DenseMap.
Equivalent to !(LHS == RHS). See operator== for performance notes.
Definition at line 675 of file DenseMap.h.
Definition at line 892 of file StringRef.h.
Definition at line 2026 of file APInt.h.
Referenced by adjustDown(), llvm::BasicAAResult::BasicAAResult(), createRdxShuffleMask(), llvm::rdf::DataFlowGraph::DefStack::empty(), llvm::HexagonBlockRanges::IndexType::isInstr(), isKnownBaseResult(), numVectorEltsOrZero(), and llvm::RegBankSelect::RepairingPlacement::switchTo().
|
inline |
Definition at line 834 of file SparseBitVector.h.
|
inline |
Definition at line 840 of file SparseBitVector.h.
Definition at line 2148 of file APInt.h.
Referenced by llvm::GVNExpression::Expression::dump(), llvm::rdf::DataFlowGraph::DefStack::empty(), llvm::MVT::getVectorVT(), llvm::Optional< uint64_t >::map(), llvm::Module::debug_compile_units_iterator::operator!=(), llvm::RegionBase< Tr >::block_iterator_wrapper< IsConst >::operator*(), llvm::ilist_iterator< OptionsT, IsReverse, IsConst >::operator->(), llvm::MachineInstrBundleIterator< const MachineInstr >::operator->(), llvm::AliasSet::iterator::operator->(), llvm::SparseMultiSet< ValueT, KeyFunctorT, SparseT >::iterator_base< SMSPtrTy >::operator->(), llvm::EquivalenceClasses< ElemTy >::member_iterator::operator->(), llvm::ValueMapIterator< DenseMapT, KeyT >::operator->(), llvm::ValueMapConstIterator< DenseMapT, KeyT >::operator->(), llvm::SUnitIterator::operator->(), llvm::TargetRegistry::iterator::operator->(), llvm::SDNode::use_iterator::operator->(), llvm::MachineRegisterInfo::defusechain_instr_iterator< ReturnUses, ReturnDefs, SkipDebug, ByOperand, ByInstr, ByBundle >::operator->(), llvm::SDNodeIterator::operator->(), llvm::BranchInst::succ_op_iterator::operator->(), llvm::BranchInst::const_succ_op_iterator::operator->(), llvm::IndirectBrInst::succ_op_iterator::operator->(), llvm::IndirectBrInst::const_succ_op_iterator::operator->(), llvm::APInt::operator<<=(), and sinkLastInstruction().
Definition at line 517 of file Twine.h.
References llvm::Twine::concat().
Additional overload to guarantee simplified codegen; this is equivalent to concat().
Definition at line 524 of file Twine.h.
References llvm::Twine::Twine().
Additional overload to guarantee simplified codegen; this is equivalent to concat().
Definition at line 531 of file Twine.h.
References llvm::Twine::Twine().
|
inline |
Definition at line 910 of file StringRef.h.
References llvm::StringRef::data(), hash_value(), LLVM_NODISCARD, and llvm::StringRef::size().
Referenced by llvm::mca::ResourceCycles::getDenominator(), numVectorEltsOrZero(), llvm::SuccIterator< InstructionT, BlockT >::operator-=(), and llvm::APInt::operator^=().
Definition at line 2101 of file APInt.h.
References llvm::APInt::negate().
Referenced by llvm::sys::path::const_iterator::operator*(), and llvm::sys::path::reverse_iterator::operator*().
|
inline |
Definition at line 867 of file SparseBitVector.h.
References llvm::SparseBitVector< ElementSize >::intersectWithComplement().
Definition at line 2131 of file APInt.h.
References llvm::APInt::negate().
Definition at line 2142 of file APInt.h.
References llvm::APInt::negate().
Definition at line 377 of file Alignment.h.
References llvm::Align::Align(), assert(), isPowerOf2_64(), and llvm::Align::value().
|
inline |
Definition at line 384 of file Alignment.h.
References assert(), llvm::Optional< T >::getValue(), isPowerOf2_64(), and llvm::Align::MaybeAlign.
|
delete |
|
inline |
Definition at line 52 of file DWARFAddressRange.h.
References llvm::DWARFAddressRange::HighPC, and llvm::DWARFAddressRange::LowPC.
|
delete |
|
inline |
Compare two fragments based on their offset.
Definition at line 208 of file DebugLocEntry.h.
References llvm::DbgValueLoc::getExpression(), and llvm::DIExpression::getFragmentInfo().
Definition at line 250 of file ModuleSummaryIndex.h.
References assert(), llvm::ValueInfo::getGUID(), and llvm::ValueInfo::getRef().
| bool llvm::operator< | ( | PointerUnion< PTs... > | lhs, |
| PointerUnion< PTs... > | rhs | ||
| ) |
Definition at line 253 of file PointerUnion.h.
References llvm::PointerUnion< PTs >::getOpaqueValue().
Definition at line 268 of file Alignment.h.
References ALIGN_CHECK_ISPOSITIVE, and llvm::Align::value().
|
inline |
Definition at line 294 of file Alignment.h.
References ALIGN_CHECK_ISPOSITIVE, and ALIGN_CHECK_ISSET.
| bool llvm::operator< | ( | const Optional< T > & | X, |
| const Optional< U > & | Y | ||
| ) |
Definition at line 310 of file Optional.h.
References Y.
Definition at line 318 of file Alignment.h.
|
inlinestatic |
Definition at line 329 of file DWARFVerifier.h.
References llvm::DWARFVerifier::DieRangeInfo::Die, and llvm::DWARFVerifier::DieRangeInfo::Ranges.
Definition at line 336 of file DWARFDie.h.
References llvm::DWARFDie::getOffset().
|
inline |
Definition at line 342 of file Alignment.h.
References ALIGN_CHECK_ISSET, and llvm::Align::value().
Definition at line 343 of file APSInt.h.
Referenced by adjustDown(), GetAnyNonZeroConstInt(), getCIEVersion(), llvm::DbgValueLoc::getExpression(), isRegOtherThanSPAndFP(), numVectorEltsOrZero(), llvm::FoldingSetNodeIDRef::operator!=(), llvm::FoldingSetNodeID::operator!=(), llvm::SelectionDAG::ReplaceAllUsesOfValueWith(), llvm::ScheduleDAGMILive::scheduleMI(), selectI64Imm(), llvm::RegBankSelect::RepairingPlacement::switchTo(), and llvm::VirtRegAuxInfo::weightCalcHelper().
Definition at line 351 of file Optional.h.
Definition at line 355 of file Optional.h.
|
inline |
Definition at line 368 of file Alignment.h.
References ALIGN_CHECK_ISSET, and llvm::Align::value().
Definition at line 399 of file Optional.h.
References Y.
Definition at line 403 of file Optional.h.
References Y.
Definition at line 894 of file StringRef.h.
References llvm::StringRef::compare().
|
inline |
Definition at line 911 of file LiveInterval.h.
References llvm::LiveRange::Segment::start.
|
inline |
Definition at line 915 of file LiveInterval.h.
References llvm::LiveRange::Segment::start.
|
inline |
Definition at line 2599 of file DebugInfoMetadata.h.
References llvm::DIExpression::FragmentInfo::OffsetInBits, and llvm::DIExpression::FragmentInfo::SizeInBits.
| raw_ostream& llvm::operator<< | ( | raw_ostream & | OS, |
| const MachineMemOperand & | MMO | ||
| ) |
| raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
| const PseudoSourceValue * | PSV | ||
| ) |
Definition at line 1021 of file ScheduleDAGInstrs.cpp.
| raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
| const DWARFLocationExpression & | Loc | ||
| ) |
|
inline |
Definition at line 44 of file Printable.h.
References llvm::Printable::Print.
|
inline |
Definition at line 49 of file MCLabel.h.
References llvm::MCLabel::print().
|
inline |
Definition at line 56 of file MachineConstantPool.h.
References llvm::MachineConstantPoolValue::print().
| MCStreamer & llvm::operator<< | ( | MCStreamer & | OS, |
| MipsABIFlagsSection & | ABIFlagsSection | ||
| ) |
Definition at line 58 of file MipsABIFlagsSection.cpp.
References llvm::MCStreamer::EmitIntValue(), llvm::MipsABIFlagsSection::getASESetValue(), llvm::MipsABIFlagsSection::getCPR1SizeValue(), llvm::MipsABIFlagsSection::getCPR2SizeValue(), llvm::MipsABIFlagsSection::getFlags1Value(), llvm::MipsABIFlagsSection::getFlags2Value(), llvm::MipsABIFlagsSection::getFpABIValue(), llvm::MipsABIFlagsSection::getGPRSizeValue(), llvm::MipsABIFlagsSection::getISAExtensionValue(), llvm::MipsABIFlagsSection::getISALevelValue(), llvm::MipsABIFlagsSection::getISARevisionValue(), and llvm::MipsABIFlagsSection::getVersionValue().
| raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
| const HexNumber & | Value | ||
| ) |
Definition at line 10 of file ScopedPrinter.cpp.
References to_hexString(), and llvm::HexNumber::Value.
| raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
| sys::TimePoint<> | TP | ||
| ) |
Definition at line 43 of file Chrono.cpp.
References count(), llvm::StringRef::empty(), llvm::raw_ostream::flush(), format(), getStructTM(), I, llvm::AArch64CC::LT, llvm::StringRef::size(), and T.
| raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
| const DWARFAddressRange & | R | ||
| ) |
Definition at line 29 of file DWARFAddressRange.cpp.
References llvm::DWARFAddressRange::dump().
|
inline |
| llvm::raw_ostream & llvm::operator<< | ( | llvm::raw_ostream & | O, |
| const llvm::Annotations::Range & | R | ||
| ) |
Definition at line 92 of file Annotations.cpp.
References llvm::Annotations::Range::Begin, llvm::Annotations::Range::End, and formatv().
|
inline |
Definition at line 92 of file AMDGPUArgumentUsageInfo.h.
References llvm::ArgDescriptor::print().
|
inline |
Definition at line 92 of file RegisterBank.h.
References llvm::RegisterBank::print().
|
inline |
Definition at line 92 of file MCParsedAsmOperand.h.
References llvm::MCParsedAsmOperand::print().
| raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
| AliasResult | AR | ||
| ) |
<< operator for AliasResult.
Definition at line 411 of file AliasAnalysis.cpp.
References MayAlias, MustAlias, NoAlias, and PartialAlias.
|
inline |
Definition at line 94 of file Record.h.
References llvm::RecTy::print().
| raw_ostream& llvm::operator<< | ( | raw_ostream & | OS, |
| LegalizeActions::LegalizeAction | Action | ||
| ) |
| raw_ostream& llvm::operator<< | ( | raw_ostream & | OS, |
| const BT::BitValue & | BV | ||
| ) |
Definition at line 97 of file BitTracker.cpp.
References llvm::BitTracker::BitValue::One, llvm::BitTracker::BitRef::Pos, llvm::BitTracker::BitValue::Ref, llvm::BitTracker::BitValue::RefI, llvm::BitTracker::BitRef::Reg, llvm::BitTracker::BitValue::Top, llvm::BitTracker::BitValue::Type, and llvm::BitTracker::BitValue::Zero.
| raw_ostream& llvm::operator<< | ( | raw_ostream & | OS, |
| const BT::RegisterCell & | RC | ||
| ) |
Definition at line 115 of file BitTracker.cpp.
References llvm::SmallVectorBase::size().
| raw_ostream& llvm::operator<< | ( | raw_ostream & | OS, |
| const WebAssemblyException & | WE | ||
| ) |
Definition at line 178 of file WebAssemblyExceptionInfo.cpp.
References llvm::WebAssemblyException::print().
|
inline |
Definition at line 125 of file MCExpr.h.
References llvm::MCExpr::print().
| raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
| const VPValue & | V | ||
| ) |
Definition at line 51 of file VPlan.cpp.
References llvm::VPValue::printAsOperand().
|
inline |
Definition at line 136 of file ARMConstantPoolValue.h.
References llvm::RISCVFenceField::O, and llvm::ARMConstantPoolValue::print().
| raw_ostream & llvm::operator<< | ( | raw_ostream & | Out, |
| const VersionTuple & | V | ||
| ) |
Print a version number.
Definition at line 27 of file VersionTuple.cpp.
References llvm::VersionTuple::getBuild(), llvm::VersionTuple::getMajor(), llvm::VersionTuple::getMinor(), and llvm::VersionTuple::getSubminor().
|
inline |
Definition at line 160 of file MemoryLocation.h.
References llvm::LocationSize::print().
|
inline |
Definition at line 162 of file Metadata.h.
References llvm::Metadata::print().
| raw_ostream& llvm::operator<< | ( | raw_ostream & | O, |
| const DomTreeNodeBase< NodeT > * | Node | ||
| ) |
Definition at line 167 of file GenericDomTree.h.
|
inline |
Definition at line 170 of file LivePhysRegs.h.
References llvm::LivePhysRegs::addLiveIns(), computeAndAddLiveIns(), computeLiveIns(), llvm::LivePhysRegs::print(), and recomputeLivenessFlags().
|
inline |
Definition at line 180 of file ScalarEvolution.h.
References llvm::SCEV::print().
|
inline |
Definition at line 183 of file VirtRegMap.h.
References llvm::VirtRegMap::print().
| LLVM_DUMP_METHOD raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
| const ILPValue & | Val | ||
| ) |
Definition at line 1518 of file ScheduleDAGInstrs.cpp.
References llvm::ILPValue::print().
| llvm::raw_ostream& llvm::operator<< | ( | llvm::raw_ostream & | OS, |
| const GUID & | G | ||
| ) |
Definition at line 192 of file DIARawSymbol.cpp.
References llvm::codeview::detail::GuidAdapter::format().
|
inline |
Definition at line 200 of file BranchProbability.h.
References llvm::BranchProbability::print().
| raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
| const FaultMapParser::FunctionFaultInfoAccessor & | FFI | ||
| ) |
Definition at line 119 of file FaultMaps.cpp.
References llvm::FaultMaps::faultTypeToString(), llvm::FaultMapParser::FunctionFaultInfoAccessor::getFaultingPCOffset(), llvm::FaultMapParser::FunctionFaultInfoAccessor::getFaultKind(), llvm::FaultMapParser::FunctionFaultInfoAccessor::getHandlerPCOffset(), and operator<<().
| raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
| const FaultMapParser::FunctionInfoAccessor & | FI | ||
| ) |
|
inline |
Definition at line 214 of file MCInst.h.
References llvm::MCOperand::print().
| raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
| const FaultMapParser & | FMP | ||
| ) |
|
inline |
Definition at line 219 of file MCInst.h.
References llvm::MCInst::print().
|
inline |
Definition at line 231 of file ModuleSummaryIndex.h.
References llvm::StringRef::empty(), llvm::ValueInfo::getGUID(), and llvm::ValueInfo::name().
| raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
| HexagonBlockRanges::IndexType | Idx | ||
| ) |
Definition at line 493 of file HexagonBlockRanges.cpp.
References llvm::HexagonBlockRanges::IndexType::Entry, llvm::HexagonBlockRanges::IndexType::Exit, llvm::HexagonBlockRanges::IndexType::First, and llvm::HexagonBlockRanges::IndexType::None.
| raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
| const HexagonBlockRanges::IndexRange & | IR | ||
| ) |
Definition at line 505 of file HexagonBlockRanges.cpp.
References llvm::HexagonBlockRanges::IndexRange::end(), llvm::HexagonBlockRanges::IndexRange::Fixed, llvm::HexagonBlockRanges::IndexRange::start(), and llvm::HexagonBlockRanges::IndexRange::TiedEnd.
|
inline |
Definition at line 236 of file MemorySSA.h.
References llvm::MemoryAccess::print().
| raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
| const HexagonBlockRanges::RangeList & | RL | ||
| ) |
Definition at line 513 of file HexagonBlockRanges.cpp.
|
inline |
Definition at line 239 of file ScalarEvolution.h.
References llvm::SCEVPredicate::print().
| raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
| const HexagonBlockRanges::InstrIndexMap & | M | ||
| ) |
Definition at line 520 of file HexagonBlockRanges.cpp.
References llvm::HexagonBlockRanges::InstrIndexMap::getIndex(), llvm::tgtok::In, and llvm::HexagonBlockRanges::InstrIndexMap::Last.
| raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
| const HexagonBlockRanges::PrintRangeMap & | P | ||
| ) |
Definition at line 529 of file HexagonBlockRanges.cpp.
References I, and printReg().
| raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
| const IndexedReference & | R | ||
| ) |
Definition at line 111 of file LoopCacheAnalysis.cpp.
References Size.
| raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
| const CacheCost & | CC | ||
| ) |
Definition at line 447 of file LoopCacheAnalysis.cpp.
References llvm::Loop::getName().
|
inline |
Definition at line 277 of file LowLevelTypeImpl.h.
References llvm::LLT::print().
| raw_ostream& llvm::operator<< | ( | raw_ostream & | OS, |
| const MCFixup & | AF | ||
| ) |
Definition at line 300 of file MCFragment.cpp.
References llvm::MCFixup::getKind(), llvm::MCFixup::getOffset(), and llvm::MCFixup::getValue().
|
inline |
Definition at line 304 of file SlotIndexes.h.
References llvm::SlotIndex::print().
| raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
| const ValueLatticeElement & | Val | ||
| ) |
Definition at line 12 of file ValueLattice.cpp.
References llvm::ValueLatticeElement::getConstant(), llvm::ValueLatticeElement::getConstantRange(), llvm::ConstantRange::getLower(), llvm::ValueLatticeElement::getNotConstant(), llvm::ConstantRange::getUpper(), llvm::ValueLatticeElement::isConstantRange(), llvm::ValueLatticeElement::isNotConstant(), llvm::ValueLatticeElement::isOverdefined(), and llvm::ValueLatticeElement::isUndefined().
|
inline |
Definition at line 323 of file AliasSetTracker.h.
References llvm::AliasSet::print().
|
inline |
Definition at line 346 of file APSInt.h.
References llvm::APSInt::isSigned(), and llvm::APInt::print().
|
inline |
Definition at line 350 of file Wasm.h.
References llvm::object::WasmSymbol::print().
| std::enable_if<!std::is_reference<OStream>::value && std::is_base_of<raw_ostream, OStream>::value, OStream &&>::type llvm::operator<< | ( | OStream && | OS, |
| const T & | Value | ||
| ) |
Call the appropriate insertion operator, given an rvalue reference to a raw_ostream object and return a stream of the same type as the argument.
Definition at line 364 of file raw_ostream.h.
| raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
| const DDGNode & | N | ||
| ) |
Definition at line 77 of file DDG.cpp.
References E, llvm::SetVector< T, Vector, Set >::empty(), llvm::DGNode< NodeType, EdgeType >::getEdges(), llvm::DDGNode::getKind(), I, llvm::raw_ostream::indent(), llvm_unreachable, and N.
| raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
| const DDGNode::NodeKind | K | ||
| ) |
Definition at line 54 of file DDG.cpp.
References llvm::DDGNode::MultiInstruction, llvm::DDGNode::PiBlock, llvm::DDGNode::Root, llvm::DDGNode::SingleInstruction, and llvm::DDGNode::Unknown.
| raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
| const DDGEdge & | E | ||
| ) |
Definition at line 172 of file DDG.cpp.
References llvm::DDGEdge::getKind(), and llvm::DGEdge< NodeType, EdgeType >::getTargetNode().
| raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
| const DDGEdge::EdgeKind | K | ||
| ) |
Definition at line 152 of file DDG.cpp.
References llvm::DDGEdge::MemoryDependence, llvm::DDGEdge::RegisterDefUse, llvm::DDGEdge::Rooted, and llvm::DDGEdge::Unknown.
| raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
| const DataDependenceGraph & | G | ||
| ) |
| ScaledNumber<DigitsT> llvm::operator<< | ( | const ScaledNumber< DigitsT > & | L, |
| int16_t | Shift | ||
| ) |
Definition at line 730 of file ScaledNumber.h.
|
inline |
Definition at line 419 of file Record.h.
References llvm::Init::print().
|
inline |
Definition at line 421 of file MachineTraceMetrics.h.
References llvm::MachineTraceMetrics::Trace::print().
|
inline |
Definition at line 426 of file MCSymbol.h.
References llvm::MCSymbol::print().
|
inline |
Definition at line 427 of file MachineTraceMetrics.h.
References llvm::MachineTraceMetrics::Ensemble::print().
| llvm::raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
| NoneType | |||
| ) |
Definition at line 12 of file Optional.cpp.
| raw_ostream& llvm::operator<< | ( | raw_ostream & | OS, |
| const Optional< T > & | O | ||
| ) |
Definition at line 435 of file Optional.h.
|
inline |
Definition at line 460 of file AliasSetTracker.h.
References llvm::AliasSetTracker::print().
|
inline |
Definition at line 471 of file Type.h.
References llvm::Type::print().
|
inline |
Definition at line 493 of file ConstantRange.h.
References getConstantRangeFromMetadata(), and llvm::ConstantRange::print().
| raw_ostream& llvm::operator<< | ( | raw_ostream & | OS, |
| const LoopBase< BlockT, LoopT > & | Loop | ||
| ) |
Definition at line 499 of file LoopInfo.h.
References llvm::LoopBase< BlockT, LoopT >::print().
| RemarkT& llvm::operator<< | ( | RemarkT & | R, |
| typename std::enable_if< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, StringRef >::type | S | ||
| ) |
Allow the insertion operator to return the actual remark type rather than a common base class.
This allows returning the result of the insertion directly by value, e.g. return OptimizationRemarkAnalysis(...) << "blah".
Definition at line 533 of file DiagnosticInfo.h.
|
inline |
Definition at line 535 of file Twine.h.
References llvm::Twine::print().
| RemarkT& llvm::operator<< | ( | RemarkT && | R, |
| typename std::enable_if< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, StringRef >::type | S | ||
| ) |
Also allow r-value for the remark to allow insertion into a temporarily-constructed remark.
Definition at line 545 of file DiagnosticInfo.h.
| RemarkT& llvm::operator<< | ( | RemarkT & | R, |
| typename std::enable_if< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, DiagnosticInfoOptimizationBase::Argument >::type | A | ||
| ) |
Definition at line 555 of file DiagnosticInfo.h.
| RemarkT& llvm::operator<< | ( | RemarkT && | R, |
| typename std::enable_if< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, DiagnosticInfoOptimizationBase::Argument >::type | A | ||
| ) |
Definition at line 565 of file DiagnosticInfo.h.
| RemarkT& llvm::operator<< | ( | RemarkT & | R, |
| typename std::enable_if< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, DiagnosticInfoOptimizationBase::setIsVerbose >::type | V | ||
| ) |
Definition at line 575 of file DiagnosticInfo.h.
| RemarkT& llvm::operator<< | ( | RemarkT && | R, |
| typename std::enable_if< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, DiagnosticInfoOptimizationBase::setIsVerbose >::type | V | ||
| ) |
Definition at line 585 of file DiagnosticInfo.h.
| RemarkT& llvm::operator<< | ( | RemarkT & | R, |
| typename std::enable_if< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, DiagnosticInfoOptimizationBase::setExtraArgs >::type | EA | ||
| ) |
Definition at line 595 of file DiagnosticInfo.h.
|
inline |
Print a RegionNode.
Definition at line 1015 of file RegionInfo.h.
References getName(), and llvm::RegionNodeBase< Tr >::isSubRegion().
|
inline |
Definition at line 672 of file LiveInterval.h.
References llvm::LiveRange::print().
|
inline |
Definition at line 725 of file Value.h.
References llvm::Value::print().
| raw_ostream& llvm::operator<< | ( | raw_ostream & | OS, |
| const ScaledNumber< DigitsT > & | X | ||
| ) |
Definition at line 742 of file ScaledNumber.h.
References X.
| raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
| const MachineBasicBlock & | MBB | ||
| ) |
Definition at line 74 of file MachineBasicBlock.cpp.
References llvm::MachineBasicBlock::print().
|
inline |
An raw_ostream inserter for modules.
Definition at line 878 of file Module.h.
References DEFINE_SIMPLE_CONVERSION_FUNCTIONS, llvm::RISCVFenceField::O, and llvm::Module::print().
|
inline |
Definition at line 898 of file LiveInterval.h.
References llvm::LiveInterval::SubRange::print().
|
inline |
Definition at line 904 of file LiveInterval.h.
References operator<<(), and llvm::LiveInterval::print().
| raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
| const LiveRange::Segment & | S | ||
| ) |
Definition at line 1000 of file LiveInterval.cpp.
References llvm::LiveRange::Segment::end, llvm::VNInfo::id, llvm::LiveRange::Segment::start, and llvm::LiveRange::Segment::valno.
|
inline |
Definition at line 973 of file LiveInterval.h.
References llvm::LiveRangeUpdater::print().
|
inline |
Definition at line 976 of file MachineOperand.h.
References llvm::MachineOperand::hash_value, and llvm::MachineOperand::print().
|
inline |
Definition at line 1422 of file Record.h.
References llvm::RecordVal::print().
|
inline |
Definition at line 1525 of file VPlan.h.
References llvm::VPlanIngredient::V.
|
inline |
| raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
| const Record & | R | ||
| ) |
Definition at line 2161 of file Record.cpp.
References assert(), llvm::ArrayRef< T >::empty(), llvm::Record::getNameInitAsString(), llvm::Record::getSuperClasses(), llvm::Record::getTemplateArgs(), llvm::Record::getValue(), llvm::Record::getValues(), llvm::Record::isTemplateArg(), llvm::RecordVal::print(), llvm::PPCISD::SC, and llvm::X86II::TA.
|
inline |
Definition at line 1728 of file MachineInstr.h.
References llvm::MachineInstr::print().
| raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
| const AbstractAttribute & | AA | ||
| ) |
Forward declarations of output streams for debug purposes.
{
Definition at line 6728 of file Attributor.cpp.
References llvm::AbstractAttribute::print().
| raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
| ChangeStatus | S | ||
| ) |
Helpers to ease debugging through output streams and print calls.
{
Definition at line 6674 of file Attributor.cpp.
References CHANGED.
| raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
| IRPosition::Kind | AP | ||
| ) |
Definition at line 6678 of file Attributor.cpp.
References llvm::IRPosition::IRP_ARGUMENT, llvm::IRPosition::IRP_CALL_SITE, llvm::IRPosition::IRP_CALL_SITE_ARGUMENT, llvm::IRPosition::IRP_CALL_SITE_RETURNED, llvm::IRPosition::IRP_FLOAT, llvm::IRPosition::IRP_FUNCTION, llvm::IRPosition::IRP_INVALID, llvm::IRPosition::IRP_RETURNED, and llvm_unreachable.
| raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
| const IRPosition & | Pos | ||
| ) |
Definition at line 6700 of file Attributor.cpp.
References llvm::IRPosition::getAnchorValue(), llvm::IRPosition::getArgNo(), llvm::IRPosition::getAssociatedValue(), llvm::Value::getName(), and llvm::IRPosition::getPositionKind().
| raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
| const AbstractState & | State | ||
| ) |
Definition at line 6724 of file Attributor.cpp.
References llvm::AbstractState::isAtFixpoint(), and llvm::AbstractState::isValidState().
| raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
| const IntegerStateBase< base_ty, BestState, WorstState > & | State | ||
| ) |
Definition at line 6708 of file Attributor.cpp.
References llvm::IntegerStateBase< base_ty, BestState, WorstState >::getAssumed(), and llvm::IntegerStateBase< base_ty, BestState, WorstState >::getKnown().
| raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
| const IntegerRangeState & | State | ||
| ) |
Definition at line 6714 of file Attributor.cpp.
References llvm::IntegerRangeState::getAssumed(), llvm::IntegerRangeState::getBitWidth(), llvm::IntegerRangeState::getKnown(), and llvm::ConstantRange::print().
| raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
| const RecordKeeper & | RK | ||
| ) |
Definition at line 2376 of file Record.cpp.
References C, for(), llvm::RecordKeeper::getClasses(), and llvm::RecordKeeper::getDefs().
|
inline |
Definition at line 2096 of file APInt.h.
References llvm::APInt::print().
Referenced by branchDiv(), llvm::Annotations::code(), false::dump_node_container(), llvm::FaultMaps::faultTypeToString(), false::GepNode::GepNode(), llvm::HexagonBlockRanges::InstrIndexMap::getBlock(), llvm::ValueLatticeElement::getCompare(), llvm::WebAssemblyException::getExceptionDepth(), llvm::FaultMapParser::getFirstFunctionInfo(), llvm::sampleprof::FunctionSamples::getGUID(), llvm::DDGBuilder::getNodesInPiBlock(), llvm::SchedDFSResult::getSubtreeLevel(), isDebug(), isPrefixedOrGrouping(), llvm::Record::isValueUnset(), llvm::AbstractAttribute::manifest(), llvm::sampleprof::SampleRecord::merge(), llvm::BitTracker::BitValue::operator bool(), operator!=(), llvm::BitTracker::RegisterCell::operator!=(), llvm::LessRecordRegister::operator()(), false::operator<<(), llvm::orc::operator<<(), operator<<(), llvm::HexagonBlockRanges::IndexType::operator<=(), operator==(), operator>=(), llvm::HexagonBlockRanges::PrintRangeMap::PrintRangeMap(), llvm::MipsABIFlagsSection::setAllFromPredicates(), and llvm::RegBankSelect::RepairingPlacement::switchTo().
|
delete |
|
delete |
Definition at line 260 of file Alignment.h.
References ALIGN_CHECK_ISPOSITIVE, and llvm::Align::value().
|
inline |
Definition at line 284 of file Alignment.h.
References ALIGN_CHECK_ISPOSITIVE, and ALIGN_CHECK_ISSET.
Definition at line 312 of file Alignment.h.
| bool llvm::operator<= | ( | const Optional< T > & | X, |
| const Optional< U > & | Y | ||
| ) |
Definition at line 317 of file Optional.h.
|
inline |
Definition at line 334 of file Alignment.h.
References ALIGN_CHECK_ISSET, and llvm::Align::value().
Definition at line 341 of file APSInt.h.
Referenced by llvm::HexagonBlockRanges::IndexType::isInstr(), numVectorEltsOrZero(), and llvm::sys::fs::directory_entry::operator!=().
Definition at line 359 of file Optional.h.
|
inline |
Definition at line 360 of file Alignment.h.
References ALIGN_CHECK_ISSET, and llvm::Align::value().
Definition at line 363 of file Optional.h.
References None.
Definition at line 407 of file Optional.h.
Definition at line 411 of file Optional.h.
Definition at line 898 of file StringRef.h.
References llvm::StringRef::compare().
|
inline |
Definition at line 32 of file DWARFLocationExpression.h.
References llvm::DWARFLocationExpression::Expr, and llvm::DWARFLocationExpression::Range.
|
inline |
Definition at line 57 of file DWARFAddressRange.h.
References llvm::DWARFAddressRange::HighPC, llvm::DWARFAddressRange::LowPC, and operator<<().
|
inline |
Definition at line 104 of file MD5.h.
References llvm::MD5::MD5Result::Bytes.
|
inline |
Definition at line 149 of file DWARFExpression.h.
|
inline |
Compare two DbgValueLocs for equality.
Definition at line 184 of file DebugLocEntry.h.
References llvm::DbgValueLoc::CFP, llvm::DbgValueLoc::CIP, llvm::DbgValueLoc::Int, llvm_unreachable, llvm::DbgValueLoc::Loc, and llvm::DbgValueLoc::TIL.
|
inline |
Definition at line 196 of file IntrusiveRefCntPtr.h.
References llvm::IntrusiveRefCntPtr< T >::get().
|
inline |
Definition at line 208 of file IntrusiveRefCntPtr.h.
References B, and llvm::IntrusiveRefCntPtr< T >::get().
|
inline |
Definition at line 218 of file IntrusiveRefCntPtr.h.
References llvm::IntrusiveRefCntPtr< T >::get().
| bool llvm::operator== | ( | std::nullptr_t | A, |
| const IntrusiveRefCntPtr< T > & | B | ||
| ) |
Definition at line 228 of file IntrusiveRefCntPtr.h.
References B.
| bool llvm::operator== | ( | const IntrusiveRefCntPtr< T > & | A, |
| std::nullptr_t | B | ||
| ) |
Definition at line 233 of file IntrusiveRefCntPtr.h.
References A.
Definition at line 238 of file ModuleSummaryIndex.h.
References assert(), and llvm::ValueInfo::getRef().
| bool llvm::operator== | ( | PointerUnion< PTs... > | lhs, |
| PointerUnion< PTs... > | rhs | ||
| ) |
Definition at line 243 of file PointerUnion.h.
References llvm::PointerUnion< PTs >::getOpaqueValue().
Comparisons between Align and scalars. Rhs must be positive.
Definition at line 252 of file Alignment.h.
References ALIGN_CHECK_ISPOSITIVE, and llvm::Align::value().
| bool llvm::operator== | ( | const SmallSet< T, LN, C > & | LHS, |
| const SmallSet< T, RN, C > & | RHS | ||
| ) |
Equality comparison for SmallSet.
Iterates over elements of LHS confirming that each element is also a member of RHS, and that RHS contains no additional values. Equivalent to N calls to RHS.count. For small-set mode amortized complexity is O(N^2) For large-set mode amortized complexity is linear, worst case is O(N^2) (if every hash collides).
Definition at line 260 of file SmallSet.h.
References all_of(), llvm::SmallSet< T, N, C >::count(), E, and llvm::SmallSet< T, N, C >::size().
|
inline |
Comparisons between MaybeAlign and scalars.
Definition at line 278 of file Alignment.h.
| bool llvm::operator== | ( | const Optional< T > & | X, |
| const Optional< U > & | Y | ||
| ) |
Definition at line 298 of file Optional.h.
References llvm::Optional< T >::hasValue(), and Y.
Comparisons operators between Align.
Definition at line 306 of file Alignment.h.
|
inline |
Definition at line 317 of file DWARFDie.h.
|
inline |
Comparisons operators between Align and MaybeAlign.
Definition at line 326 of file Alignment.h.
References ALIGN_CHECK_ISSET, and llvm::Align::value().
Definition at line 327 of file DWARFDie.h.
References llvm::DWARFDie::getDebugInfoEntry(), and llvm::DWARFDie::getDwarfUnit().
Definition at line 332 of file Optional.h.
References X.
Definition at line 337 of file Optional.h.
References None.
|
inline |
Comparisons operators between MaybeAlign and Align.
Definition at line 352 of file Alignment.h.
References ALIGN_CHECK_ISSET, and llvm::Align::value().
|
inline |
Definition at line 367 of file DWARFDie.h.
Definition at line 383 of file Optional.h.
References Y.
Definition at line 387 of file Optional.h.
References Y.
| bool llvm::operator== | ( | const SmallPtrSetImpl< PtrType > & | LHS, |
| const SmallPtrSetImpl< PtrType > & | RHS | ||
| ) |
Equality comparison for SmallPtrSet.
Iterates over elements of LHS confirming that each value from LHS is also in RHS, and that no additional values are in RHS.
Definition at line 417 of file SmallPtrSet.h.
References llvm::SmallPtrSetImpl< PtrType >::count(), and llvm::SmallPtrSetImplBase::size().
|
inline |
Definition at line 453 of file DWARFDie.h.
Definition at line 533 of file ArrayRef.h.
References llvm::ArrayRef< T >::equals().
| bool llvm::operator== | ( | const DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT > & | LHS, |
| const DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT > & | RHS | ||
| ) |
Equality comparison for DenseMap.
Iterates over elements of LHS confirming that each (key, value) pair in LHS is also in RHS, and that no additional pairs are in RHS. Equivalent to N calls to RHS.find and N value comparisons. Amortized complexity is linear, worst case is O(N^2) (if every hash collides).
Definition at line 655 of file DenseMap.h.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), I, and llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::size().
Definition at line 888 of file StringRef.h.
References llvm::StringRef::equals().
Definition at line 2024 of file APInt.h.
Referenced by adjustDown(), llvm::BasicAAResult::BasicAAResult(), llvm::FoldingSetNodeID::clear(), llvm::APFloat::convertToFloat(), createRdxShuffleMask(), llvm::MemorySSAAnnotatedWriter::emitInstructionAnnot(), llvm::rdf::DataFlowGraph::DefStack::empty(), llvm::FoldingSetNodeIDRef::FoldingSetNodeIDRef(), isImplicitlyDef(), llvm::HexagonBlockRanges::IndexType::isInstr(), isKnownBaseResult(), isRegOtherThanSPAndFP(), LowerBUILD_VECTOR_i1(), matchRotateSub(), llvm::detail::IEEEFloat::needsCleanup(), numVectorEltsOrZero(), llvm::rdf::RegisterRef::operator!=(), llvm::AnonStructTypeKeyInfo::KeyTy::operator!=(), llvm::SDValue::operator!=(), llvm::FunctionTypeKeyInfo::KeyTy::operator!=(), llvm::BitTracker::BitValue::operator!=(), llvm::SSAUpdaterTraits< SSAUpdater >::PHI_iterator::operator!=(), llvm::AliasSet::iterator::operator!=(), llvm::RegPressureDelta::operator!=(), llvm::ConstantRange::operator!=(), llvm::SSAUpdaterTraits< MachineSSAUpdater >::PHI_iterator::operator!=(), llvm::SparseMultiSet< ValueT, KeyFunctorT, SparseT >::iterator_base< SMSPtrTy >::operator!=(), llvm::BitTracker::RegisterCell::operator!=(), llvm::LazyCallGraph::Node::operator!=(), llvm::rdf::NodeAddr< llvm::rdf::FuncNode *>::operator!=(), llvm::NodeSet::operator!=(), llvm::IntervalMapImpl::NodeRef::operator!=(), llvm::TargetRegistry::iterator::operator!=(), llvm::SDNode::use_iterator::operator!=(), llvm::GenericSchedulerBase::SchedResourceDelta::operator!=(), llvm::MachineRegisterInfo::defusechain_iterator< ReturnUses, ReturnDefs, SkipDebug, ByOperand, ByInstr, ByBundle >::operator!=(), llvm::MachineRegisterInfo::defusechain_instr_iterator< ReturnUses, ReturnDefs, SkipDebug, ByOperand, ByInstr, ByBundle >::operator!=(), llvm::IntervalMap< KeyT, ValT, N, Traits >::const_iterator::operator!=(), llvm::sys::path::const_iterator::operator*(), llvm::sys::path::reverse_iterator::operator*(), llvm::DWARFExpression::iterator::operator*(), llvm::HexagonBlockRanges::IndexType::operator<=(), llvm::BitTracker::RegisterCell::operator[](), llvm::AArch64TargetLowering::ReconstructShuffle(), and llvm::RegBankSelect::RepairingPlacement::switchTo().
|
inline |
Definition at line 2593 of file DebugInfoMetadata.h.
References llvm::DIExpression::FragmentInfo::OffsetInBits, and llvm::DIExpression::FragmentInfo::SizeInBits.
|
delete |
|
delete |
Definition at line 272 of file Alignment.h.
References ALIGN_CHECK_ISPOSITIVE, and llvm::Align::value().
|
inline |
Definition at line 299 of file Alignment.h.
References ALIGN_CHECK_ISPOSITIVE, and ALIGN_CHECK_ISSET.
Definition at line 321 of file Alignment.h.
| bool llvm::operator> | ( | const Optional< T > & | X, |
| const Optional< U > & | Y | ||
| ) |
Definition at line 322 of file Optional.h.
References X.
Definition at line 344 of file APSInt.h.
Referenced by llvm::GVNExpression::Expression::dump(), llvm::HexagonBlockRanges::IndexType::isInstr(), numVectorEltsOrZero(), llvm::sys::fs::directory_entry::operator!=(), and llvm::RegBankSelect::RepairingPlacement::switchTo().
|
inline |
Definition at line 346 of file Alignment.h.
References ALIGN_CHECK_ISSET, and llvm::Align::value().
Definition at line 367 of file Optional.h.
Definition at line 371 of file Optional.h.
References None.
|
inline |
Definition at line 372 of file Alignment.h.
References ALIGN_CHECK_ISSET, and llvm::Align::value().
Definition at line 415 of file Optional.h.
References X.
Definition at line 419 of file Optional.h.
References X.
Definition at line 902 of file StringRef.h.
References llvm::StringRef::compare().
|
delete |
|
delete |
Definition at line 264 of file Alignment.h.
References ALIGN_CHECK_ISPOSITIVE, and llvm::Align::value().
|
inline |
Definition at line 289 of file Alignment.h.
References ALIGN_CHECK_ISPOSITIVE, and ALIGN_CHECK_ISSET.
Definition at line 315 of file Alignment.h.
| bool llvm::operator>= | ( | const Optional< T > & | X, |
| const Optional< U > & | Y | ||
| ) |
Definition at line 327 of file Optional.h.
References Y.
|
inline |
Definition at line 338 of file Alignment.h.
References ALIGN_CHECK_ISSET, and llvm::Align::value().
Definition at line 342 of file APSInt.h.
Referenced by llvm::HexagonBlockRanges::IndexType::isInstr(), numVectorEltsOrZero(), and llvm::sys::fs::directory_entry::operator!=().
|
inline |
Definition at line 364 of file Alignment.h.
References ALIGN_CHECK_ISSET, and llvm::Align::value().
Definition at line 375 of file Optional.h.
Definition at line 379 of file Optional.h.
References None.
Definition at line 423 of file Optional.h.
References Y.
Definition at line 427 of file Optional.h.
References operator<<(), and Y.
Definition at line 906 of file StringRef.h.
References llvm::StringRef::compare().
| ScaledNumber<DigitsT> llvm::operator>> | ( | const ScaledNumber< DigitsT > & | L, |
| int16_t | Shift | ||
| ) |
Definition at line 736 of file ScaledNumber.h.
|
inline |
Definition at line 696 of file SmallBitVector.h.
|
inline |
Definition at line 101 of file ValueMapper.h.
| ChangeStatus llvm::operator| | ( | ChangeStatus | l, |
| ChangeStatus | r | ||
| ) |
Logic operators for the change status enum class.
{
Definition at line 182 of file Attributor.cpp.
References CHANGED, operator &(), and UNCHANGED.
|
inline |
Definition at line 181 of file JITSymbol.h.
|
inline |
Definition at line 689 of file SmallBitVector.h.
|
inline |
Definition at line 849 of file SparseBitVector.h.
|
inline |
Definition at line 822 of file SparseBitVector.h.
Referenced by areCFlagsAliveInSuccessors().
|
inline |
Definition at line 828 of file SparseBitVector.h.
Unary bitwise complement operator.
v. Definition at line 2031 of file APInt.h.
References llvm::APInt::flipAllBits().
|
inline |
Definition at line 1307 of file MemorySSA.h.
References make_range().
| bool llvm::optimizeGlobalCtorsList | ( | Module & | M, |
| function_ref< bool(Function *)> | ShouldRemove | ||
| ) |
Call "ShouldRemove" for every entry in M's global_ctor list and remove the entries for which it returns true.
Return true if anything changed.
Definition at line 116 of file CtorUtils.cpp.
References dbgs(), llvm::Function::empty(), F(), findGlobalCtors(), LLVM_DEBUG, parseGlobalCtors(), removeGlobalCtors(), and llvm::BitVector::set().
Referenced by optimizeGlobalsInModule(), and llvm::GlobalDCEPass::run().
|
static |
Definition at line 35 of file RuntimeDyldCOFFAArch64.h.
References llvm::support::endian::read32le(), and llvm::support::endian::write32le().
Referenced by llvm::RuntimeDyldELF::loadObject(), or32AArch64Imm(), and llvm::RuntimeDyldCOFFAArch64::resolveRelocation().
| raw_ostream & llvm::outs | ( | ) |
This returns a reference to a raw_ostream for standard output.
outs() - This returns a reference to a raw_ostream for standard output.
Use it like: outs() << "foo" << "bar";
Definition at line 872 of file raw_ostream.cpp.
References assert(), and llvm::sys::fs::OF_None.
Referenced by llvm::raw_fd_ostream::clear_error(), llvm::lto::createWriteIndexesThinBackend(), dlltoolDriverMain(), llvm::pdb::PDBSymbol::dumpChildStats(), llvm::pdb::PDBSymbol::dumpProperties(), fouts(), lle_X_printf(), parseImmediate(), llvm::cl::generic_parser_base::printGenericOptionDiff(), llvm::cl::Option::printHelpStr(), llvm::cl::generic_parser_base::printOptionInfo(), llvm::cl::basic_parser_impl::printOptionInfo(), llvm::cl::basic_parser_impl::printOptionName(), llvm::cl::basic_parser_impl::printOptionNoValue(), and sortSubCommands().
| bool llvm::parseAmdKernelCodeField | ( | StringRef | ID, |
| MCAsmParser & | Parser, | ||
| amd_kernel_code_t & | C, | ||
| raw_ostream & | Err | ||
| ) |
Definition at line 168 of file AMDKernelCodeTUtils.cpp.
| bool llvm::parseAnalysisUtilityPasses | ( | StringRef | AnalysisName, |
| StringRef | PipelineName, | ||
| PassManager< IRUnitT, AnalysisManagerT, ExtraArgTs... > & | PM | ||
| ) |
This utility template takes care of adding require<> and invalidate<> passes for an analysis to a given PassManager.
It is intended to be used during parsing of a pass pipeline when parsing a single PipelineName. When registering a new function analysis FancyAnalysis with the pass pipeline name "fancy-analysis", a matching ParsePipelineCallback could look like this:
static bool parseFunctionPipeline(StringRef Name, FunctionPassManager &FPM, ArrayRef<PipelineElement> P) { if (parseAnalysisUtilityPasses<FancyAnalysis>("fancy-analysis", Name, FPM)) return true; return false; }
Definition at line 744 of file PassBuilder.h.
References llvm::PassManager< IRUnitT, AnalysisManagerT, ExtraArgTs >::addPass(), llvm::StringRef::endswith(), llvm::StringRef::size(), llvm::StringRef::startswith(), and llvm::StringRef::substr().
| std::unique_ptr< Module > llvm::parseAndVerify | ( | const uint8_t * | Data, |
| size_t | Size, | ||
| LLVMContext & | Context | ||
| ) |
Try to parse module and verify it.
May output verification errors to the errs().
Definition at line 201 of file FuzzerCLI.cpp.
References errs(), parseModule(), and verifyModule().
| std::unique_ptr< Module > llvm::parseAssembly | ( | MemoryBufferRef | F, |
| SMDiagnostic & | Err, | ||
| LLVMContext & | Context, | ||
| SlotMapping * | Slots = nullptr, |
||
| bool | UpgradeDebugInfo = true, |
||
| StringRef | DataLayoutString = "" |
||
| ) |
parseAssemblyFile and parseAssemblyString are wrappers around this function.
Parse LLVM Assembly from a MemoryBuffer.
| F | The MemoryBuffer containing assembly |
| Err | Error result info. |
| Slots | The optional slot mapping that will be initialized during parsing. |
| UpgradeDebugInfo | Run UpgradeDebugInfo, which runs the Verifier. This option should only be set to false by llvm-as for use inside the LLVM testuite! |
| DataLayoutString | Override datalayout in the llvm assembly. |
Definition at line 41 of file Parser.cpp.
Referenced by llvm::MIRParserImpl::parseIRModule().
| std::unique_ptr< Module > llvm::parseAssemblyFile | ( | StringRef | Filename, |
| SMDiagnostic & | Err, | ||
| LLVMContext & | Context, | ||
| SlotMapping * | Slots = nullptr, |
||
| bool | UpgradeDebugInfo = true, |
||
| StringRef | DataLayoutString = "" |
||
| ) |
This function is a main interface to the LLVM Assembly Parser.
It parses an ASCII file that (presumably) contains LLVM Assembly code. It returns a Module (intermediate representation) with the corresponding features. Note that this does not verify that the generated Module is valid, so you should run the verifier after parsing the file to check that it is okay. Parse LLVM Assembly from a file
| Filename | The name of the file to parse |
| Err | Error result info. |
| Context | Context in which to allocate globals info. |
| Slots | The optional slot mapping that will be initialized during parsing. |
| UpgradeDebugInfo | Run UpgradeDebugInfo, which runs the Verifier. This option should only be set to false by llvm-as for use inside the LLVM testuite! |
| DataLayoutString | Override datalayout in the llvm assembly. |
Definition at line 55 of file Parser.cpp.
| ParsedModuleAndIndex llvm::parseAssemblyFileWithIndex | ( | StringRef | Filename, |
| SMDiagnostic & | Err, | ||
| LLVMContext & | Context, | ||
| SlotMapping * | Slots = nullptr, |
||
| bool | UpgradeDebugInfo = true, |
||
| StringRef | DataLayoutString = "" |
||
| ) |
This function is a main interface to the LLVM Assembly Parser.
It parses an ASCII file that (presumably) contains LLVM Assembly code, including a module summary. It returns a Module (intermediate representation) and a ModuleSummaryIndex with the corresponding features. Note that this does not verify that the generated Module or Index are valid, so you should run the verifier after parsing the file to check that they are okay. Parse LLVM Assembly from a file
| Filename | The name of the file to parse |
| Err | Error result info. |
| Context | Context in which to allocate globals info. |
| Slots | The optional slot mapping that will be initialized during parsing. |
| UpgradeDebugInfo | Run UpgradeDebugInfo, which runs the Verifier. This option should only be set to false by llvm-as for use inside the LLVM testuite! |
| DataLayoutString | Override datalayout in the llvm assembly. |
Definition at line 85 of file Parser.cpp.
| bool llvm::parseAssemblyInto | ( | MemoryBufferRef | F, |
| Module * | M, | ||
| ModuleSummaryIndex * | Index, | ||
| SMDiagnostic & | Err, | ||
| SlotMapping * | Slots = nullptr, |
||
| bool | UpgradeDebugInfo = true, |
||
| StringRef | DataLayoutString = "" |
||
| ) |
This function is the low-level interface to the LLVM Assembly Parser.
This is kept as an independent function instead of being inlined into parseAssembly for the convenience of interactive users that want to add recently parsed bits to an existing module.
| F | The MemoryBuffer containing assembly |
| M | The module to add data to. |
| Index | The index to add data to. |
| Err | Error result info. |
| Slots | The optional slot mapping that will be initialized during parsing. |
| UpgradeDebugInfo | Run UpgradeDebugInfo, which runs the Verifier. This option should only be set to false by llvm-as for use inside the LLVM testuite! |
| DataLayoutString | Override datalayout in the llvm assembly. |
Definition at line 25 of file Parser.cpp.
| std::unique_ptr< Module > llvm::parseAssemblyString | ( | StringRef | AsmString, |
| SMDiagnostic & | Err, | ||
| LLVMContext & | Context, | ||
| SlotMapping * | Slots = nullptr, |
||
| bool | UpgradeDebugInfo = true, |
||
| StringRef | DataLayoutString = "" |
||
| ) |
The function is a secondary interface to the LLVM Assembly Parser.
It parses an ASCII string that (presumably) contains LLVM Assembly code. It returns a Module (intermediate representation) with the corresponding features. Note that this does not verify that the generated Module is valid, so you should run the verifier after parsing the file to check that it is okay. Parse LLVM Assembly from a string
| AsmString | The string containing assembly |
| Err | Error result info. |
| Context | Context in which to allocate globals info. |
| Slots | The optional slot mapping that will be initialized during parsing. |
| UpgradeDebugInfo | Run UpgradeDebugInfo, which runs the Verifier. This option should only be set to false by llvm-as for use inside the LLVM testuite! |
| DataLayoutString | Override datalayout in the llvm assembly. |
Definition at line 102 of file Parser.cpp.
| ParsedModuleAndIndex llvm::parseAssemblyWithIndex | ( | MemoryBufferRef | F, |
| SMDiagnostic & | Err, | ||
| LLVMContext & | Context, | ||
| SlotMapping * | Slots = nullptr, |
||
| bool | UpgradeDebugInfo = true, |
||
| StringRef | DataLayoutString = "" |
||
| ) |
Parse LLVM Assembly including the summary index from a MemoryBuffer.
| F | The MemoryBuffer containing assembly with summary |
| Err | Error result info. |
| Slots | The optional slot mapping that will be initialized during parsing. |
| UpgradeDebugInfo | Run UpgradeDebugInfo, which runs the Verifier. This option should only be set to false by llvm-as for use inside the LLVM testuite! |
| DataLayoutString | Override datalayout in the llvm assembly. |
parseAssemblyFileWithIndex is a wrapper around this function.
Definition at line 70 of file Parser.cpp.
| Expected< std::unique_ptr< Module > > llvm::parseBitcodeFile | ( | MemoryBufferRef | Buffer, |
| LLVMContext & | Context | ||
| ) |
Read the specified bitcode file, returning the module.
Definition at line 6671 of file BitcodeReader.cpp.
References getSingleModule(), and llvm::Expected< T >::takeError().
Referenced by llvm::orc::cloneToNewContext(), LLVMParseBitcodeInContext(), LLVMParseBitcodeInContext2(), parseBitcodeFileImpl(), and splitCodeGen().
| Expected< CachePruningPolicy > llvm::parseCachePruningPolicy | ( | StringRef | PolicyStr | ) |
Parse the given string as a cache pruning policy.
Defaults are taken from a default constructed CachePruningPolicy object. For example: "prune_interval=30s:prune_after=24h:cache_size=50%" which means a pruning interval of 30 seconds, expiration time of 24 hours and maximum cache size of 50% of available disk space.
Definition at line 77 of file CachePruning.cpp.
References llvm::StringRef::back(), llvm::StringRef::drop_back(), llvm::CachePruningPolicy::Expiration, llvm::StringRef::getAsInteger(), inconvertibleErrorCode(), llvm::CachePruningPolicy::Interval, llvm::CachePruningPolicy::MaxSizeBytes, llvm::CachePruningPolicy::MaxSizeFiles, llvm::CachePruningPolicy::MaxSizePercentageOfAvailableSpace, llvm::MipsISD::Mult, P, parseDuration(), Size, and llvm::StringRef::split().
| Constant * llvm::parseConstantValue | ( | StringRef | Asm, |
| SMDiagnostic & | Err, | ||
| const Module & | M, | ||
| const SlotMapping * | Slots = nullptr |
||
| ) |
Parse a type and a constant value in the given string.
The constant value can be any LLVM constant, including a constant expression.
| Slots | The optional slot mapping that will restore the parsing state of the module. |
Definition at line 147 of file Parser.cpp.
Referenced by llvm::LLParser::getContext(), and llvm::MIRParserImpl::initializeConstantPool().
|
inline |
Parse the expected names from the denormal-fp-math attribute.
Definition at line 36 of file FloatingPointMode.h.
References llvm::StringSwitch< T, R >::Case(), llvm::StringSwitch< T, R >::Default(), IEEE, Invalid, PositiveZero, and PreserveSign.
Referenced by llvm::MachineFunction::getDenormalMode().
|
static |
For external symbols there is no function prototype information so we have to rely directly on argument sizes.
Definition at line 900 of file AVRISelLowering.cpp.
References llvm::numbers::e, llvm::SmallVectorTemplateBase< T, bool >::push_back(), Size, and llvm::SmallVectorBase::size().
Referenced by analyzeStandardArguments().
|
static |
For each argument in a function store the number of pieces it is composed of.
Definition at line 888 of file AVRISelLowering.cpp.
References Arg, and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by analyzeStandardArguments().
| void llvm::parseFuzzerCLOpts | ( | int | ArgC, |
| char * | ArgV[] | ||
| ) |
Parse cl::opts from a fuzz target commandline.
This handles all arguments after -ignore_remaining_args=1 as cl::opts.
Definition at line 24 of file FuzzerCLI.cpp.
References I, and llvm::cl::ParseCommandLineOptions().
| std::unique_ptr< Module > llvm::parseIR | ( | MemoryBufferRef | Buffer, |
| SMDiagnostic & | Err, | ||
| LLVMContext & | Context, | ||
| bool | UpgradeDebugInfo = true, |
||
| StringRef | DataLayoutString = "" |
||
| ) |
If the given MemoryBuffer holds a bitcode image, return a Module for it.
Otherwise, attempt to parse it as LLVM Assembly and return a Module for it.
| UpgradeDebugInfo | Run UpgradeDebugInfo, which runs the Verifier. This option should only be set to false by llvm-as for use inside the LLVM testuite! |
| DataLayoutString | Override datalayout in the llvm assembly. |
Definition at line 68 of file IRReader.cpp.
Referenced by LLVMParseIRInContext().
| std::unique_ptr< Module > llvm::parseIRFile | ( | StringRef | Filename, |
| SMDiagnostic & | Err, | ||
| LLVMContext & | Context, | ||
| bool | UpgradeDebugInfo = true, |
||
| StringRef | DataLayoutString = "" |
||
| ) |
If the given file holds a bitcode image, return a Module for it.
Otherwise, attempt to parse it as LLVM Assembly and return a Module for it.
| UpgradeDebugInfo | Run UpgradeDebugInfo, which runs the Verifier. This option should only be set to false by llvm-as for use inside the LLVM testuite! |
| DataLayoutString | Override datalayout in the llvm assembly. |
Definition at line 95 of file IRReader.cpp.
| bool llvm::parseMachineBasicBlockDefinitions | ( | PerFunctionMIParsingState & | PFS, |
| StringRef | Src, | ||
| SMDiagnostic & | Error | ||
| ) |
Parse the machine basic block definitions, and skip the machine instructions.
This function runs the first parsing pass on the machine function's body. It parses only the machine basic block definitions and creates the machine basic blocks in the given machine function.
The machine instructions aren't parsed during the first pass because all the machine basic blocks aren't defined yet - this makes it impossible to resolve the machine basic block references.
Return true if an error occurred.
Definition at line 3157 of file MIParser.cpp.
References llvm::PerFunctionMIParsingState::MBBSlots.
Referenced by llvm::MIRParserImpl::initializeMachineFunction().
| bool llvm::parseMachineInstructions | ( | PerFunctionMIParsingState & | PFS, |
| StringRef | Src, | ||
| SMDiagnostic & | Error | ||
| ) |
Parse the machine instructions.
This function runs the second parsing pass on the machine function's body. It skips the machine basic block definitions and parses only the machine instructions and basic block attributes like liveins and successors.
The second parsing pass assumes that the first parsing pass already ran on the given source string.
Return true if an error occurred.
Definition at line 3163 of file MIParser.cpp.
Referenced by llvm::MIRParserImpl::initializeMachineFunction().
| bool llvm::parseMBBReference | ( | PerFunctionMIParsingState & | PFS, |
| MachineBasicBlock *& | MBB, | ||
| StringRef | Src, | ||
| SMDiagnostic & | Error | ||
| ) |
Definition at line 3168 of file MIParser.cpp.
Referenced by getUnsigned(), llvm::MIRParserImpl::initializeJumpTableInfo(), and toString().
| bool llvm::parseMDNode | ( | PerFunctionMIParsingState & | PFS, |
| MDNode *& | Node, | ||
| StringRef | Src, | ||
| SMDiagnostic & | Error | ||
| ) |
Definition at line 3198 of file MIParser.cpp.
Referenced by parseGlobalValue(), and parseIRValue().
| std::unique_ptr< Module > llvm::parseModule | ( | const uint8_t * | Data, |
| size_t | Size, | ||
| LLVMContext & | Context | ||
| ) |
Fuzzer friendly interface for the llvm bitcode parser.
| Data | Bitcode we are going to parse |
| Size | Size of the 'Data' in bytes |
Definition at line 169 of file FuzzerCLI.cpp.
References Context, and llvm::MemoryBuffer::getMemBuffer().
Referenced by llvm::BitcodeModule::getModuleIdentifier(), and parseAndVerify().
| bool llvm::parseNamedRegisterReference | ( | PerFunctionMIParsingState & | PFS, |
| unsigned & | Reg, | ||
| StringRef | Src, | ||
| SMDiagnostic & | Error | ||
| ) |
Definition at line 3180 of file MIParser.cpp.
Referenced by llvm::MIRParserImpl::initializeCallSiteInfo(), llvm::MIRParserImpl::parseCalleeSavedRegister(), llvm::GCNTargetMachine::parseMachineFunctionInfo(), and llvm::MIRParserImpl::parseRegisterInfo().
| bool llvm::parseRegisterReference | ( | PerFunctionMIParsingState & | PFS, |
| unsigned & | Reg, | ||
| StringRef | Src, | ||
| SMDiagnostic & | Error | ||
| ) |
Definition at line 3174 of file MIParser.cpp.
Referenced by llvm::MIRParserImpl::parseRegisterInfo().
| bool llvm::parseStackObjectReference | ( | PerFunctionMIParsingState & | PFS, |
| int & | FI, | ||
| StringRef | Src, | ||
| SMDiagnostic & | Error | ||
| ) |
Definition at line 3192 of file MIParser.cpp.
Referenced by llvm::MIRParserImpl::initializeFrameInfo().
| StatepointDirectives llvm::parseStatepointDirectivesFromAttrs | ( | AttributeList | AS | ) |
Parse out statepoint directives from the function attributes present in AS.
Definition at line 60 of file Statepoint.cpp.
References llvm::AttributeList::FunctionIndex, llvm::StringRef::getAsInteger(), llvm::AttributeList::getAttribute(), llvm::Attribute::getValueAsString(), llvm::Attribute::isStringAttribute(), llvm::StatepointDirectives::NumPatchBytes, and llvm::StatepointDirectives::StatepointID.
Referenced by llvm::SelectionDAGBuilder::LowerCallSiteWithDeoptBundleImpl(), and makeStatepointExplicitImpl().
| std::unique_ptr< ModuleSummaryIndex > llvm::parseSummaryIndexAssembly | ( | MemoryBufferRef | F, |
| SMDiagnostic & | Err | ||
| ) |
Parse LLVM Assembly for summary index from a MemoryBuffer.
| F | The MemoryBuffer containing assembly with summary |
| Err | Error result info. |
parseSummaryIndexAssemblyFile is a wrapper around this function.
Definition at line 124 of file Parser.cpp.
| std::unique_ptr< ModuleSummaryIndex > llvm::parseSummaryIndexAssemblyFile | ( | StringRef | Filename, |
| SMDiagnostic & | Err | ||
| ) |
This function is a main interface to the LLVM Assembly Parser.
It parses an ASCII file that (presumably) contains LLVM Assembly code for a module summary. It returns a a ModuleSummaryIndex with the corresponding features. Note that this does not verify that the generated Index is valid, so you should run the verifier after parsing the file to check that it is okay. Parse LLVM Assembly Index from a file
| Filename | The name of the file to parse |
| Err | Error result info. |
Definition at line 135 of file Parser.cpp.
| Type * llvm::parseType | ( | StringRef | Asm, |
| SMDiagnostic & | Err, | ||
| const Module & | M, | ||
| const SlotMapping * | Slots = nullptr |
||
| ) |
Parse a type in the given string.
| Slots | The optional slot mapping that will restore the parsing state of the module. |
Definition at line 159 of file Parser.cpp.
Referenced by llvm::remarks::YAMLRemarkParser::classof(), AbstractManglingParser< ManglingParser< Alloc >, Alloc >::numLeft(), and AbstractManglingParser< ManglingParser< Alloc >, Alloc >::parseTemplateParamDecl().
| Type * llvm::parseTypeAtBeginning | ( | StringRef | Asm, |
| unsigned & | Read, | ||
| SMDiagnostic & | Err, | ||
| const Module & | M, | ||
| const SlotMapping * | Slots = nullptr |
||
| ) |
Parse a string Asm that starts with a type.
Read[out] gives the number of characters that have been read to parse the type in Asm.
| Slots | The optional slot mapping that will restore the parsing state of the module. |
Definition at line 175 of file Parser.cpp.
| bool llvm::parseVirtualRegisterReference | ( | PerFunctionMIParsingState & | PFS, |
| VRegInfo *& | Info, | ||
| StringRef | Src, | ||
| SMDiagnostic & | Error | ||
| ) |
Definition at line 3186 of file MIParser.cpp.
Referenced by llvm::MIRParserImpl::parseRegisterInfo().
| bool llvm::parseWidenableBranch | ( | const User * | U, |
| Value *& | Condition, | ||
| Value *& | WidenableCondition, | ||
| BasicBlock *& | IfTrueBB, | ||
| BasicBlock *& | IfFalseBB | ||
| ) |
If U is widenable branch looking like: cond = ...
wc = call i1 .experimental.widenable.condition() branch_cond = and i1 cond, wc br i1 branch_cond, label if_true_bb, label if_false_bb ; <— U The function returns true, and the values cond and wc and blocks if_true_bb, if_false_bb are returned in the parameters (Condition, WidenableCondition, IfTrueBB and IfFalseFF) respectively. If U does not match this pattern, return false.
Definition at line 44 of file GuardUtils.cpp.
References C, llvm::BasicBlock::getContext(), and llvm::ConstantInt::getTrue().
Referenced by isGuardAsWidenableBranch(), isWidenableBranch(), setWidenableBranchCond(), tryWidenCondBranchToCondBranch(), and widenWidenableBranch().
| bool llvm::parseWidenableBranch | ( | User * | U, |
| Use *& | Cond, | ||
| Use *& | WC, | ||
| BasicBlock *& | IfTrueBB, | ||
| BasicBlock *& | IfFalseBB | ||
| ) |
Analgous to the above, but return the Uses so that that they can be modified.
Unlike previous version, Condition is optional and may be null.
Definition at line 60 of file GuardUtils.cpp.
References dyn_cast().
|
static |
Definition at line 657 of file APFloat.cpp.
References assert(), count(), and llvm::APFloatBase::integerPartWidth.
Referenced by llvm::detail::IEEEFloat::convertToHexString().
Definition at line 216 of file APFloat.cpp.
References llvm::APFloatBase::integerPartWidth.
Referenced by llvm::detail::IEEEFloat::convert(), llvm::detail::IEEEFloat::convertFromZeroExtendedInteger(), llvm::detail::IEEEFloat::convertToInteger(), llvm::detail::IEEEFloat::makeSmallestNormalized(), llvm::detail::IEEEFloat::toString(), and llvm::detail::IEEEFloat::~IEEEFloat().
| auto llvm::partition | ( | R && | Range, |
| UnaryPredicate | P | ||
| ) | -> decltype(adl_begin(Range)) |
Provide wrappers to std::partition which take ranges instead of having to pass begin/end explicitly.
Definition at line 1271 of file STLExtras.h.
References adl_begin(), adl_end(), and P.
Referenced by llvm::AlwaysInlinerPass::run().
| auto llvm::partition_point | ( | R && | Range, |
| Predicate | P | ||
| ) | -> decltype(adl_begin(Range)) |
Binary search for the first iterator in a range where a predicate is false.
Requires that C is always true below some limit, and always false above it.
Definition at line 1319 of file STLExtras.h.
References adl_begin(), adl_end(), and P.
Referenced by llvm::MachO::detail::addEntry(), llvm::SlotIndexes::advanceMBBIndex(), llvm::gsym::AddressRanges::contains(), llvm::LegalizerInfo::decreaseToSmallerTypesAndIncreaseToSmallest(), llvm::DWARFDebugAranges::findAddress(), findTargetSubtable(), llvm::DWARFUnit::getDIEForOffset(), getEntryForPercentile(), getFMA3Group(), llvm::DWARFUnitIndex::getFromOffset(), llvm::InstrProfSymtab::getFunctionHashFromAddress(), llvm::DataLayout::operator==(), and llvm::DWARFDebugFrame::parse().
| void llvm::patchReplacementInstruction | ( | Instruction * | I, |
| Value * | Repl | ||
| ) |
Patch the replacement so that it is not more restrictive than the value being replaced.
It assumes that the replacement does not get moved from its original position.
Definition at line 2444 of file Local.cpp.
References llvm::Instruction::andIRFlags(), combineMetadata(), and dyn_cast().
Referenced by getKnownAlignment(), isOnlyReachableViaThisEdge(), and patchAndReplaceAllUsesWith().
Return the source operand of a potentially bitcasted value while optionally checking if it has one use.
If there is no bitcast or the one use check is not met, return the input value itself.
Definition at line 161 of file InstCombineInternal.h.
Referenced by combineLoadToOperationType(), isMinMaxWithLoads(), and removeBitcastsFromLoadStoreOnMinMax().
Return the non-bitcasted source operand of V if it exists.
If V is not a bitcasted value, it is returned as-is.
Definition at line 8831 of file SelectionDAG.cpp.
References llvm::ISD::BITCAST, llvm::SDValue::getOpcode(), and llvm::SDValue::getOperand().
Referenced by canonicalizeBitSelect(), llvm::ConstantFPSDNode::classof(), combineAndMaskToShift(), combineConcatVectorOfExtracts(), combineConcatVectorOps(), combineExtractSubvector(), combineExtractWithShuffle(), combineLogicBlendIntoPBLENDV(), combineTargetShuffle(), combineTruncationShuffle(), combineVectorSizedSetCCEquality(), combineX86ShuffleChain(), combineX86ShuffleChainWithExtract(), combineX86ShufflesRecursively(), computeZeroableShuffleElements(), EltsFromConsecutiveLoads(), getScalarValueForVectorElement(), getTargetConstantBitsFromNode(), getTargetConstantFromNode(), getTargetShuffleAndZeroables(), getUnderlyingArgRegs(), isAllOnesOrAllOnesSplat(), isBitfieldExtractOpFromShr(), isBitwiseNot(), isFNEG(), isHorizontalBinOp(), IsNOT(), isShuffleFoldableLoad(), lowerShuffleAsBroadcast(), lowerV2X128Shuffle(), narrowExtractedVectorBinOp(), narrowExtractedVectorLoad(), narrowExtractedVectorSelect(), reduceBuildVecToShuffleWithZero(), ShrinkLoadReplaceStoreWithStore(), llvm::TargetLowering::SimplifyMultipleUseDemandedBits(), simplifyShuffleOfShuffle(), and splitAndLowerShuffle().
Return the non-extracted vector source operand of V if it exists.
If V is not an extracted subvector, it is returned as-is.
Definition at line 8843 of file SelectionDAG.cpp.
References llvm::ISD::EXTRACT_SUBVECTOR, llvm::SDValue::getOpcode(), and llvm::SDValue::getOperand().
Referenced by llvm::ConstantFPSDNode::classof(), and llvm::SelectionDAG::getSplatSourceVector().
Return the non-bitcasted and one-use source operand of V if it exists.
If V is not a bitcasted one-use value, it is returned as-is.
Definition at line 8837 of file SelectionDAG.cpp.
References llvm::ISD::BITCAST, llvm::SDValue::getOpcode(), llvm::SDValue::getOperand(), and llvm::SDValue::hasOneUse().
Referenced by llvm::ConstantFPSDNode::classof(), combineConcatVectorOfExtracts(), combineTargetShuffle(), combineX86ShufflesRecursively(), getFauxShuffleMask(), and simplifyShuffleOfShuffle().
| bool llvm::peelLoop | ( | Loop * | L, |
| unsigned | PeelCount, | ||
| LoopInfo * | LI, | ||
| ScalarEvolution * | SE, | ||
| DominatorTree * | DT, | ||
| AssumptionCache * | AC, | ||
| bool | PreserveLCSSA | ||
| ) |
Peel off the first PeelCount iterations of loop L.
Note that this does not peel them off as a single straight-line block. Rather, each iteration is peeled off separately, and needs to check the exit condition. For loops that dynamically execute PeelCount iterations or less this provides a benefit, since the peeled off iterations, which account for the bulk of dynamic execution, can be further simplified by scalar optimizations.
Definition at line 600 of file LoopUnrollPeel.cpp.
References addStringMetadataToLoop(), assert(), llvm::BasicBlock::begin(), canPeel(), llvm::DominatorTreeBase< NodeT, IsPostDom >::changeImmediateDominator(), cloneLoopBlocks(), llvm::LoopBase< BlockT, LoopT >::contains(), llvm::DenseMapBase< DenseMap< KeyT, ValueT, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::count(), dyn_cast(), llvm::Function::end(), F(), llvm::CallingConv::Fast, llvm::DominatorTreeBase< NodeT, IsPostDom >::findNearestCommonDominator(), fixupBranchWeights(), llvm::ScalarEvolution::forgetTopmostLoop(), llvm::Function::getBasicBlockList(), llvm::DomTreeNodeBase< NodeT >::getBlock(), llvm::LoopBase< BlockT, LoopT >::getExitEdges(), llvm::LoopBase< BlockT, LoopT >::getHeader(), llvm::DomTreeNodeBase< NodeT >::getIDom(), llvm::PHINode::getIncomingValueForBlock(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::LoopBase< BlockT, LoopT >::getLoopLatch(), llvm::LoopBase< BlockT, LoopT >::getLoopPreheader(), llvm::Value::getName(), llvm::DominatorTreeBase< NodeT, IsPostDom >::getNode(), getOptionalIntLoopAttribute(), llvm::BasicBlock::getParent(), llvm::LoopBase< BlockT, LoopT >::getParentLoop(), llvm::BasicBlock::getTerminator(), llvm::LoopBase< BlockT, LoopT >::hasDedicatedExits(), I, initBranchWeights(), llvm::LoopBlocksDFS::perform(), remapInstructionsInBlocks(), llvm::PHINode::setIncomingValueForBlock(), llvm::Value::setName(), simplifyLoop(), llvm::iplist_impl< IntrusiveListT, TraitsT >::splice(), SplitBlock(), SplitEdge(), updateBranchWeights(), and llvm::DominatorTreeBase< NodeT, IsPostDom >::verify().
Referenced by UnrollLoop().
| MachineBasicBlock * llvm::PeelSingleBlockLoop | ( | LoopPeelDirection | Direction, |
| MachineBasicBlock * | Loop, | ||
| MachineRegisterInfo & | MRI, | ||
| const TargetInstrInfo * | TII | ||
| ) |
Peels a single block loop.
Loop must have two successors, one of which must be itself. Similarly it must have two predecessors, one of which must be itself.
The loop block is copied and inserted into the CFG such that two copies of the loop follow on from each other. The copy is inserted either before or after the loop based on Direction.
Phis are updated and an unconditional branch inserted at the end of the clone so as to execute a single iteration.
The trip count of Loop is not updated.
Definition at line 27 of file MachineLoopUtils.cpp.
References assert(), llvm::MachineFunction::CloneMachineInstr(), llvm::MachineRegisterInfo::constrainRegClass(), llvm::DenseMapBase< DenseMap< KeyT, ValueT, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::count(), llvm::MachineFunction::CreateMachineBasicBlock(), llvm::MachineRegisterInfo::createVirtualRegister(), llvm::MachineInstr::defs(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::MachineBasicBlock::getBasicBlock(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::MachineOperand::getMBB(), llvm::MachineInstr::getOperand(), llvm::MachineBasicBlock::getParent(), llvm::MachineOperand::getReg(), llvm::MachineRegisterInfo::getRegClass(), I, llvm::MachineFunction::insert(), llvm::TargetInstrInfo::insertBranch(), llvm::MachineInstr::isPHI(), llvm::Register::isPhysical(), LPD_Back, LPD_Front, llvm::MachineBasicBlock::pred_begin(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::TargetInstrInfo::removeBranch(), llvm::MachineInstr::RemoveOperand(), llvm::MachineBasicBlock::replaceSuccessor(), llvm::MachineOperand::setReg(), llvm::MachineBasicBlock::succ_begin(), std::swap(), and llvm::MachineRegisterInfo::use_operands().
|
inline |
Returns an iterator range over all physical register and mask operands for MI and bundled instructions.
This also skips any debug operands.
Definition at line 167 of file LiveRegUnits.h.
References const_mi_bundle_ops(), llvm::Register::isPhysicalRegister(), and make_filter_range().
Referenced by llvm::LiveRegUnits::accumulate(), llvm::LivePhysRegs::addUses(), llvm::LivePhysRegs::removeDefs(), llvm::LiveRegUnits::stepBackward(), and updateDefinedRegisters().
| po_iterator<T> llvm::po_begin | ( | const T & | G | ) |
Definition at line 181 of file PostOrderIterator.h.
References llvm::po_iterator< GraphT, SetType, ExtStorage, GT >::begin().
Referenced by post_order(), and llvm::BlockFrequencyInfoImpl< llvm::BitTracker >::setBlockFreq().
| po_iterator<T> llvm::po_end | ( | const T & | G | ) |
Definition at line 183 of file PostOrderIterator.h.
References llvm::po_iterator< GraphT, SetType, ExtStorage, GT >::end().
Referenced by post_order(), and llvm::BlockFrequencyInfoImpl< llvm::BitTracker >::setBlockFreq().
| po_ext_iterator<T, SetType> llvm::po_ext_begin | ( | T | G, |
| SetType & | S | ||
| ) |
Definition at line 197 of file PostOrderIterator.h.
References llvm::po_iterator< T, SetType, true >::begin().
Referenced by llvm::LoopBlocksTraversal::begin(), and post_order_ext().
| po_ext_iterator<T, SetType> llvm::po_ext_end | ( | T | G, |
| SetType & | S | ||
| ) |
Definition at line 202 of file PostOrderIterator.h.
References llvm::po_iterator< T, SetType, true >::end().
Referenced by llvm::LoopBlocksTraversal::end(), and post_order_ext().
| bool llvm::PointerMayBeCaptured | ( | const Value * | V, |
| bool | ReturnCaptures, | ||
| bool | StoreCaptures, | ||
| unsigned | MaxUsesToExplore = DefaultMaxUsesToExplore |
||
| ) |
PointerMayBeCaptured - Return true if this pointer value may be captured by the enclosing function (which is required to exist).
This routine can be expensive, so consider caching the results. The boolean ReturnCaptures specifies whether returning the value (or part of it) from the function counts as capturing it or not. The boolean StoreCaptures specified whether storing the value (or part of it) into memory anywhere automatically counts as capturing it or not. MaxUsesToExplore specifies how many uses should the analysis explore for one value before giving up due too "too many uses".
This routine can be expensive, so consider caching the results. The boolean ReturnCaptures specifies whether returning the value (or part of it) from the function counts as capturing it or not. The boolean StoreCaptures specified whether storing the value (or part of it) into memory anywhere automatically counts as capturing it or not.
Definition at line 174 of file CaptureTracking.cpp.
References assert().
Referenced by addArgumentAttrs(), computePointerICmp(), eliminateDeadStores(), llvm::IRPosition::getAttrs(), handleEndBlock(), isCallPromotable(), isFunctionMallocLike(), isLocallyOpenedFile(), isNonEscapingLocalObject(), isSafeToExecuteUnconditionally(), PointerMayBeCapturedBefore(), promoteLoopAccessesToScalars(), and shouldInstrumentReadWriteFromAddress().
| void llvm::PointerMayBeCaptured | ( | const Value * | V, |
| CaptureTracker * | Tracker, | ||
| unsigned | MaxUsesToExplore = DefaultMaxUsesToExplore |
||
| ) |
PointerMayBeCaptured - Visit the value and the values derived from it and find values which appear to be capturing the pointer value.
This feeds results into and is controlled by the CaptureTracker object. MaxUsesToExplore specifies how many uses should the analysis explore for one value before giving up due too "too many uses".
Definition at line 227 of file CaptureTracking.cpp.
References assert(), llvm::MCID::Call, llvm::CaptureTracker::captured(), dyn_cast(), enumerate(), llvm::Module::getDataLayout(), llvm::Instruction::getFunction(), llvm::Instruction::getModule(), llvm::Instruction::getOpcode(), llvm::User::getOperand(), llvm::Value::getType(), I, llvm::SmallSet< T, N, C >::insert(), llvm::CaptureTracker::isDereferenceableOrNull(), isIntrinsicReturningPointerAliasingArgumentWithoutCapturing(), isNoAliasCall(), llvm::Type::isPointerTy(), isVolatile(), llvm::SPII::Load, MI, llvm::Function::nullPointerIsDefined(), llvm::RISCVFenceField::O, llvm::MCID::Select, llvm::CaptureTracker::shouldExplore(), llvm::SPII::Store, llvm::Value::stripPointerCastsSameRepresentation(), llvm::CaptureTracker::tooManyUses(), and llvm::Value::uses().
| bool llvm::PointerMayBeCapturedBefore | ( | const Value * | V, |
| bool | ReturnCaptures, | ||
| bool | StoreCaptures, | ||
| const Instruction * | I, | ||
| const DominatorTree * | DT, | ||
| bool | IncludeI = false, |
||
| OrderedBasicBlock * | OBB = nullptr, |
||
| unsigned | MaxUsesToExplore = DefaultMaxUsesToExplore |
||
| ) |
PointerMayBeCapturedBefore - Return true if this pointer value may be captured by the enclosing function (which is required to exist).
If a DominatorTree is provided, only captures which happen before the given instruction are considered. This routine can be expensive, so consider caching the results. The boolean ReturnCaptures specifies whether returning the value (or part of it) from the function counts as capturing it or not. The boolean StoreCaptures specified whether storing the value (or part of it) into memory anywhere automatically counts as capturing it or not. Captures by the provided instruction are considered if the final parameter is true. An ordered basic block in OBB could be used to speed up capture-tracker queries. MaxUsesToExplore specifies how many uses should the analysis explore for one value before giving up due too "too many uses".
If a DominatorTree is provided, only captures which happen before the given instruction are considered. This routine can be expensive, so consider caching the results. The boolean ReturnCaptures specifies whether returning the value (or part of it) from the function counts as capturing it or not. The boolean StoreCaptures specified whether storing the value (or part of it) into memory anywhere automatically counts as capturing it or not. A ordered basic block OBB can be used in order to speed up queries about relative order among instructions in the same basic block.
Definition at line 201 of file CaptureTracking.cpp.
References assert(), llvm::Instruction::getParent(), and PointerMayBeCaptured().
Referenced by AddAliasScopeMetadata(), and llvm::AAResults::callCapturesBefore().
| JITTargetAddress llvm::pointerToJITTargetAddress | ( | T * | Ptr | ) |
Convert a pointer to a JITTargetAddress.
Definition at line 69 of file JITSymbol.h.
Referenced by llvm::orc::Speculator::addSpeculationRuntime(), and llvm::RuntimeDyldCheckerImpl::checkAllRulesInBuffer().
Given a mask vector of the form <Y x="" i1>="">, return an APInt (of bitwidth Y) for each lane which may be active.
TODO: This is a lot like known bits, but for vectors.
Is there something we can common this with?
Definition at line 788 of file VectorUtils.cpp.
References abs(), llvm::AMDGPU::HSAMD::Kernel::Arg::Key::Align, llvm::LoopBlocksDFS::beginRPO(), llvm::APInt::clearBit(), DFS(), dyn_cast(), llvm::LoopBlocksDFS::endRPO(), llvm::APInt::getAllOnesValue(), llvm::PointerType::getElementType(), getLoadStoreAlignment(), getLoadStorePointerOperand(), getPtrStride(), llvm::Value::getType(), I, make_range(), MaxInterleaveGroupFactor, llvm::LoopBlocksDFS::perform(), replaceSymbolicStrideSCEV(), SI, and Size.
Referenced by simplifyX86vpermv().
| iterator_range<po_iterator<T> > llvm::post_order | ( | const T & | G | ) |
Definition at line 185 of file PostOrderIterator.h.
References make_range(), po_begin(), and po_end().
Referenced by adjCycles(), llvm::LoopInfoBase< BasicBlock, Loop >::analyze(), llvm::BranchProbabilityInfo::calculate(), llvm::RegionBase< RegionTraits< Function > >::clearNodeCache(), llvm::Combiner::combineMachineInstrs(), createBBSelectReg(), propagateMetadata(), llvm::WebAssemblyExceptionInfo::recalculate(), llvm::SLPVectorizerPass::runImpl(), llvm::InstructionSelect::runOnMachineFunction(), llvm::AbstractDependenceGraphBuilder< DataDependenceGraph >::sortNodesTopologically(), and llvm::PopulateLoopsDFS< BlockT, LoopT >::traverse().
| iterator_range<po_ext_iterator<T, SetType> > llvm::post_order_ext | ( | const T & | G, |
| SetType & | S | ||
| ) |
Definition at line 207 of file PostOrderIterator.h.
References make_range(), po_ext_begin(), and po_ext_end().
Referenced by llvm::po_iterator_storage< LoopBounds, true >::insertEdge().
|
inline |
Returns the power of two which is greater than or equal to the given value.
Essentially, it is a ceil operation across the domain of powers of two.
Definition at line 691 of file MathExtras.h.
References NextPowerOf2().
Referenced by computeKnownBitsFromShiftOperator(), llvm::AMDGPUTargetLowering::getSplitDestVTs(), llvm::object::COFFObjectFile::getSymbolAlignment(), llvm::LegalizerHelper::lowerBitCount(), llvm::DataLayout::operator==(), processUDivOrURem(), reduceBuildVecToShuffleWithZero(), llvm::SLPVectorizerPass::runImpl(), sizeToSubRegIndex(), and llvm::X86TargetLowering::targetShrinkDemandedConstant().
|
inline |
Returns the power of two which is less than or equal to the given value.
Essentially, it is a floor operation across the domain of powers of two.
Definition at line 684 of file MathExtras.h.
References countLeadingZeros(), and ZB_Undefined.
Referenced by findGISelOptimalMemOpLowering(), llvm::IRPosition::getAttrs(), llvm::mca::initializeUsedResources(), llvm::LegalizerHelper::lower(), lower1BitShuffle(), PrintQuotedString(), llvm::FoldingSetBase::reserve(), llvm::SLPVectorizerPass::runImpl(), and llvm::LoopVectorizationCostModel::selectInterleaveCount().
|
static |
Definition at line 586 of file APFloat.cpp.
References assert(), maxPowerOfFiveParts, llvm::APInt::tcAssign(), and llvm::APInt::tcFullMultiply().
Referenced by llvm::detail::IEEEFloat::convertFromZeroExtendedInteger().
|
inline |
|
inline |
|
inline |
pred_begin/pred_end - define methods so that Intervals may be used just like BasicBlocks can with the pred_* functions, and *pred_iterator.
Definition at line 112 of file Interval.h.
References llvm::Interval::Predecessors.
Referenced by addBlockAndPredsToSet(), allPredecessorsComeFromSameSource(), CanPropagatePredecessorsForPHIs(), canSplitPredecessors(), llvm::GraphTraits< Inverse< Interval * > >::child_begin(), llvm::CFGViewPredecessors< true >::child_begin(), llvm::GraphTraits< Inverse< BasicBlock * > >::child_begin(), llvm::GraphTraits< Inverse< const BasicBlock * > >::child_begin(), CloneAndPruneIntoFromInst(), computeLiveInValues(), ComputePostOrders(), createCodeGenPreparePass(), despeculateCountZeros(), llvm::DominatorTree::dominates(), eliminateRecursiveTailCall(), ensureValueAvailableInSuccessor(), eraseDeadBBsAndChildren(), llvm::CodeExtractor::findInputsOutputs(), llvm::CodeExtractor::findOrCreateBlockForHoisting(), llvm::SSAUpdaterTraits< SSAUpdater >::FindPredecessorBlocks(), findUnconditionalPreds(), FitWeights(), foldReturnAndProcessPred(), FoldTwoEntryPHINode(), GetIfCondition(), llvm::Loop::getIncomingAndBackEdge(), llvm::LazyValueInfo::getPredicateAt(), llvm::BasicBlock::getSinglePredecessor(), llvm::BasicBlock::getUniquePredecessor(), llvm::SSAUpdater::GetValueInMiddleOfBlock(), llvm::BasicBlock::hasNPredecessors(), llvm::BasicBlock::hasNPredecessorsOrMore(), InlineFunction(), InsertPreheaderForLoop(), insertTrivialPHIs(), insertUniqueBackedgeBlock(), isCriticalEdge(), isFullPostDominator(), IsIncrementNUW(), isIndirectBrTarget(), llvm::Interval::isLoop(), isObjectDereferencedInBlock(), isSCCHeader(), IsValueFullyAvailableInBlock(), maybePrintComdat(), memoryIsNotModifiedBetween(), MergeBasicBlockIntoOnlyPred(), mergeCleanupPad(), mergeConditionalStoreToAddress(), mergeEmptyReturnBlocks(), llvm::orc::BlockFreqQuery::operator()(), pred_empty(), pred_size(), predecessors(), llvm::MachineBasicBlock::predecessors(), processDbgDeclares(), llvm::JumpThreadingPass::ProcessGuards(), promoteSingleBlockAlloca(), removeEmptyCleanup(), llvm::BasicBlock::removePredecessor(), replaceConditionalBranchesOnConstant(), reuseTableCompare(), rewritePHIs(), llvm::LoopSimplifyPass::run(), separateNestedLoop(), shouldKeepInEntry(), shouldRotateLoopExitingLatch(), SimplifyCondBranchToCondBranch(), simplifyOneLoop(), llvm::JumpThreadingPass::SimplifyPartiallyRedundantLoad(), SplitCriticalEdge(), SplitLandingPadPredecessors(), splitPredecessorsOfLoopExit(), TryToMergeLandingPad(), TryToSimplifyUncondBranchFromEmptyBlock(), llvm::MemorySSAUpdater::updateForClonedLoop(), UpdatePDTWorklist(), llvm::MemorySSA::verifyOrderingDominationAndDefUses(), and llvm::InstCombiner::visitStoreInst().
|
inline |
Definition at line 116 of file CFG.h.
References pred_begin(), and pred_end().
Referenced by llvm::DomTreeUpdater::callbackDeleteBB(), DeleteBasicBlock(), getParentPad(), getSuccPad(), mergeCleanupPad(), llvm::JumpThreadingPass::ProcessBlock(), removeUndefIntroducingPredecessor(), llvm::JumpThreadingPass::runImpl(), SimplifyFunction(), and unswitchTrivialSwitch().
|
inline |
|
inline |
|
inline |
Definition at line 115 of file Interval.h.
References llvm::Interval::Predecessors.
Referenced by addBlockAndPredsToSet(), allPredecessorsComeFromSameSource(), CanPropagatePredecessorsForPHIs(), canSplitPredecessors(), llvm::CFGViewPredecessors< true >::child_begin(), llvm::GraphTraits< Inverse< Interval * > >::child_end(), llvm::CFGViewPredecessors< true >::child_end(), llvm::GraphTraits< Inverse< BasicBlock * > >::child_end(), llvm::GraphTraits< Inverse< const BasicBlock * > >::child_end(), CloneAndPruneIntoFromInst(), computeLiveInValues(), createCodeGenPreparePass(), despeculateCountZeros(), llvm::DominatorTree::dominates(), eliminateRecursiveTailCall(), eraseDeadBBsAndChildren(), llvm::CodeExtractor::findInputsOutputs(), llvm::CodeExtractor::findOrCreateBlockForHoisting(), llvm::SSAUpdaterTraits< SSAUpdater >::FindPredecessorBlocks(), findUnconditionalPreds(), FitWeights(), foldReturnAndProcessPred(), GetIfCondition(), llvm::Loop::getIncomingAndBackEdge(), llvm::LazyValueInfo::getPredicateAt(), llvm::BasicBlock::getSinglePredecessor(), llvm::BasicBlock::getUniquePredecessor(), llvm::SSAUpdater::GetValueInMiddleOfBlock(), llvm::BasicBlock::hasNPredecessors(), llvm::BasicBlock::hasNPredecessorsOrMore(), InlineFunction(), InsertPreheaderForLoop(), insertTrivialPHIs(), insertUniqueBackedgeBlock(), isCriticalEdge(), isFullPostDominator(), IsIncrementNUW(), isIndirectBrTarget(), llvm::Interval::isLoop(), isObjectDereferencedInBlock(), isSCCHeader(), IsValueFullyAvailableInBlock(), maybePrintComdat(), memoryIsNotModifiedBetween(), MergeBasicBlockIntoOnlyPred(), mergeCleanupPad(), mergeConditionalStoreToAddress(), mergeEmptyReturnBlocks(), llvm::orc::BlockFreqQuery::operator()(), pred_empty(), pred_size(), predecessors(), llvm::MachineBasicBlock::predecessors(), processDbgDeclares(), llvm::JumpThreadingPass::ProcessGuards(), promoteSingleBlockAlloca(), removeEmptyCleanup(), llvm::BasicBlock::removePredecessor(), replaceConditionalBranchesOnConstant(), reuseTableCompare(), rewritePHIs(), llvm::LoopSimplifyPass::run(), separateNestedLoop(), shouldKeepInEntry(), shouldRotateLoopExitingLatch(), SimplifyCondBranchToCondBranch(), simplifyOneLoop(), llvm::JumpThreadingPass::SimplifyPartiallyRedundantLoad(), SplitCriticalEdge(), SplitLandingPadPredecessors(), splitPredecessorsOfLoopExit(), TryToMergeLandingPad(), TryToSimplifyUncondBranchFromEmptyBlock(), llvm::MemorySSAUpdater::updateForClonedLoop(), UpdatePDTWorklist(), and llvm::MemorySSA::verifyOrderingDominationAndDefUses().
|
inline |
Get the number of predecessors of BB.
This is a linear time operation. Use BasicBlock::hasNPredecessors() or hasNPredecessorsOrMore if able.
Definition at line 121 of file CFG.h.
References pred_begin(), and pred_end().
Referenced by llvm::MemorySSAUpdater::applyInsertUpdates(), CloneAndPruneIntoFromInst(), findBasePointer(), FoldBranchToCommonDest(), GetBestDestForJumpOnUndef(), GetPointerOperand(), isAllocaPromotable(), sinkRegion(), and llvm::MemorySSAUpdater::wireOldPredecessorsToNewImmediatePredecessor().
|
inline |
Definition at line 124 of file CFG.h.
References pred_begin(), and pred_end().
Referenced by allPredecessorsComeFromSameSource(), buildClonedLoops(), buildExtractionBlockSet(), calculateCXXStateNumbers(), calculateSEHStateNumbers(), canSplitCallSite(), collectTransitivePredecessors(), llvm::JumpThreadingPass::ComputeValueKnownInPredecessorsImpl(), ConnectEpilog(), ConnectProlog(), createBlockExtractorPass(), llvm::VPRecipeBuilder::createBlockInMask(), createControlHeightReductionLegacyPass(), llvm::VPRecipeBuilder::createEdgeMask(), DeleteDeadBlocks(), DFS(), llvm::GVNExpression::Expression::dump(), ensureValueAvailableInSuccessor(), llvm::GVN::ValueTable::eraseTranslateCacheEntry(), llvm::CodeExtractor::extractCodeRegion(), llvm::CodeExtractor::findOrCreateBlockForHoisting(), llvm::InnerLoopVectorizer::fixNonInductionPHIs(), formDedicatedExitBlocks(), getBranchInsertPoint(), getParentPad(), GetPointerOperand(), getPredState(), getTwoPredecessors(), hasCallsInBlocksBetween(), llvm::MemorySSAUpdater::insertDef(), insertTrivialPHIs(), isCriticalEdge(), llvm::HardwareLoopInfo::isHardwareLoopCandidate(), llvm::ScalarEvolution::isLoopEntryGuardedByCond(), isLoopNeverExecuted(), isOnlyReachableViaThisEdge(), isSafeToPromoteArgument(), isUnconditionalBranch(), isUniformlyReached(), promoteSingleBlockAlloca(), llvm::GVNHoist::rank(), rebuildLoopAfterUnswitch(), recomputeLoopBlockSet(), llvm::safestack::StackColoring::removeAllMarkers(), removeEmptyCleanup(), reportMayClobberedLoad(), shouldKeepInEntry(), llvm::JumpThreadingPass::SimplifyPartiallyRedundantLoad(), sinkRegion(), splitCallSite(), llvm::JumpThreadingPass::ThreadEdge(), TryToMergeLandingPad(), UnrollLoop(), UnrollRuntimeLoopRemainder(), unswitchNontrivialInvariants(), and llvm::MemorySSA::verifyOrderingDominationAndDefUses().
|
inline |
Definition at line 127 of file CFG.h.
References pred_begin(), and pred_end().
| bool llvm::predicatesFoldable | ( | CmpInst::Predicate | P1, |
| CmpInst::Predicate | P2 | ||
| ) |
Return true if both predicates match sign or if at least one of them is an equality comparison (which is signless).
Definition at line 60 of file CmpInstAnalysis.cpp.
References llvm::ICmpInst::isEquality(), and llvm::CmpInst::isSigned().
Referenced by foldUnsignedUnderflowCheck(), and foldXorToXor().
|
inlinestatic |
Get the operands corresponding to the given Pred value.
By default, the predicate register is assumed to be 0 (no register), but you can pass in a PredReg if that is not the case.
Definition at line 465 of file ARMBaseInstrInfo.h.
References llvm::MachineOperand::CreateImm(), and llvm::MachineOperand::CreateReg().
Referenced by addExclusiveRegPair(), llvm::ARMFrameLowering::adjustForSegmentedStacks(), llvm::ARMBaseInstrInfo::breakPartialRegDependency(), CompareMBBNumbers(), ContainsReg(), llvm::ARMBaseInstrInfo::convertToThreeAddress(), llvm::ARMBaseInstrInfo::copyFromCPSR(), llvm::Thumb1InstrInfo::copyPhysReg(), llvm::Thumb2InstrInfo::copyPhysReg(), llvm::ARMBaseInstrInfo::copyPhysReg(), llvm::ARMBaseInstrInfo::copyToCPSR(), llvm::ThumbRegisterInfo::eliminateFrameIndex(), emitAlignedDPRCS2Restores(), emitAlignedDPRCS2Spills(), emitAligningInstructions(), emitARMRegPlusImmediate(), llvm::Thumb1FrameLowering::emitEpilogue(), llvm::ARMFrameLowering::emitEpilogue(), llvm::ARMTargetLowering::EmitInstrWithCustomInserter(), llvm::ARMBaseRegisterInfo::emitLoadConstPool(), emitPostLd(), emitPostSt(), llvm::Thumb1FrameLowering::emitPrologue(), llvm::ARMFrameLowering::emitPrologue(), emitPrologueEpilogueSPUpdate(), emitT2RegPlusImmediate(), emitThumb2LoadConstPool(), emitThumbRegPlusImmediate(), emitThumbRegPlusImmInReg(), llvm::ARMBaseInstrInfo::expandLoadStackGuardBase(), llvm::ARMBaseInstrInfo::expandPostRAPseudo(), findTemporariesForLR(), llvm::ARMBaseInstrInfo::FoldImmediate(), getComparePred(), getPostIndexedLoadStoreOpcode(), getUnconditionalBrDisp(), llvm::ARMInstrInfo::getUnindexedOpcode(), InsertLDR_STR(), llvm::ARMBaseInstrInfo::isLoadFromStackSlotPostFE(), llvm::Thumb1InstrInfo::loadRegFromStackSlot(), llvm::Thumb2InstrInfo::loadRegFromStackSlot(), llvm::ARMBaseInstrInfo::loadRegFromStackSlot(), llvm::ARMCallLowering::lowerCall(), llvm::ARMCallLowering::lowerReturn(), makeImplicit(), llvm::ARMBaseRegisterInfo::materializeFrameBaseRegister(), llvm::ARMTargetLowering::ReplaceNodeResults(), llvm::ARMFrameLowering::ResolveFrameIndexReference(), llvm::Thumb1FrameLowering::restoreCalleeSavedRegisters(), rewriteT2FrameIndex(), selectMergeValues(), selectUnmergeValues(), llvm::ARMBaseInstrInfo::setExecutionDomain(), llvm::Thumb1FrameLowering::spillCalleeSavedRegisters(), llvm::Thumb1InstrInfo::storeRegToStackSlot(), llvm::Thumb2InstrInfo::storeRegToStackSlot(), llvm::ARMBaseInstrInfo::storeRegToStackSlot(), and VerifyLowRegs().
| BasicBlock::iterator llvm::PrepareToSplitEntryBlock | ( | BasicBlock & | BB, |
| BasicBlock::iterator | IP | ||
| ) |
Instrumentation passes often insert conditional checks into entry blocks.
Call this function before splitting the entry block to move instructions that must remain in the entry block up before the split point. Static allocas and llvm.localescape calls, for example, must remain in the entry block.
Definition at line 41 of file Instrumentation.cpp.
References assert(), E, llvm::BasicBlock::end(), llvm::Function::getEntryBlock(), llvm::BasicBlock::getParent(), I, and moveBeforeInsertPoint().
|
static |
Definition at line 207 of file DWARFExpression.cpp.
References format(), llvm::MCRegisterInfo::getLLVMRegNum(), and llvm::MCRegisterInfo::getName().
Referenced by llvm::DWARFExpression::Operation::print().
| void llvm::printAmdKernelCodeField | ( | const amd_kernel_code_t & | C, |
| int | FldIndex, | ||
| raw_ostream & | OS | ||
| ) |
Definition at line 98 of file AMDKernelCodeTUtils.cpp.
References get_amd_kernel_code_t_FieldName(), and Printer.
Referenced by dumpAmdKernelCode().
| void llvm::PrintDomTree | ( | const DomTreeNodeBase< NodeT > * | N, |
| raw_ostream & | O, | ||
| unsigned | Lev | ||
| ) |
Definition at line 180 of file GenericDomTree.h.
References llvm::DomTreeBuilder::ApplyUpdates(), llvm::DomTreeBuilder::Calculate(), llvm::DomTreeBuilder::CalculateWithUpdates(), llvm::DomTreeBuilder::DeleteEdge(), E, From, I, llvm::raw_ostream::indent(), llvm::DomTreeBuilder::InsertEdge(), N, and llvm::DomTreeBuilder::Verify().
Definition at line 58 of file Error.cpp.
References llvm::SourceMgr::DK_Error, and PrintMessage().
Referenced by checkConcrete(), llvm::TGParser::Error(), llvm::TGLexer::getLoc(), PrintFatalError(), and QualifiedNameOfImplicitName().
Definition at line 62 of file Error.cpp.
References llvm::SourceMgr::DK_Error, llvm::SMLoc::getFromPointer(), and llvm::SourceMgr::PrintMessage().
Definition at line 66 of file Error.cpp.
References llvm::WithColor::error().
| void llvm::printEscapedString | ( | StringRef | Name, |
| raw_ostream & | Out | ||
| ) |
Print each character of the specified string, escaping it if it is not printable or if it is an escape char.
Definition at line 60 of file StringExtras.cpp.
References C, llvm::numbers::e, hexdigit(), isPrint(), and llvm::StringRef::size().
Referenced by llvm::Attribute::getAsString(), getOrdinalSuffix(), maybePrintComdat(), printLLVMNameWithoutPrefix(), printSyncScope(), WriteAsOperandInternal(), and WriteConstantInternal().
Definition at line 68 of file Error.cpp.
References PrintError(), and llvm::sys::RunInterruptHandlers().
Referenced by llvm::SetTheory::evaluate(), llvm::UnOpInit::Fold(), llvm::BinOpInit::Fold(), llvm::FieldInit::Fold(), llvm::RecordKeeper::getAllDerivedDefinitions(), llvm::ListInit::getElementAsRecord(), llvm::TGLexer::getLoc(), llvm::DagInit::getOperatorAsDef(), llvm::Record::getValueAsBit(), llvm::Record::getValueAsBitOrUnset(), llvm::Record::getValueAsBitsInit(), llvm::Record::getValueAsDag(), llvm::Record::getValueAsDef(), llvm::Record::getValueAsInt(), llvm::Record::getValueAsListInit(), llvm::Record::getValueAsListOfDefs(), llvm::Record::getValueAsListOfInts(), llvm::Record::getValueAsOptionalDef(), llvm::Record::getValueAsString(), llvm::Record::getValueInit(), llvm::RecordVal::print(), and llvm::Record::resolveReferences().
Definition at line 75 of file Error.cpp.
References PrintError(), and llvm::sys::RunInterruptHandlers().
| void llvm::printHTMLEscaped | ( | StringRef | String, |
| raw_ostream & | Out | ||
| ) |
Print each character of the specified string, escaping HTML special characters.
Definition at line 72 of file StringExtras.cpp.
References C.
Referenced by getOrdinalSuffix().
Prints a jump table entry reference.
The format is: jump-table.5 - a jump table entry with index == 5.
Usage: OS << printJumpTableEntryReference(Idx) << '
';
Definition at line 995 of file MachineFunction.cpp.
Referenced by llvm::MachineJumpTableInfo::print(), llvm::MachineOperand::print(), and llvm::MachineJumpTableInfo::RemoveJumpTable().
|
inline |
Create Printable object to print LaneBitmasks on a raw_ostream.
Definition at line 93 of file LaneBitmask.h.
References format(), llvm::LaneBitmask::FormatStr, and llvm::LaneBitmask::getAsInteger().
Referenced by llvm::RegisterPressure::dump(), isCrossCopy(), isDefInSubRange(), llvm::rdf::operator<<(), llvm::MIPrinter::print(), llvm::LiveInterval::SubRange::print(), llvm::MachineBasicBlock::print(), llvm::GCNRPTracker::printLiveRegs(), reportMismatch(), llvm::LiveIntervals::HMEditor::updateAllRanges(), llvm::ScheduleDAGMILive::updatePressureDiffs(), and llvm::MachineFunction::verify().
| LLVM_DUMP_METHOD void llvm::printLivesAt | ( | SlotIndex | SI, |
| const LiveIntervals & | LIS, | ||
| const MachineRegisterInfo & | MRI | ||
| ) |
Definition at line 36 of file GCNRegPressure.cpp.
References dbgs(), E, llvm::LiveIntervals::getInstructionFromIndex(), llvm::LiveIntervals::getInterval(), llvm::MachineRegisterInfo::getNumVirtRegs(), llvm::MachineRegisterInfo::getTargetRegisterInfo(), llvm::LiveIntervals::hasInterval(), I, llvm::Register::index2VirtReg(), printReg(), and Reg.
Referenced by getRegPressure(), and llvm::GCNUpwardRPTracker::isValid().
| void llvm::printLLVMNameWithoutPrefix | ( | raw_ostream & | OS, |
| StringRef | Name | ||
| ) |
Print out a name of an LLVM value without any prefixes.
The name is surrounded with ""'s and escaped if it has any special or non-printable characters in it.
Definition at line 402 of file AsmWriter.cpp.
References assert(), C, llvm::numbers::e, llvm::StringRef::empty(), Name, printEscapedString(), and llvm::StringRef::size().
Referenced by llvm::MachineMemOperand::print(), llvm::MachineOperand::print(), printIRBlockReference(), llvm::MIRFormatter::printIRValue(), and PrintLLVMName().
| void llvm::printLoop | ( | Loop & | L, |
| raw_ostream & | OS, | ||
| const std::string & | Banner = "" |
||
| ) |
Function to print a loop's contents as LLVM's text IR assembly.
Definition at line 937 of file LoopInfo.cpp.
References llvm::LoopBase< BlockT, LoopT >::blocks(), llvm::SmallVectorBase::empty(), forcePrintModuleIR(), llvm::LoopBase< BlockT, LoopT >::getExitBlocks(), llvm::LoopBase< BlockT, LoopT >::getHeader(), llvm::LoopBase< BlockT, LoopT >::getLoopPreheader(), llvm::BasicBlock::getModule(), and llvm::Value::printAsOperand().
Referenced by llvm::LoopInfoWrapperPass::releaseMemory(), and llvm::PrintLoopPass::run().
| void llvm::printLowerCase | ( | StringRef | String, |
| raw_ostream & | Out | ||
| ) |
printLowerCase - Print each character as lowercase if it is uppercase.
Definition at line 89 of file StringExtras.cpp.
Referenced by getOrdinalSuffix(), and printReg().
| Printable llvm::printMBBReference | ( | const MachineBasicBlock & | MBB | ) |
Prints a machine basic block reference.
The format is: bb.5 - a machine basic block with MBB.getNumber() == 5.
Usage: OS << printMBBReference(MBB) << '
';
Definition at line 79 of file MachineBasicBlock.cpp.
References llvm::ilist_callback_traits< NodeTy >::addNodeToList(), llvm::MachineFunction::addToMBBNumbering(), assert(), llvm::ilist_alloc_traits< NodeTy >::deleteNode(), E, llvm::MachineInstr::getMF(), llvm::MachineBasicBlock::getParent(), llvm::MachineInstr::getParent(), llvm::MachineFunction::getRegInfo(), I, llvm::MachineBasicBlock::instr_begin(), llvm::MachineBasicBlock::instr_end(), MI, N, llvm::MachineBasicBlock::printAsOperand(), llvm::MachineFunction::removeFromMBBNumbering(), llvm::ilist_callback_traits< NodeTy >::removeNodeFromList(), and llvm::ilist_callback_traits< NodeTy >::transferNodesFromList().
Referenced by addSegmentsWithValNo(), allPhiOperandsUndefined(), llvm::TailDuplicator::canTailDuplicate(), CompareMBBNumbers(), llvm::rdf::Liveness::computeLiveIns(), llvm::MIRPrinter::convert(), llvm::HexagonInstrInfo::copyPhysReg(), createAArch64ConditionOptimizerPass(), createBBSelectReg(), createSIWholeQuadModePass(), llvm::HexagonFrameLowering::determineCalleeSaves(), llvm::SystemZPostRASchedStrategy::enterMBB(), llvm::BitTracker::MachineEvaluator::evaluate(), llvm::GCNScheduleDAGMILive::finalizeSchedule(), llvm::ScheduleDAGInstrs::fixupKills(), getBlockName(), getSchedRegions(), getStartOrEndSlot(), getUnconditionalBrDisp(), llvm::SelectionDAGISel::getUninvalidatedNodeId(), hasOneExitNode(), hoistAndMergeSGPRInits(), INITIALIZE_PASS(), llvm::po_iterator_storage< LoopBounds, true >::insertEdge(), InstructionStoresToFI(), llvm::MachineTraceMetrics::Ensemble::invalidate(), llvm::MachineTraceMetrics::invalidate(), llvm::HexagonInstrInfo::invertAndChangeJumpTarget(), llvm::ARMBasicBlockUtils::isBBInRange(), isCopyFeedingInvariantStore(), isDebug(), isInRage(), isMinSize(), isPHIRegionIndex(), llvm::SystemZPostRASchedStrategy::leaveMBB(), matchPair(), mergeOperations(), llvm::rdf::operator<<(), llvm::MachineJumpTableInfo::print(), llvm::MIPrinter::print(), llvm::MachineTraceMetrics::TraceBlockInfo::print(), llvm::MachineTraceMetrics::Trace::print(), llvm::ARMConstantPoolMBB::print(), llvm::LiveIntervals::print(), llvm::MachineOperand::print(), llvm::MachineBasicBlock::print(), llvm::MachineBranchProbabilityInfo::printEdgeProbability(), ProfitableToMerge(), llvm::rdf::DataFlowGraph::pushAllDefs(), pushDepHeight(), llvm::HexagonInstrInfo::removeBranch(), RemoveDeadAddBetweenLEAAndJT(), removeExternalCFGEdges(), llvm::rdf::Liveness::resetKills(), llvm::VLIWMachineScheduler::schedule(), llvm::ScheduleDAGMI::schedule(), llvm::SIScheduleDAGMI::schedule(), llvm::ScheduleDAGMILive::schedule(), split(), llvm::MachineBasicBlock::SplitCriticalEdge(), llvm::MachineFunction::verify(), verifyCTRBranch(), VerifyPHIs(), and WriteGraph().
|
static |
Definition at line 26 of file Error.cpp.
References llvm::SourceMgr::DK_Error, llvm::SourceMgr::DK_Note, llvm::ArrayRef< T >::empty(), ErrorsPrinted, llvm::ArrayRef< T >::front(), llvm::SourceMgr::PrintMessage(), and llvm::ArrayRef< T >::size().
Referenced by PrintError(), PrintNote(), and PrintWarning().
| void llvm::printMIR | ( | raw_ostream & | OS, |
| const Module & | M | ||
| ) |
Print LLVM IR using the MIR serialization format to the given output stream.
Definition at line 899 of file MIRPrinter.cpp.
| void llvm::printMIR | ( | raw_ostream & | OS, |
| const MachineFunction & | MF | ||
| ) |
Print a machine function using the MIR serialization format to the given output stream.
Definition at line 904 of file MIRPrinter.cpp.
References llvm::MIRPrinter::print(), and Printer.
Definition at line 42 of file Error.cpp.
References llvm::WithColor::note().
Referenced by QualifiedNameOfImplicitName().
Definition at line 44 of file Error.cpp.
References llvm::SourceMgr::DK_Note, and PrintMessage().
PrintRecyclingAllocatorStats - Helper for RecyclingAllocator for printing statistics.
Definition at line 31 of file Allocator.cpp.
References errs().
Referenced by llvm::Recycler< llvm::MachineInstr >::PrintStats().
| Printable llvm::printReg | ( | Register | Reg, |
| const TargetRegisterInfo * | TRI = nullptr, |
||
| unsigned | SubIdx = 0, |
||
| const MachineRegisterInfo * | MRI = nullptr |
||
| ) |
Prints virtual and physical registers with or without a TRI instance.
The format is: noreg - NoRegister %5 - a virtual register. %5:sub_8bit - a virtual register with sub-register index (with TRI). eax - a physical register physreg17 - a physical register when no TRI instance given.
Usage: OS << printReg(Reg, TRI, SubRegIdx) << '
';
Definition at line 89 of file TargetRegisterInfo.cpp.
References llvm::MCRegisterInfo::getName(), llvm::MCRegisterInfo::getNumRegs(), llvm::TargetRegisterInfo::getSubRegIndexName(), llvm::MachineRegisterInfo::getVRegName(), llvm::Register::isStackSlot(), llvm::Register::isVirtualRegister(), llvm_unreachable, Name, printLowerCase(), Reg, llvm::Register::stackSlot2Index(), and llvm::Register::virtReg2Index().
Referenced by llvm::AggressiveAntiDepBreaker::AggressiveAntiDepBreaker(), llvm::AllocationOrder::AllocationOrder(), allPhiOperandsUndefined(), llvm::A57ChainingConstraint::apply(), llvm::RegisterBankInfo::applyDefaultMapping(), llvm::LiveRegMatrix::assign(), llvm::HexagonFrameLowering::assignCalleeSavedSpillSlots(), llvm::LiveRangeEdit::calculateRegClassAndHint(), llvm::TargetRegisterInfo::checkAllSuperRegsMarked(), containsNewBackedge(), convertArgumentInfo(), llvm::HexagonInstrInfo::copyPhysReg(), createBBSelectReg(), createGreedyRegisterAllocator(), CriticalPathStep(), llvm::SIFrameLowering::determineCalleeSaves(), llvm::ARMFrameLowering::determineCalleeSaves(), llvm::AArch64FrameLowering::determineCalleeSaves(), llvm::SDep::dump(), dump_registers(), llvm::TargetRegisterInfo::dumpReg(), emitDebugValueComment(), llvm::AsmPrinter::emitImplicitDef(), emitKill(), llvm::BitTracker::MachineEvaluator::evaluate(), llvm::RegScavenger::FindUnusedReg(), llvm::Localizer::getAnalysisUsage(), llvm::RegBankSelect::getAnalysisUsage(), getDwarfRegNum(), getNumAllocatableRegsForConstraints(), getTag(), hasOneExitNode(), hasTiedDef(), INITIALIZE_PASS(), isACalleeSavedRegister(), isBackwardPropagatableCopy(), isCallableFunction(), llvm::CoalescerPair::isCoalescable(), isCoalescable(), isCrossCopy(), isDebug(), isDefInSubRange(), isFullUndefDef(), isLiveOut(), isNopCopy(), isPHIRegionIndex(), isRegOtherThanSPAndFP(), isTerminalReg(), llvm::ARCInstrInfo::loadRegFromStackSlot(), llvm::HexagonEvaluator::mask(), llvm::AggressiveAntiDepBreaker::Observe(), llvm::VirtReg2IndexFunctor::operator()(), llvm::rdf::operator<<(), operator<<(), llvm::PhysicalRegisterUsageInfo::print(), llvm::LiveIntervalUnion::print(), llvm::LivePhysRegs::print(), llvm::MIPrinter::print(), llvm::VirtRegMap::print(), llvm::MachineOperand::print(), llvm::RegisterBankInfo::OperandsMapper::print(), llvm::MachineFunction::print(), llvm::MachineBasicBlock::print(), llvm::LiveInterval::print(), llvm::BitTracker::print_cells(), printCFIRegister(), printCustomRegMask(), printLivesAt(), PrintNodeInfo(), printRegMIR(), pushDepHeight(), regToString(), ReplaceFrameIndex(), reportMismatch(), llvm::AArch64FrameLowering::restoreCalleeSavedRegisters(), llvm::RegisterClassInfo::runOnMachineFunction(), llvm::RegScavenger::scavengeRegister(), llvm::RegScavenger::scavengeRegisterBackwards(), llvm::AArch64FrameLowering::spillCalleeSavedRegisters(), llvm::ARCInstrInfo::storeRegToStackSlot(), false::Chain::str(), tryToFindRegisterToRename(), llvm::LiveRegMatrix::unassign(), llvm::LiveIntervals::HMEditor::updateAllRanges(), llvm::ScheduleDAGMILive::updatePressureDiffs(), llvm::MachineFunction::verify(), and llvm::MachineRegisterInfo::verifyUseList().
| Printable llvm::printRegClassOrBank | ( | unsigned | Reg, |
| const MachineRegisterInfo & | RegInfo, | ||
| const TargetRegisterInfo * | TRI | ||
| ) |
Create Printable object to print register classes or register banks on a raw_ostream.
Definition at line 153 of file TargetRegisterInfo.cpp.
References assert(), llvm::MachineRegisterInfo::def_empty(), llvm::RegisterBank::getName(), llvm::MachineRegisterInfo::getRegBankOrNull(), llvm::MachineRegisterInfo::getRegClass(), llvm::TargetRegisterInfo::getRegClassName(), llvm::MachineRegisterInfo::getRegClassOrNull(), llvm::MachineRegisterInfo::getType(), llvm::LLT::isValid(), and llvm::StringRef::lower().
Referenced by llvm::MIRPrinter::convert(), llvm::VirtReg2IndexFunctor::operator()(), llvm::MachineOperand::print(), and printRegClassOrBank().
| Printable llvm::printRegUnit | ( | unsigned | Unit, |
| const TargetRegisterInfo * | TRI | ||
| ) |
Create Printable object to print register units on a raw_ostream.
Register units are named after their root registers:
al - Single root. fp0~st7 - Dual roots.
Usage: OS << printRegUnit(Unit, TRI) << '
';
Definition at line 120 of file TargetRegisterInfo.cpp.
References assert(), llvm::MCRegisterInfo::getName(), llvm::MCRegisterInfo::getNumRegUnits(), and llvm::MCRegUnitRootIterator::isValid().
Referenced by llvm::LiveRegMatrix::assign(), llvm::VirtReg2IndexFunctor::operator()(), llvm::rdf::RegisterAggr::print(), llvm::LiveIntervals::print(), printVRegOrUnit(), pushDepHeight(), llvm::LiveRegMatrix::unassign(), llvm::LiveIntervals::HMEditor::updateAllRanges(), and llvm::MachineFunction::verify().
| void llvm::PrintStatistics | ( | ) |
Print statistics to the file returned by CreateInfoOutputFile().
Definition at line 226 of file Statistic.cpp.
References CreateInfoOutputFile(), EnableStats, PrintStatisticsJSON(), StatInfo, Stats, and StatsAsJSON.
Referenced by llvm::LTOCodeGenerator::compileOptimized(), llvm::TrackingStatistic::RegisterStatistic(), and llvm::ThinLTOCodeGenerator::run().
| void llvm::PrintStatistics | ( | raw_ostream & | OS | ) |
Print statistics to the given output stream.
Definition at line 170 of file Statistic.cpp.
References llvm::numbers::e, llvm::raw_ostream::flush(), format(), max(), size(), StatInfo, Stats, and utostr().
| void llvm::PrintStatisticsJSON | ( | raw_ostream & | OS | ) |
Print statistics in JSON format.
This does include all global timers (
Definition at line 200 of file Statistic.cpp.
References assert(), llvm::raw_ostream::flush(), llvm::StatisticBase::getDebugType(), llvm::StatisticBase::getName(), llvm::TrackingStatistic::getValue(), None, llvm::TimerGroup::printAllJSONValues(), StatInfo, and Stats.
Referenced by llvm::LTOCodeGenerator::compileOptimized(), and PrintStatistics().
| Printable llvm::printVRegOrUnit | ( | unsigned | VRegOrUnit, |
| const TargetRegisterInfo * | TRI | ||
| ) |
Create Printable object to print virtual registers and physical registers on a raw_ostream.
Definition at line 143 of file TargetRegisterInfo.cpp.
References llvm::Register::isVirtualRegister(), printRegUnit(), and llvm::Register::virtReg2Index().
Referenced by llvm::RegisterPressure::dump(), llvm::VirtReg2IndexFunctor::operator()(), llvm::SIScheduleBlock::printDebug(), llvm::GCNRPTracker::printLiveRegs(), llvm::SIScheduleBlockScheduler::SIScheduleBlockScheduler(), and llvm::ScheduleDAGMILive::updatePressureDiffs().
Definition at line 48 of file Error.cpp.
References llvm::SourceMgr::DK_Warning, and PrintMessage().
Definition at line 52 of file Error.cpp.
References llvm::SourceMgr::DK_Warning, llvm::SMLoc::getFromPointer(), and llvm::SourceMgr::PrintMessage().
Definition at line 56 of file Error.cpp.
References llvm::WithColor::warning().
| bool llvm::programUndefinedIfFullPoison | ( | const Instruction * | PoisonI | ) |
Return true if this function can prove that if PoisonI is executed and yields a full-poison value (all bits poison), then that will trigger undefined behavior.
Note that this currently only considers the basic block that is the parent of I.
Definition at line 4566 of file ValueTracking.cpp.
References llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::Instruction::getParent(), and llvm::SmallSet< T, N, C >::insert().
Referenced by createSeparateConstOffsetFromGEPPass(), and getRangeForAffineARHelper().
| Instruction * llvm::promoteCall | ( | CallSite | CS, |
| Function * | Callee, | ||
| CastInst ** | RetBitCast = nullptr |
||
| ) |
Promote the given indirect call site to unconditionally call Callee.
This function promotes the given call site, returning the direct call or invoke instruction. If the function type of the call site doesn't match that of the callee, bitcast instructions are inserted where appropriate. If RetBitCast is non-null, it will be used to store the return value bitcast, if created.
Definition at line 365 of file CallPromotionUtils.cpp.
References Arg, assert(), llvm::CastInst::CreateBitOrPointerCast(), createRetBitCast(), llvm::AttributeSet::get(), llvm::AttributeList::get(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::getArgument(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::getAttributes(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::getCalledFunction(), llvm::Function::getContext(), llvm::AttributeList::getFnAttributes(), llvm::Function::getFunctionType(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::getFunctionType(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::getInstruction(), llvm::FunctionType::getNumParams(), llvm::AttributeList::getParamAttributes(), llvm::Function::getParamByValType(), llvm::Function::getReturnType(), llvm::Value::getType(), llvm::Type::isVoidTy(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::mutateFunctionType(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::AttrBuilder::remove(), llvm::AttributeList::ReturnIndex, llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::setArgument(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, CallBrTy, IterTy >::setAttributes(), llvm::Instruction::setMetadata(), and llvm::AttributeFuncs::typeIncompatible().
Referenced by promoteCallWithIfThenElse().
| Instruction * llvm::promoteCallWithIfThenElse | ( | CallSite | CS, |
| Function * | Callee, | ||
| MDNode * | BranchWeights = nullptr |
||
| ) |
Promote the given indirect call site to conditionally call Callee.
This function creates an if-then-else structure at the location of the call site. The original call site is moved into the "else" block. A clone of the indirect call site is promoted, placed in the "then" block, and returned. If BranchWeights is non-null, it will be used to set !prof metadata on the new conditional branch.
Definition at line 449 of file CallPromotionUtils.cpp.
References promoteCall(), and versionCallSite().
Referenced by llvm::pgo::promoteIndirectCall().
| bool llvm::promoteLoopAccessesToScalars | ( | const SmallSetVector< Value *, 8 > & | PointerMustAliases, |
| SmallVectorImpl< BasicBlock *> & | ExitBlocks, | ||
| SmallVectorImpl< Instruction *> & | InsertPts, | ||
| SmallVectorImpl< MemoryAccess *> & | MSSAInsertPts, | ||
| PredIteratorCache & | PIC, | ||
| LoopInfo * | LI, | ||
| DominatorTree * | DT, | ||
| const TargetLibraryInfo * | TLI, | ||
| Loop * | CurLoop, | ||
| AliasSetTracker * | CurAST, | ||
| MemorySSAUpdater * | MSSAU, | ||
| ICFLoopSafetyInfo * | SafetyInfo, | ||
| OptimizationRemarkEmitter * | ORE | ||
| ) |
Try to promote memory values to scalars by sinking stores out of the loop and moving loads to before the loop.
We do this by looping over the stores in the loop, looking for stores to Must pointers which are loop invariant. It takes a set of must-alias values, Loop exit blocks vector, loop exit blocks insertion point vector, PredIteratorCache, LoopInfo, DominatorTree, Loop, AliasSet information for all instructions of the loop and loop safety information as arguments. Diagnostics is emitted via ORE. It returns changed status.
We do this by looping over the stores in the loop, looking for stores to Must pointers which are loop invariant.
Definition at line 1880 of file LICM.cpp.
References llvm::SSAUpdater::AddAvailableValue(), all_of(), llvm::ICFLoopSafetyInfo::anyBlockMayThrow(), assert(), llvm::SetVector< T, SmallVector< T, N >, SmallDenseSet< T, N > >::begin(), llvm::LoopBase< BlockT, LoopT >::blocks(), llvm::LoopBase< BlockT, LoopT >::contains(), llvm::MemorySSAUpdater::createMemoryAccessInBB(), dbgs(), DEBUG_TYPE, llvm::DominatorTree::dominates(), dyn_cast(), llvm::OptimizationRemarkEmitter::emit(), llvm::SmallVectorBase::empty(), llvm::LoopBase< BlockT, LoopT >::end(), llvm::MemorySSA::End, eraseInstruction(), From, llvm::Instruction::getAAMetadata(), llvm::DataLayout::getABITypeAlignment(), llvm::Module::getDataLayout(), llvm::LoopInfoBase< BlockT, LoopT >::getLoopFor(), llvm::LoopBase< BlockT, LoopT >::getLoopPreheader(), llvm::MemorySSAUpdater::getMemorySSA(), llvm::BasicBlock::getModule(), llvm::Value::getName(), llvm::User::getOperand(), llvm::Instruction::getParent(), llvm::Type::getPointerElementType(), llvm::LoopBase< BlockT, LoopT >::getSubLoops(), llvm::BasicBlock::getTerminator(), llvm::Value::getType(), llvm::DataLayout::getTypeStoreSize(), GetUnderlyingObject(), llvm::MemorySSAUpdater::insertUse(), isAllocLikeFn(), isDereferenceableAndAlignedPointer(), llvm::ICFLoopSafetyInfo::isGuaranteedToExecute(), isSafeToExecuteUnconditionally(), LICM, LLVM_DEBUG, llvm::SPII::Load, max(), PointerMayBeCaptured(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::Instruction::setAAMetadata(), llvm::LoadInst::setAlignment(), llvm::Instruction::setDebugLoc(), llvm::LoadInst::setOrdering(), SSA, llvm::SPII::Store, Unordered, llvm::Value::use_empty(), llvm::Value::users(), VerifyMemorySSA, and llvm::MemorySSA::verifyMemorySSA().
Referenced by createLICMPass().
| void llvm::PromoteMemToReg | ( | ArrayRef< AllocaInst *> | Allocas, |
| DominatorTree & | DT, | ||
| AssumptionCache * | AC = nullptr |
||
| ) |
Promote the specified list of alloca instructions into scalar registers, inserting PHI nodes as appropriate.
This function makes use of DominanceFrontier information. This function does not modify the CFG of the function at all. All allocas must be from the same function.
Definition at line 1000 of file PromoteMemoryToRegister.cpp.
References llvm::ArrayRef< T >::empty().
Referenced by eliminateSwiftError(), promoteMemoryToRegister(), and relocationViaAlloca().
Get the intersection (logical and) of all of the potential IR flags of each scalar operation (VL) that will be converted into a vector (I).
If OpValue is non-null, we only consider operations similar to OpValue when intersecting. Flag set: NSW, NUW, exact, and all of fast-math.
Definition at line 991 of file LoopUtils.cpp.
References llvm::Instruction::andIRFlags(), dyn_cast(), llvm::Instruction::getOpcode(), and I.
Referenced by createRdxShuffleMask(), getOrderedReduction(), getShuffleReduction(), and inversePermutation().
| Instruction * llvm::propagateMetadata | ( | Instruction * | Inst, |
| ArrayRef< Value *> | VL | ||
| ) |
Specifically, let Kinds = [MD_tbaa, MD_alias_scope, MD_noalias, MD_fpmath, MD_nontemporal, MD_access_group].
For K in Kinds, we get the MDNode for K from each of the elements of VL, compute their "intersection" (i.e., the most generic metadata value that covers all of the individual values), and set I's metadata for M equal to the intersection value.
This function always sets a (possibly null) value for each K in Kinds.
I after propagating metadata from VL. Definition at line 595 of file VectorUtils.cpp.
References E, llvm::Instruction::getAllMetadataOtherThanDebugLoc(), llvm::Instruction::getMetadata(), llvm::MDNode::getMostGenericAliasScope(), llvm::MDNode::getMostGenericFPMath(), llvm::MDNode::getMostGenericTBAA(), llvm::MDNode::intersect(), intersectAccessGroups(), llvm_unreachable, llvm::Instruction::setMetadata(), and llvm::ArrayRef< T >::size().
Referenced by llvm::InnerLoopVectorizer::addMetadata(), llvm::InterleaveGroup< llvm::Instruction >::addMetadata(), getChainID(), inversePermutation(), and propagateMetadata().
| bool llvm::propagatesFullPoison | ( | const Instruction * | I | ) |
Return true if this function can prove that I is guaranteed to yield full-poison (all bits poison) if at least one of its operands are full-poison (all bits poison).
The exact rules for how poison propagates through instructions have not been settled as of 2015-07-10, so this function is conservative and only considers poison to be propagated in uncontroversial cases. There is no attempt to track values that may be only partially poison.
Definition at line 4496 of file ValueTracking.cpp.
References llvm::MCID::Add, and llvm::Instruction::getOpcode().
Referenced by getRangeForAffineARHelper(), mustExecuteUBIfPoisonOnPathTo(), and rewrite().
| bool llvm::pruneCache | ( | StringRef | Path, |
| CachePruningPolicy | Policy | ||
| ) |
Peform pruning using the supplied policy, returns true if pruning occurred, i.e.
Prune the cache of files that haven't been accessed in a long time.
if Policy.Interval was expired.
As a safeguard against data loss if the user specifies the wrong directory as their cache directory, this function will ignore files not matching the pattern "llvmcache-*".
Definition at line 144 of file CachePruning.cpp.
References llvm::sys::path::append(), count(), dbgs(), llvm::sys::fs::disk_space(), llvm::StringRef::empty(), llvm::CachePruningPolicy::Expiration, File, llvm::FileInfo::FileInfo(), llvm::sys::path::filename(), llvm::sys::fs::space_info::free, llvm::sys::fs::basic_file_status::getLastModificationTime(), llvm::CachePruningPolicy::Interval, llvm::sys::fs::is_directory(), LLVM_DEBUG, llvm::CachePruningPolicy::MaxSizeBytes, llvm::CachePruningPolicy::MaxSizeFiles, llvm::CachePruningPolicy::MaxSizePercentageOfAvailableSpace, llvm::sys::path::native(), no_such_file_or_directory, now(), llvm::sys::fs::remove(), report_fatal_error(), startswith(), llvm::sys::fs::status(), and writeTimestampFile().
Referenced by llvm::ThinLTOCodeGenerator::run().
|
inline |
Definition at line 49 of file GenericValue.h.
References llvm::GenericValue::GenericValue().
Referenced by llvm::ExecutionEngine::getConstantValue(), llvm::ExecutionEngine::getGlobalValueAtAddress(), lle_X_fprintf(), lle_X_printf(), llvm::MCJIT::runFunction(), llvm::orc::OrcMCJITReplacement::runFunction(), llvm::ExecutionEngine::runFunctionAsMain(), llvm::Interpreter::visitAllocaInst(), and llvm::Interpreter::visitInsertValueInst().
|
static |
Definition at line 233 of file APFloat.cpp.
References llvm::sys::path::begin(), createError(), decDigitValue(), and llvm::sys::path::end().
Referenced by interpretDecimal().
| Error llvm::readModuleSummaryIndex | ( | MemoryBufferRef | Buffer, |
| ModuleSummaryIndex & | CombinedIndex, | ||
| uint64_t | ModuleId | ||
| ) |
Parse the specified bitcode buffer and merge the index into CombinedIndex.
Definition at line 6704 of file BitcodeReader.cpp.
References getSingleModule(), and llvm::Expected< T >::takeError().
| Error llvm::readPGOFuncNameStrings | ( | StringRef | NameStrings, |
| InstrProfSymtab & | Symtab | ||
| ) |
NameStrings is a string composed of one of more sub-strings encoded in the format described above.
The substrings are separated by 0 or more zero bytes. This method decodes the string and populates the Symtab.
Definition at line 436 of file InstrProf.cpp.
References llvm::InstrProfSymtab::addFuncName(), llvm::StringRef::bytes_begin(), llvm::StringRef::bytes_end(), consumeError(), llvm::SmallVectorTemplateCommon< T, typename >::data(), decodeULEB128(), E, getInstrProfNameSeparator(), llvm::zlib::isAvailable(), N, Name, P, llvm::SmallVectorBase::size(), llvm::StringRef::split(), llvm::Error::success(), llvm::zlib::uncompress(), uncompress_failed, and zlib_unavailable.
Referenced by llvm::InstrProfSymtab::create(), and getInstrProfNameSeparator().
| bool llvm::recognizeBSwapOrBitReverseIdiom | ( | Instruction * | I, |
| bool | MatchBSwaps, | ||
| bool | MatchBitReversals, | ||
| SmallVectorImpl< Instruction *> & | InsertedInsts | ||
| ) |
Try to match a bswap or bitreverse idiom.
If an idiom is matched, an intrinsic call is inserted before I. Any added instructions are returned in InsertedInsts. They will all have been added to a basic block.
A bitreverse idiom normally requires around 2*BW nodes to be searched (where BW is the bitwidth of the integer type). A bswap idiom requires anywhere up to BW / 4 nodes to be searched, so is significantly faster.
This function returns true on a successful match or false otherwise.
Definition at line 2834 of file Local.cpp.
References bitTransformIsCorrectForBitReverse(), bitTransformIsCorrectForBSwap(), collectBitParts(), llvm::CastInst::Create(), llvm::CallInst::Create(), dyn_cast(), F(), llvm::IntegerType::getBitWidth(), llvm::Intrinsic::getDeclaration(), llvm::Instruction::getModule(), llvm::Operator::getOpcode(), llvm::Value::getType(), llvm::Value::hasOneUse(), llvm::SmallVectorTemplateBase< T >::push_back(), and llvm::Instruction::user_back().
Referenced by getKnownAlignment(), makeBitReverse(), and llvm::InstCombiner::visitAnd().
|
inlinestatic |
Convenience function for recomputing live-in's for MBB.
Definition at line 192 of file LivePhysRegs.h.
References llvm::MachineBasicBlock::clearLiveIns(), and computeAndAddLiveIns().
| void llvm::recomputeLivenessFlags | ( | MachineBasicBlock & | MBB | ) |
Recomputes dead and kill flags in MBB.
Definition at line 275 of file LivePhysRegs.cpp.
References llvm::LivePhysRegs::addLiveOutsNoPristines(), llvm::LivePhysRegs::addUses(), assert(), llvm::LivePhysRegs::available(), llvm::MachineBasicBlock::getParent(), llvm::MachineFunction::getRegInfo(), llvm::MachineRegisterInfo::getTargetRegisterInfo(), llvm::LivePhysRegs::init(), llvm::Register::isPhysicalRegister(), llvm::MIBundleOperandIteratorBase< ValueT >::isValid(), make_range(), MI, MRI, llvm::MachineBasicBlock::rbegin(), Reg, llvm::LivePhysRegs::removeDefs(), and llvm::MachineBasicBlock::rend().
Referenced by operator<<().
| bool llvm::RecursivelyDeleteDeadPHINode | ( | PHINode * | PN, |
| const TargetLibraryInfo * | TLI = nullptr |
||
| ) |
If the specified value is an effectively dead PHI node, due to being a def-use chain of single-use nodes that either forms a cycle or is terminated by a trivially dead instruction, delete it.
RecursivelyDeleteDeadPHINode - If the specified value is an effectively dead PHI node, due to being a def-use chain of single-use nodes that either forms a cycle or is terminated by a trivially dead instruction, delete it.
If that makes any of its operands trivially dead, delete them too, recursively. Return true if a change was made.
Definition at line 523 of file Local.cpp.
References areAllUsesEqual(), llvm::UndefValue::get(), I, llvm::SmallPtrSetImpl< PtrType >::insert(), and RecursivelyDeleteTriviallyDeadInstructions().
Referenced by DeleteDeadPHIs(), and llvm::SimplifyCFGOptions::setAssumptionCache().
| bool llvm::RecursivelyDeleteTriviallyDeadInstructions | ( | Value * | V, |
| const TargetLibraryInfo * | TLI = nullptr, |
||
| MemorySSAUpdater * | MSSAU = nullptr |
||
| ) |
If the specified value is a trivially dead instruction, delete it.
RecursivelyDeleteTriviallyDeadInstructions - If the specified value is a trivially dead instruction, delete it.
If that makes any of its operands trivially dead, delete them too, recursively. Return true if any instructions were deleted.
Definition at line 440 of file Local.cpp.
References dyn_cast(), I, isInstructionTriviallyDead(), and llvm::SmallVectorTemplateBase< T >::push_back().
Referenced by allPredecessorsComeFromSameSource(), CanGenerateTest(), ConvertToSInt(), createFFSIntrinsic(), createSeparateConstOffsetFromGEPPass(), llvm::objcarc::EraseInstruction(), getMaxBackedgeTakenCount(), GetPointerOperand(), hasZeroSignBit(), IsNonLocalValue(), makeBitReverse(), mayLoopAccessLocation(), normalizePredicate(), RecursivelyDeleteDeadPHINode(), llvm::Attributor::run(), runImpl(), llvm::SimplifyCFGOptions::setAssumptionCache(), simplifyLoopAfterUnroll(), simplifyLoopInst(), StripSymbolNames(), and unifyBitWidth().
| void llvm::RecursivelyDeleteTriviallyDeadInstructions | ( | SmallVectorImpl< Instruction *> & | DeadInsts, |
| const TargetLibraryInfo * | TLI = nullptr, |
||
| MemorySSAUpdater * | MSSAU = nullptr |
||
| ) |
Delete all of the instructions in DeadInsts, and all other instructions that deleting these in turn causes to be trivially dead.
The initial instructions in the provided vector must all have empty use lists and satisfy isInstructionTriviallyDead.
DeadInsts will be used as scratch storage for this routine and will be empty afterward.
Definition at line 453 of file Local.cpp.
References assert(), llvm::SmallVectorBase::empty(), llvm::Instruction::eraseFromParent(), I, isInstructionTriviallyDead(), llvm::User::operands(), llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::MemorySSAUpdater::removeMemoryAccess(), salvageDebugInfo(), and llvm::Value::use_empty().
| bool llvm::recursivelySimplifyInstruction | ( | Instruction * | I, |
| const TargetLibraryInfo * | TLI = nullptr, |
||
| const DominatorTree * | DT = nullptr, |
||
| AssumptionCache * | AC = nullptr |
||
| ) |
Recursively attempt to simplify an instruction.
This routine uses SimplifyInstruction to simplify 'I', and if successful replaces uses of 'I' with the simplified value. It then recurses on each of the users impacted. It returns true if any simplifications were performed.
Definition at line 5578 of file InstructionSimplify.cpp.
References replaceAndRecursivelySimplifyImpl().
Referenced by RemovePredecessorAndSimplify().
| llvm::RegionGraphTraits | ( | MachineRegion | , |
| MachineRegionNode | |||
| ) |
| llvm::RegionGraphTraits | ( | Region | , |
| RegionNode | |||
| ) |
| llvm::RegionNodeGraphTraits | ( | MachineRegionNode | , |
| MachineBasicBlock | , | ||
| MachineRegion | |||
| ) |
| llvm::RegionNodeGraphTraits | ( | RegionNode | , |
| BasicBlock | , | ||
| Region | |||
| ) |
| bool llvm::registerDefinedBetween | ( | unsigned | Reg, |
| MachineBasicBlock::iterator | From, | ||
| MachineBasicBlock::iterator | To, | ||
| const TargetRegisterInfo * | TRI | ||
| ) |
Return true if Reg is defd between From and To.
Definition at line 5376 of file ARMBaseInstrInfo.cpp.
References I.
Referenced by findCMPToFoldIntoCBZ(), isValidCoprocessorNumber(), and RemoveDeadAddBetweenLEAAndJT().
|
inline |
Remap the operands, metadata, arguments, and instructions of a function.
Calls MapValue() on prefix data, prologue data, and personality function; calls MapMetadata() on each attached MDNode; remaps the argument types using the provided TypeMapper; and calls RemapInstruction() on every instruction.
Definition at line 264 of file ValueMapper.h.
References llvm::ValueMapper::remapFunction().
Referenced by wrapConstantAsMetadata().
| void llvm::remapInstruction | ( | Instruction * | I, |
| ValueToValueMapTy & | VMap | ||
| ) |
Convert the instruction operands from referencing the current values into those specified by VMap.
Definition at line 68 of file LoopUnroll.cpp.
References C, llvm::numbers::e, E, llvm::ValueMap< KeyT, ValueT, Config >::end(), llvm::ValueMap< KeyT, ValueT, Config >::find(), llvm::MetadataAsValue::get(), llvm::ValueAsMetadata::get(), llvm::Value::getContext(), llvm::User::getNumOperands(), llvm::User::getOperand(), op, llvm::ValueMapIterator< DenseMapT, KeyT >::ValueTypeProxy::second, llvm::User::setOperand(), and wrap().
Referenced by LLVMInitializeHexagonDisassembler(), UnrollAndJamLoop(), UnrollLoop(), and wrapConstantAsMetadata().
|
inline |
Convert the instruction operands from referencing the current values into those specified by VM.
If RF_IgnoreMissingLocals is set and an operand can't be found via MapValue(), use the old value. Otherwise assert that this doesn't happen.
Note that MapValue() only returns nullptr for SSA values missing from VM.
Definition at line 251 of file ValueMapper.h.
References llvm::ValueMapper::remapInstruction().
Referenced by assertBranchOrSelectConditionHoisted(), buildClonedLoopBlocks(), CloneAndPruneIntoFromInst(), CloneFunction(), CloneFunctionInto(), remapInstructionsInBlocks(), shouldRotateLoopExitingLatch(), and UnrollRuntimeLoopRemainder().
| void llvm::remapInstructionsInBlocks | ( | const SmallVectorImpl< BasicBlock *> & | Blocks, |
| ValueToValueMapTy & | VMap | ||
| ) |
Remaps instructions in Blocks using the mapping in VMap.
Definition at line 738 of file CloneFunction.cpp.
References RemapInstruction(), RF_IgnoreMissingLocals, and RF_NoModuleLevelChanges.
Referenced by peelLoop(), llvm::InlineFunctionInfo::reset(), and llvm::LoopVersioning::versionLoop().
| void llvm::remove_bad_alloc_error_handler | ( | ) |
Restores default bad alloc error handling behavior.
Definition at line 139 of file ErrorHandling.cpp.
References BadAllocErrorHandler, BadAllocErrorHandlerMutex, BadAllocErrorHandlerUserData, and Lock.
Referenced by llvm::ScopedFatalErrorHandler::~ScopedFatalErrorHandler().
| void llvm::remove_fatal_error_handler | ( | ) |
Restores default error handling behaviour.
Definition at line 74 of file ErrorHandling.cpp.
References ErrorHandler, ErrorHandlerMutex, ErrorHandlerUserData, and Lock.
Referenced by LLVMResetFatalErrorHandler(), and llvm::ScopedFatalErrorHandler::~ScopedFatalErrorHandler().
| auto llvm::remove_if | ( | R && | Range, |
| UnaryPredicate | P | ||
| ) | -> decltype(adl_begin(Range)) |
Provide wrappers to std::remove_if which take ranges instead of having to pass begin/end explicitly.
Definition at line 1222 of file STLExtras.h.
References adl_begin(), adl_end(), and P.
Referenced by llvm::SelectionDAGBuilder::dropDanglingDebugInfo(), llvm::MDGlobalAttachmentMap::erase(), llvm::PriorityWorklist< llvm::LazyCallGraph::SCC *, SmallVector< llvm::LazyCallGraph::SCC *, N >, SmallDenseMap< llvm::LazyCallGraph::SCC *, ptrdiff_t > >::erase_if(), erase_if(), findArrayDimensionsRec(), getArrayElements(), getBranchInsertPoint(), getDwarfRegNum(), getLayoutSuccessorProbThreshold(), getMaxBackedgeTakenCount(), llvm::RISCVInstrInfo::getOutliningCandidateInfo(), llvm::AArch64InstrInfo::getOutliningCandidateInfo(), getSignature(), getTypePartition(), InlineFunction(), llvm::OuterAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs >::Result::invalidate(), isSupportedGuardInstruction(), isVectorPromotionViable(), mayTailCallThisCC(), node_eq(), llvm::SetVector< llvm::AbstractAttribute *>::remove_if(), llvm::MDAttachmentMap::remove_if(), llvm::LiveRange::removeValNo(), llvm::InlinerPass::run(), selectI64Imm(), AllocaSlices::SliceBuilder::SliceBuilder(), trimBlockToPageSize(), tryToSpeculatePHIs(), unique_unsorted(), llvm::AssumptionCache::unregisterAssumption(), and validThroughout().
| unsigned llvm::removeAllNonTerminatorAndEHPadInstructions | ( | BasicBlock * | BB | ) |
Remove all instructions from a basic block other than it's terminator and any present EH pad instructions.
Definition at line 1894 of file Local.cpp.
References llvm::Instruction::eraseFromParent(), llvm::BasicBlock::front(), llvm::UndefValue::get(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::BasicBlock::getTerminator(), llvm::Value::getType(), llvm::Instruction::isEHPad(), llvm::Type::isTokenTy(), llvm::Value::replaceAllUsesWith(), and llvm::Value::use_empty().
Referenced by getKnownAlignment(), prepareICWorklistFromFunction(), and runSCCP().
| void llvm::RemovePredecessorAndSimplify | ( | BasicBlock * | BB, |
| BasicBlock * | Pred, | ||
| DomTreeUpdater * | DTU = nullptr |
||
| ) |
Like BasicBlock::removePredecessor, this method is called when we're about to delete Pred as a predecessor of BB.
If BB contains any PHI nodes, this drops the entries in the PHI nodes for Pred.
Unlike the removePredecessor method, this attempts to simplify uses of PHI nodes that collapse into identity values. For example, if we have: x = phi(1, 0, 0, 0) y = and x, z
.. and delete the predecessor corresponding to the '1', this will attempt to recursively fold the 'and' to 0.
Definition at line 642 of file Local.cpp.
References llvm::DomTreeUpdater::applyUpdatesPermissive(), llvm::BasicBlock::begin(), llvm::DominatorTreeBase< BasicBlock, false >::Delete, llvm::BasicBlock::front(), recursivelySimplifyInstruction(), and llvm::BasicBlock::removePredecessor().
Referenced by llvm::SimplifyCFGOptions::setAssumptionCache().
| bool llvm::RemoveRedundantDbgInstrs | ( | BasicBlock * | BB | ) |
Try to remove redundant dbg.value instructions from given basic block.
Returns true if at least one instruction was removed.
Definition at line 413 of file BasicBlockUtils.cpp.
References dbgs(), llvm::Value::getName(), LLVM_DEBUG, removeRedundantDbgInstrsUsingBackwardScan(), and removeRedundantDbgInstrsUsingForwardScan().
Referenced by INITIALIZE_PASS().
| bool llvm::removeUnreachableBlocks | ( | Function & | F, |
| DomTreeUpdater * | DTU = nullptr, |
||
| MemorySSAUpdater * | MSSAU = nullptr |
||
| ) |
Remove all blocks that can not be reached from the function's entry.
removeUnreachableBlocks - Remove blocks that are not reachable, even if they are in a dead cycle.
Returns true if any basic block was removed.
Return true if a change was made, false otherwise.
Definition at line 2231 of file Local.cpp.
References llvm::DomTreeUpdater::applyUpdatesPermissive(), assert(), llvm::DominatorTreeBase< BasicBlock, false >::Delete, llvm::DomTreeUpdater::deleteBB(), Deleted, llvm::SmallPtrSetImpl< PtrType >::end(), llvm::Instruction::eraseFromParent(), llvm::SmallPtrSetImpl< PtrType >::find(), llvm::UndefValue::get(), llvm::Value::getType(), llvm::SetVector< T, SmallVector< T, N >, SmallDenseSet< T, N > >::insert(), llvm::DomTreeUpdater::isBBPendingDeletion(), markAliveBlocks(), llvm::MemorySSAUpdater::removeBlocks(), llvm::Value::replaceAllUsesWith(), llvm::SmallPtrSetImplBase::size(), llvm::Function::size(), succ_empty(), Successor, successors(), and llvm::Value::use_empty().
Referenced by addMustTailToCoroResumes(), enableCallSafepoints(), getKnownAlignment(), INITIALIZE_PASS(), iterativelyFlattenCFG(), lowerConstantIntrinsics(), OptimizeFunctions(), postSplitCleanup(), llvm::RewriteStatepointsForGC::runOnFunction(), simplifyFunctionCFG(), splitCoroutine(), and TypeSizeToSizeIndex().
| void llvm::removeUnwindEdge | ( | BasicBlock * | BB, |
| DomTreeUpdater * | DTU = nullptr |
||
| ) |
Replace 'BB's terminator with one that does not have an unwind successor block.
Rewrites invoke to call, etc. Updates any PHIs in unwind successor.
| BB | Block whose terminator will be replaced. Its terminator must have an unwind successor. |
Definition at line 2192 of file Local.cpp.
References llvm::CatchSwitchInst::addHandler(), llvm::DomTreeUpdater::applyUpdatesPermissive(), changeToCall(), llvm::CatchSwitchInst::Create(), llvm::CleanupReturnInst::Create(), llvm::DominatorTreeBase< BasicBlock, false >::Delete, llvm::Instruction::eraseFromParent(), llvm::Instruction::getDebugLoc(), llvm::BasicBlock::getTerminator(), llvm_unreachable, llvm::BasicBlock::removePredecessor(), llvm::Value::replaceAllUsesWith(), llvm::Instruction::setDebugLoc(), and llvm::Value::takeName().
Referenced by getKnownAlignment(), removeEmptyCleanup(), and SimplifyFunction().
| bool llvm::renameModuleForThinLTO | ( | Module & | M, |
| const ModuleSummaryIndex & | Index, | ||
| SetVector< GlobalValue *> * | GlobalsToImport = nullptr |
||
| ) |
Perform in-place global value handling on the given Module for exported local functions renamed and promoted for ThinLTO.
Definition at line 321 of file FunctionImportUtils.cpp.
References llvm::FunctionImportGlobalProcessing::run().
Referenced by doImportingForModule(), llvm::FunctionImportGlobalProcessing::FunctionImportGlobalProcessing(), and llvm::lto::thinBackend().
| void llvm::replace | ( | Container & | Cont, |
| typename Container::iterator | ContIt, | ||
| typename Container::iterator | ContEnd, | ||
| RandomAccessIterator | ValIt, | ||
| RandomAccessIterator | ValEnd | ||
| ) |
Given a sequence container Cont, replace the range [ContIt, ContEnd) with the range [ValIt, ValEnd) (which is not from the same container).
Definition at line 1347 of file STLExtras.h.
Referenced by llvm::orc::JITDylib::getExecutionSession(), llvm::orc::MaterializationResponsibility::getSymbols(), mergeConstants(), replace(), and simplifyAllocaArraySize().
| void llvm::replace | ( | Container & | Cont, |
| typename Container::iterator | ContIt, | ||
| typename Container::iterator | ContEnd, | ||
| Range | R | ||
| ) |
Given a sequence container Cont, replace the range [ContIt, ContEnd) with the range R.
Definition at line 1366 of file STLExtras.h.
References replace().
| bool llvm::replaceAllDbgUsesWith | ( | Instruction & | From, |
| Value & | To, | ||
| Instruction & | DomPoint, | ||
| DominatorTree & | DT | ||
| ) |
Point debug users of From to To or salvage them.
Use this function only when replacing all uses of From with To, with a guarantee that From is going to be deleted.
Follow these rules to prevent use-before-def of To: . If To is a linked Instruction, set DomPoint to To. . If To is an unlinked Instruction, set DomPoint to the Instruction To will be inserted after. . If To is not an Instruction (e.g a Constant), the choice of DomPoint is arbitrary. Pick From for simplicity.
If a debug user cannot be preserved without reordering variable updates or introducing a use-before-def, it is either salvaged (salvageDebugInfo) or deleted. Returns true if any debug users were updated.
Definition at line 1840 of file Local.cpp.
References llvm::DIExpression::appendExt(), assert(), llvm::Module::getDataLayout(), llvm::Instruction::getModule(), llvm::Type::getPrimitiveSizeInBits(), llvm::DIVariable::getSignedness(), llvm::Value::getType(), isBitCastSemanticsPreserving(), llvm::Type::isIntegerTy(), llvm::Value::isUsedByMetadata(), None, rewriteDebugUsers(), llvm::DIBasicType::Signed, and Signed.
Referenced by llvm::InstCombiner::commonCastTransforms(), getKnownAlignment(), truncateIVUse(), and llvm::InstCombiner::visitZExt().
| bool llvm::replaceAndRecursivelySimplify | ( | Instruction * | I, |
| Value * | SimpleV, | ||
| const TargetLibraryInfo * | TLI = nullptr, |
||
| const DominatorTree * | DT = nullptr, |
||
| AssumptionCache * | AC = nullptr, |
||
| SmallSetVector< Instruction *, 8 > * | UnsimplifiedUsers = nullptr |
||
| ) |
Replace all uses of 'I' with 'SimpleV' and simplify the uses recursively.
This first performs a normal RAUW of I with SimpleV. It then recursively attempts to simplify those users updated by the operation. The 'I' instruction must not be equal to the simplified value 'SimpleV'. If UnsimplifiedUsers is provided, instructions that could not be simplified are added to it.
The function returns true if any simplifications were performed.
Definition at line 5585 of file InstructionSimplify.cpp.
References assert(), and replaceAndRecursivelySimplifyImpl().
Referenced by despeculateCountZeros(), replaceConditionalBranchesOnConstant(), and replaceWithConstant().
|
static |
Definition at line 786 of file PredicateInfo.cpp.
References dyn_cast(), E, llvm::Instruction::eraseFromParent(), llvm::IntrinsicInst::getIntrinsicID(), llvm::User::getOperand(), llvm::PredicateInfo::getPredicateInfoFor(), I, inst_begin(), inst_end(), and llvm::Value::replaceAllUsesWith().
Referenced by llvm::PredicateInfoPrinterPass::run(), and llvm::PredicateInfoPrinterLegacyPass::runOnFunction().
| bool llvm::replaceDbgDeclare | ( | Value * | Address, |
| Value * | NewAddress, | ||
| Instruction * | InsertBefore, | ||
| DIBuilder & | Builder, | ||
| uint8_t | DIExprFlags, | ||
| int | Offset | ||
| ) |
Replaces llvm.dbg.declare instruction when the address it describes is replaced with a new value.
If Deref is true, an additional DW_OP_deref is prepended to the expression. If Offset is non-zero, a constant displacement is added to the expression (between the optional Deref operations). Offset can be negative.
Definition at line 1549 of file Local.cpp.
References assert(), llvm::Instruction::eraseFromParent(), FindDbgAddrUses(), llvm::ilist_node_with_parent< NodeTy, ParentTy, Options >::getNextNode(), and llvm::DIExpression::prepend().
Referenced by getKnownAlignment(), and replaceDbgDeclareForAlloca().
| bool llvm::replaceDbgDeclareForAlloca | ( | AllocaInst * | AI, |
| Value * | NewAllocaAddress, | ||
| DIBuilder & | Builder, | ||
| uint8_t | DIExprFlags, | ||
| int | Offset | ||
| ) |
Replaces llvm.dbg.declare instruction when the alloca it describes is replaced with a new value.
If Deref is true, an additional DW_OP_deref is prepended to the expression. If Offset is non-zero, a constant displacement is added to the expression (between the optional Deref operations). Offset can be negative. The new llvm.dbg.declare is inserted immediately after AI.
Definition at line 1569 of file Local.cpp.
References llvm::ilist_node_with_parent< NodeTy, ParentTy, Options >::getNextNode(), and replaceDbgDeclare().
Referenced by getKnownAlignment(), and InlineFunction().
| bool llvm::replaceDbgUsesWithUndef | ( | Instruction * | I | ) |
Replace all the uses of an SSA value in .dbg intrinsics with undef.
This is useful for signaling that a variable, e.g. has been found dead and hence it's unavailable at a given program point. Returns true if the dbg values have been changed.
Definition at line 489 of file Local.cpp.
References findDbgUsers(), llvm::MetadataAsValue::get(), llvm::ValueAsMetadata::get(), llvm::UndefValue::get(), llvm::Value::getType(), llvm::User::setOperand(), and llvm::RegState::Undef.
Referenced by LinearizeExprTree(), salvageDebugInfoOrMarkUndef(), and llvm::SimplifyCFGOptions::setAssumptionCache().
| void llvm::replaceDbgValueForAlloca | ( | AllocaInst * | AI, |
| Value * | NewAllocaAddress, | ||
| DIBuilder & | Builder, | ||
| int | Offset = 0 |
||
| ) |
Replaces multiple llvm.dbg.value instructions when the alloca it describes is replaced with a new value.
If Offset is non-zero, a constant displacement is added to the expression (after the mandatory Deref). Offset can be negative. New llvm.dbg.value instructions are inserted at the locations of the instructions they replace.
Definition at line 1599 of file Local.cpp.
References llvm::Value::getContext(), llvm::MetadataAsValue::getIfExists(), llvm::LocalAsMetadata::getIfExists(), llvm::Use::getUser(), and replaceOneDbgValueForAlloca().
Referenced by getKnownAlignment().
| unsigned llvm::replaceDominatedUsesWith | ( | Value * | From, |
| Value * | To, | ||
| DominatorTree & | DT, | ||
| const BasicBlockEdge & | Edge | ||
| ) |
Replace each use of 'From' with 'To' if that use is dominated by the given edge.
Returns the number of replacements made.
Definition at line 2513 of file Local.cpp.
References llvm::DominatorTree::dominates(), and replaceDominatedUsesWith().
Referenced by getKnownAlignment(), isOnlyReachableViaThisEdge(), and sinkInstruction().
| unsigned llvm::replaceDominatedUsesWith | ( | Value * | From, |
| Value * | To, | ||
| DominatorTree & | DT, | ||
| const BasicBlock * | BB | ||
| ) |
Replace each use of 'From' with 'To' if that use is dominated by the end of the given BasicBlock.
Returns the number of replacements made.
Definition at line 2522 of file Local.cpp.
References getParent(), I, llvm::DominatorTreeBase< NodeT, IsPostDom >::properlyDominates(), and replaceDominatedUsesWith().
| void llvm::ReplaceInstWithInst | ( | BasicBlock::InstListType & | BIL, |
| BasicBlock::iterator & | BI, | ||
| Instruction * | I | ||
| ) |
Replace the instruction specified by BI with the instruction specified by I.
Copies DebugLoc from BI to I, if I doesn't already have a DebugLoc. The original instruction is deleted and BI is updated to point to the new instruction.
Definition at line 449 of file BasicBlockUtils.cpp.
References assert(), llvm::Instruction::getDebugLoc(), llvm::Instruction::getParent(), llvm::iplist_impl< IntrusiveListT, TraitsT >::insert(), ReplaceInstWithValue(), and llvm::Instruction::setDebugLoc().
Referenced by createOrdering(), llvm::InnerLoopVectorizer::createVectorizedLoopSkeleton(), llvm::InnerLoopVectorizer::emitMemRuntimeChecks(), llvm::InnerLoopVectorizer::emitMinimumIterationCountCheck(), llvm::InnerLoopVectorizer::emitSCEVChecks(), llvm::VPBranchOnMaskRecipe::execute(), llvm::VPBasicBlock::execute(), INITIALIZE_PASS(), instrumentMaskedLoadOrStore(), isKnownTypeIdMember(), ReplaceInstWithInst(), simplifyTerminatorLeadingToRet(), and sinkRegion().
| void llvm::ReplaceInstWithInst | ( | Instruction * | From, |
| Instruction * | To | ||
| ) |
Replace the instruction specified by From with the instruction specified by To.
Copies DebugLoc from BI to I, if I doesn't already have a DebugLoc.
Definition at line 469 of file BasicBlockUtils.cpp.
References llvm::BasicBlock::getInstList(), llvm::Instruction::getParent(), and ReplaceInstWithInst().
| void llvm::ReplaceInstWithValue | ( | BasicBlock::InstListType & | BIL, |
| BasicBlock::iterator & | BI, | ||
| Value * | V | ||
| ) |
Replace all uses of an instruction (specified by BI) with a value, then remove and delete the original instruction.
Definition at line 435 of file BasicBlockUtils.cpp.
References llvm::iplist_impl< IntrusiveListT, TraitsT >::erase(), llvm::Value::hasName(), I, llvm::Value::replaceAllUsesWith(), and llvm::Value::takeName().
Referenced by ReplaceInstWithInst().
| unsigned llvm::replaceNonLocalUsesWith | ( | Instruction * | From, |
| Value * | To | ||
| ) |
Definition at line 2496 of file Local.cpp.
References assert(), llvm::Instruction::getParent(), llvm::Value::getType(), llvm::Use::getUser(), I, llvm::Use::set(), llvm::Value::use_begin(), and llvm::Value::use_end().
Referenced by getKnownAlignment().
| const SCEV * llvm::replaceSymbolicStrideSCEV | ( | PredicatedScalarEvolution & | PSE, |
| const ValueToValueMap & | PtrToStride, | ||
| Value * | Ptr, | ||
| Value * | OrigPtr = nullptr |
||
| ) |
Return the SCEV corresponding to a pointer with the symbolic stride replaced with constant one, assuming the SCEV predicate associated with PSE is true.
If necessary this method will version the stride of the pointer according to PtrToStride and therefore add further predicates to PSE.
If OrigPtr is not null, use it to look up the stride value instead of Ptr. PtrToStride provides the mapping between the pointer value and its stride as collected by LoopVectorizationLegality::collectStridedAccess.
Definition at line 145 of file LoopAccessAnalysis.cpp.
References llvm::PredicatedScalarEvolution::addPredicate(), dbgs(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), llvm::ScalarEvolution::getEqualPredicate(), llvm::ScalarEvolution::getOne(), llvm::ScalarEvolution::getSCEV(), llvm::PredicatedScalarEvolution::getSCEV(), llvm::PredicatedScalarEvolution::getSE(), llvm::Value::getType(), LLVM_DEBUG, SI, and stripIntegerCast().
Referenced by llvm::LoopAccessInfo::getPSE(), getPtrStride(), hasComputableBounds(), llvm::RuntimePointerChecking::insert(), and possiblyDemandedEltsInMask().
Reports a bad alloc error, calling any user defined bad alloc error handler.
In contrast to the generic 'report_fatal_error' functions, this function is expected to return, e.g. the user defined error handler throws an exception.
Note: When throwing an exception in the bad alloc handler, make sure that the following unwind succeeds, e.g. do not trigger additional allocations in the unwind chain.
If no error handler is installed (default), then a bad_alloc exception is thrown, if LLVM is compiled with exception support, otherwise an assertion is called.
Definition at line 147 of file ErrorHandling.cpp.
References BadAllocErrorHandler, BadAllocErrorHandlerMutex, BadAllocErrorHandlerUserData, install_out_of_memory_new_handler(), llvm_unreachable, Lock, and write().
Referenced by llvm::SmallVectorTemplateBase< T >::grow(), llvm::SmallVectorBase::grow_pod(), out_of_memory_new_handler(), safe_calloc(), safe_malloc(), safe_realloc(), and llvm::ScopedFatalErrorHandler::~ScopedFatalErrorHandler().
Reports a serious error, calling any installed error handler.
These functions are intended to be used for error conditions which are outside the control of the compiler (I/O errors, invalid user input, etc.)
If no error handler is installed the default is to print the message to standard error, followed by a newline. After the error handler is called this function will call exit(1), it does not return.
Definition at line 82 of file ErrorHandling.cpp.
References report_fatal_error().
Definition at line 86 of file ErrorHandling.cpp.
References report_fatal_error().
Definition at line 90 of file ErrorHandling.cpp.
References report_fatal_error().
Definition at line 94 of file ErrorHandling.cpp.
References llvm::StringRef::data(), ErrorHandler, ErrorHandlerMutex, ErrorHandlerUserData, llvm::sys::Process::Exit(), Lock, llvm::sys::RunInterruptHandlers(), llvm::StringRef::size(), llvm::Twine::str(), llvm::raw_svector_ostream::str(), and write().
Report a serious error, calling any installed error handler.
See ErrorHandling.h.
Definition at line 140 of file Error.cpp.
Referenced by addData(), llvm::ThinLTOCodeGenerator::addModule(), llvm::MCJIT::addObjectFile(), llvm::TargetPassConfig::addPass(), llvm::TargetPassConfig::addRegAssignmentFast(), llvm::X86FrameLowering::adjustForHiPEPrologue(), llvm::ARMFrameLowering::adjustForSegmentedStacks(), llvm::X86FrameLowering::adjustForSegmentedStacks(), llvm::RegAllocBase::allocatePhysRegs(), allocateSGPR32InputImpl(), llvm::AMDGPUDisassembler::AMDGPUDisassembler(), llvm::CCState::AnalyzeFormalArguments(), llvm::CCState::AnalyzeReturn(), AnalyzeReturnValues(), llvm::RuntimeDyldImpl::applyExternalSymbolRelocations(), ARM64EmitUnwindInfo(), llvm::yaml::Stream::begin(), llvm::MachObjectWriter::bindIndirectSymbols(), branchMaxOffsets(), buildCallOperands(), buildFrameType(), llvm::coro::Shape::buildFrom(), buildModuleSummaryIndex(), calcArraySize(), calculateCXXStateNumbers(), calculateSEHStateNumbers(), llvm::Interpreter::callExternalFunction(), callWaitsOnFunctionReturn(), canLowerToLDG(), CC_AIX(), CC_Lanai32_VarArg(), CC_RISCV_FastCC(), CC_SystemZ_GHC_Error(), CC_X86_Intr(), llvm::R600TargetLowering::CCAssignFnForCall(), llvm::AMDGPUCallLowering::CCAssignFnForCall(), llvm::AArch64TargetLowering::CCAssignFnForCall(), llvm::AMDGPUCallLowering::CCAssignFnForReturn(), llvm::ARMTargetLowering::CCAssignFnForReturn(), NoAutoPaddingScope::changeAndComment(), llvm::MCELFStreamer::ChangeSection(), llvm::MCObjectStreamer::changeSectionImpl(), checkAddrSpaceIsValidForLibcall(), CheckBundleSubtargets(), checkMachOComdat(), checkScale(), llvm::object::XCOFFObjectFile::checkSymbolEntryPointer(), llvm::RegionBase< RegionTraits< Function > >::clearNodeCache(), codegen(), combineInstructionsOverFunction(), llvm::LTOCodeGenerator::compile(), computeBytesPoppedByCalleeForSRet(), computeCalleeSaveRegisterPairs(), computeDeadSymbols(), llvm::RuntimeDyldImpl::computeSectionStubBufSize(), computeTargetABI(), ConvertDoubleToBytes(), llvm::NVPTXInstrInfo::copyPhysReg(), llvm::SIInstrInfo::copyPhysReg(), llvm::X86InstrInfo::copyPhysReg(), llvm::TargetMachineBuilder::create(), createBlockExtractorPass(), llvm::MCAsmBackend::createDwoObjectWriter(), llvm::SpecialCaseList::createOrDie(), createPPCMCAsmInfo(), CreateZ3Solver(), determineSVEStackObjectOffsets(), llvm::NVPTXAsmPrinter::doFinalization(), doImportingForModule(), llvm::NVPTXAsmPrinter::doInitialization(), llvm::SplitEditor::dump(), llvm::RISCVRegisterInfo::eliminateFrameIndex(), llvm::AMDGPUTargetELFStreamer::emitAMDGPULDS(), llvm::MCELFStreamer::EmitBundleAlignMode(), llvm::MCELFStreamer::EmitBundleLock(), llvm::MCELFStreamer::EmitBundleUnlock(), EmitCamlGlobal(), llvm::MCELFStreamer::EmitCommonSymbol(), llvm::MCWinCOFFStreamer::EmitCommonSymbol(), llvm::RuntimeDyldImpl::emitCommonSymbols(), llvm::MipsTargetStreamer::emitDirectiveModuleOddSPReg(), llvm::MCStreamer::EmitDTPRel32Value(), llvm::MCStreamer::EmitDTPRel64Value(), llvm::MachineInstr::emitError(), llvm::AsmPrinter::EmitFunctionEntryLabel(), EmitGCCInlineAsmStr(), llvm::ExecutionEngine::emitGlobals(), llvm::AMDGPUAsmPrinter::EmitGlobalVariable(), llvm::AsmPrinter::EmitGlobalVariable(), llvm::MCStreamer::EmitGPRel32Value(), llvm::MCStreamer::EmitGPRel64Value(), llvm::ThinLTOCodeGenerator::emitImports(), llvm::BPFTargetLowering::EmitInstrWithCustomInserter(), llvm::SITargetLowering::EmitInstrWithCustomInserter(), llvm::TargetLoweringObjectFileELF::emitModuleMetadata(), llvm::TargetLoweringObjectFileMachO::emitModuleMetadata(), EmitMSInlineAsmStr(), llvm::MCJIT::emitObject(), llvm::MipsSEFrameLowering::emitPrologue(), llvm::SparcFrameLowering::emitPrologue(), llvm::VEFrameLowering::emitPrologue(), llvm::XCoreFrameLowering::emitPrologue(), llvm::SystemZFrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), llvm::PPCFrameLowering::emitPrologue(), emitPrologueEpilogueSPUpdate(), llvm::MCStreamer::EmitRawTextImpl(), llvm::RuntimeDyldImpl::emitSection(), llvm::AsmPrinter::EmitSpecialLLVMGlobal(), llvm::MCXCOFFStreamer::EmitSymbolAttribute(), llvm::MCStreamer::EmitTPRel32Value(), llvm::MCStreamer::EmitTPRel64Value(), llvm::MCELFStreamer::EmitValueImpl(), llvm::MCELFStreamer::EmitValueToAlignment(), llvm::MCObjectStreamer::EmitWeakReference(), llvm::MCXCOFFStreamer::EmitZerofill(), ExpandCryptoAEK(), llvm::CodeExtractor::extractCodeRegion(), fail(), FindFirstNonCommonLetter(), findScratchNonCalleeSaveRegister(), llvm::MCJIT::findSymbol(), findUnwindDestinations(), llvm::MCAssembler::Finish(), FixedPointIntrinsicToOpcode(), foldPatchpoint(), FPCCToARMCC(), llvm::MCJIT::generateCodeForModule(), llvm::BitstreamCursor::getAbbrev(), GetAbsDifference(), getAccessVariant(), getAddrSpace(), GetAEABIUnwindPersonalityName(), getAlignment(), llvm::RegBankSelect::getAnalysisUsage(), llvm::object::ELFObjectFile< ELFT >::getArch(), getARMFixupKindMachOInfo(), llvm::object::MachOUniversalBinary::ObjectForArch::getAsArchive(), llvm::object::MachOUniversalBinary::ObjectForArch::getAsObjectFile(), getAssociatedSymbol(), llvm::PPCFrameLowering::getBasePointerSaveOffset(), getBufferOffsetForMMO(), llvm::TargetLoweringObjectFileELF::getCFIPersonalitySymbol(), llvm::MCRegisterInfo::getCodeViewRegNum(), getComdatGVForCOFF(), getComparePred(), getCondFromFCMOV(), llvm::BitcodeReaderValueList::getConstantFwdRef(), llvm::ExecutionEngine::getConstantValue(), getCopyFromParts(), llvm::GCOVOptions::getDefault(), llvm::TargetLoweringBase::getDefaultSafeStackPointerLocation(), llvm::HexagonInstrInfo::getDotNewOp(), getDSShaderTypeValue(), getDUPLANEOp(), getEffectiveAArch64CodeModel(), getEffectiveCodeModel(), getEffectivePPCCodeModel(), getEffectiveSparcCodeModel(), getEffectiveSystemZCodeModel(), getEffectiveX86CodeModel(), getEffectiveXCoreCodeModel(), llvm::object::getELFAddend(), getELFComdat(), llvm::MCSymbolMachO::getEncodedFlags(), getEntryForPercentile(), llvm::XCoreTargetObjectFile::getExplicitSectionGlobal(), llvm::TargetLoweringObjectFileMachO::getExplicitSectionGlobal(), llvm::TargetLoweringObjectFileXCOFF::getExplicitSectionGlobal(), llvm::object::ELFObjectFile< ELFT >::getFileFormatName(), getFixupKindLog2Size(), getFixupKindSize(), getFixupOffset(), getFrameIndexOperandNum(), llvm::PPCFrameLowering::getFramePointerSaveOffset(), llvm::GCModuleInfo::getGCStrategy(), getGlobalVariableI32(), getInt(), getLabelOffset(), getLeastCommonType(), llvm::XCOFF::getMappingClassString(), getMemCmpLoad(), getMnemonicFromOpcode(), getMOVL(), llvm::RegionBase< RegionTraits< Function > >::getNameStr(), getOrInsertGlobal(), getPassInfo(), getPassNameAndInstanceNum(), getPointerOperandIndex(), llvm::RTDyldMemoryManager::getPointerToNamedFunction(), GetPromotionOpcode(), getRegClassForSVT(), getRegClassForUnfoldedLoad(), llvm::VETargetLowering::getRegisterByName(), llvm::LanaiTargetLowering::getRegisterByName(), llvm::SparcTargetLowering::getRegisterByName(), llvm::AVRTargetLowering::getRegisterByName(), llvm::RISCVTargetLowering::getRegisterByName(), llvm::HexagonTargetLowering::getRegisterByName(), llvm::SITargetLowering::getRegisterByName(), llvm::MipsTargetLowering::getRegisterByName(), llvm::PPCTargetLowering::getRegisterByName(), llvm::X86TargetLowering::getRegisterByName(), llvm::TargetLowering::getRegisterByName(), llvm::object::ELFObjectFile< ELFT >::getRel(), llvm::object::ELFObjectFile< ELFT >::getRela(), llvm::object::XCOFFRelocation32::getRelocatedLength(), getRelocType(), llvm::object::ELFObjectFile< ELFT >::getRelSection(), llvm::X86RegisterInfo::getReservedRegs(), getRetpolineSymbol(), GetScratchRegister(), getSEHRegistrationNodeSize(), getSignature(), llvm::TargetLoweringObjectFileXCOFF::getStaticCtorSection(), llvm::TargetLoweringObjectFileXCOFF::getStaticDtorSection(), llvm::TargetLoweringObjectFileXCOFF::getStorageClassForGlobal(), getStruct(), llvm::RISCVTargetMachine::getSubtargetImpl(), llvm::object::ELFObjectFile< ELFT >::getSymbol(), llvm::MachObjectWriter::getSymbolAddress(), llvm::MCJIT::getSymbolAddress(), llvm::object::COFFObjectFile::getSymbolAuxData(), llvm::object::MachOObjectFile::getSymbolByIndex(), llvm::SelectionDAG::getSymbolFunctionGlobalAddress(), llvm::object::MachOObjectFile::getSymbolIndex(), llvm::object::XCOFFObjectFile::getSymbolNameByIndex(), getSymbolOffsetImpl(), getSymbolValue(), getTargetNode(), llvm::HexagonTargetLowering::getTargetNodeName(), llvm::TargetLoweringObjectFile::getTTypeReference(), getUnconditionalBrDisp(), getUniformBase(), getWasmComdat(), llvm::TargetFrameLowering::getWinEHParentFrameOffset(), hasAnyNonFlatUseOfReg(), HasConditionalBranch(), llvm::BitCodeAbbrevOp::hasEncodingData(), llvm::HexagonMCELFStreamer::HexagonMCEmitCommonSymbol(), inBytes(), incrementLoc(), INITIALIZE_PASS(), llvm::MipsSubtarget::initializeSubtargetDependencies(), llvm::MCObjectFileInfo::InitMCObjectFileInfo(), llvm::X86FrameLowering::inlineStackProbe(), insertCall(), llvm::RISCVInstrInfo::insertIndirectBranch(), insertSignalHandler(), insertSpills(), instrumentMaskedLoadOrStore(), isAssociative(), llvm::AsmPrinter::isBlockOnlyReachableByFallthrough(), isDirectCall(), llvm::object::XCOFFSymbolRef::isFunction(), isIFunc(), isInSymtab(), isKnownTypeIdMember(), llvm::X86Subtarget::isLegalToCallImmediateAddr(), llvm::SelectionDAGISel::isOrEquivalentToAdd(), isPCRel32Branch(), isPrefixedOrGrouping(), isPromotedResultSafe(), isSubBorrowChain(), isThumbFunc(), llvm::MCAsmLayout::layoutFragment(), llvm_is_multithreaded(), LLVMGetSectionContents(), LLVMGetSectionName(), LLVMGetSymbolAddress(), LLVMGetSymbolName(), LLVMMoveToContainingSection(), LLVMVerifyFunction(), LLVMVerifyModule(), llvm::RuntimeDyldELF::loadObject(), llvm::RuntimeDyld::loadObject(), llvm::ExecutionEngine::LoadValueFromMemory(), llvm::lto::localCache(), lookupFunction(), LowerADDRSPACECAST(), LowerADJUST_TRAMPOLINE(), llvm::SITargetLowering::LowerCall(), lowerCallResult(), llvm::SITargetLowering::LowerCallResult(), LowerCallResult(), llvm::AsmPrinter::lowerConstant(), LowerDYNAMIC_STACKALLOC(), llvm::SparcTargetLowering::LowerFormalArguments_32(), LowerInterruptReturn(), llvm::IntrinsicLowering::LowerIntrinsicCall(), lowerMSABitClearImm(), LowerMUL(), LowerOperand(), llvm::MipsMCInstLower::LowerOperand(), llvm::BPFTargetLowering::LowerOperation(), llvm::RISCVTargetLowering::LowerOperation(), lowerRegToMasks(), llvm::TargetLoweringObjectFileXCOFF::lowerRelativeReference(), llvm::SystemZTargetLowering::LowerReturn(), LowerRISCVMachineOperandToMCOperand(), LowerVectorINT_TO_FP(), makeCombineInst(), mapArchToCVCPUType(), MarkEHGuard(), MarkEHRegistrationNode(), mayTailCallThisCC(), mayUseP9Setb(), llvm::MCELFStreamer::MCELFStreamer(), llvm::MipsSubtarget::MipsSubtarget(), llvm::RISCVInstrInfo::movImm(), llvm::TargetLoweringBase::needsFixedCatchObjects(), needsRuntimeRegistrationOfSectionRange(), llvm::EscapeEnumerator::Next(), llvm::DataLayout::operator==(), llvm::LTOCodeGenerator::optimize(), optimizeCall(), llvm::SymbolRewriter::RewriteMapParser::parse(), llvm::DWARFDebugFrame::parse(), llvm::TargetLowering::ParseConstraints(), parseRefinementStep(), Passv64i1ArgInRegs(), patchMatchingInput(), pickOpcodeForVT(), llvm::sys::fs::recursive_directory_iterator::pop(), llvm::PPCSubtarget::PPCSubtarget(), llvm::MCSymbol::print(), llvm::XCoreInstPrinter::printInst(), PrintQuotedString(), llvm::NVPTXInstPrinter::printRegName(), llvm::AsmPrinter::PrintSpecial(), llvm::MCSectionXCOFF::PrintSwitchToSection(), llvm::MCSectionELF::PrintSwitchToSection(), llvm::RuntimeDyldCOFFI386::processRelocationRef(), llvm::RuntimeDyldCOFFThumb::processRelocationRef(), llvm::RuntimeDyldCOFFAArch64::processRelocationRef(), llvm::RuntimeDyldELF::processRelocationRef(), llvm::RuntimeDyldCOFFX86_64::processRelocationRef(), pruneCache(), raise_relocation_error(), llvm::BitstreamCursor::ReadAbbrevRecord(), readFloat32(), readFloat64(), readLEB128(), llvm::BitstreamCursor::readRecord(), readString(), readUint32(), readUint8(), readULEB128(), readVarint32(), readVaruint1(), readVaruint32(), recoverFramePointer(), llvm::ARMAsmBackend::relaxInstruction(), removeTailCallAttribute(), ReplaceINTRINSIC_W_CHAIN(), report_fatal_error(), ReportErrnumFatal(), ReportError(), llvm::MCContext::reportError(), reportFastISelFailure(), reportGISelFailure(), ReportLastErrorFatal(), reportTranslationError(), reservePrivateMemoryRegs(), rewriteComdat(), llvm::RISCVTargetLowering::RISCVTargetLowering(), llvm::LoopIdiomRecognizePass::run(), llvm::LoopFullUnrollPass::run(), llvm::LICMPass::run(), llvm::legacy::FunctionPassManager::run(), llvm::ThinLTOCodeGenerator::run(), llvm::AddressSanitizerPass::run(), llvm::VerifierPass::run(), llvm::MCJIT::runFunction(), llvm::ExecutionEngine::runFunctionAsMain(), llvm::LiveVariables::runOnMachineFunction(), scavengeFrameVirtualRegs(), llvm::object::COFFObjectFile::section_rel_begin(), llvm::object::ELFObjectFile< ELFT >::section_rel_end(), llvm::Hexagon_MC::selectHexagonCPU(), llvm::SelectionDAGISel::SelectInlineAsmMemoryOperands(), selectJumpTableArmEncoding(), llvm::XCoreTargetObjectFile::SelectSectionForGlobal(), llvm::TargetLoweringObjectFileWasm::SelectSectionForGlobal(), llvm::TargetLoweringObjectFileXCOFF::SelectSectionForGlobal(), llvm::AMDGPURegisterBankInfo::selectStoreIntrinsic(), llvm::MCSection::setBundleLockState(), llvm::orc::OrcMCJITReplacement::setProcessAllSections(), shouldAlwaysEmitCompleteClassType(), shouldKeepInEntry(), llvm::BitstreamCursor::skipRecord(), llvm::fuzzerop::SourcePred::SourcePred(), split(), splitCodeGen(), srcMgrDiagHandler(), llvm::TargetPassConfig::TargetPassConfig(), llvm::object::COFFObjectFile::toSymb(), transformCallee(), truncateScalarIntegerArg(), TypeSizeToSizeIndex(), UnpackFromArgumentSlot(), UpgradeDebugInfo(), usePackedStack(), llvm::PPCSubtarget::useSoftFloat(), llvm::RISCVFeatures::validate(), llvm::PeelingModuloScheduleExpander::validateAgainstModuloScheduleExpander(), llvm::MachineFunction::verify(), llvm::LegalizerInfo::verify(), llvm::AssumptionCacheTracker::verifyAnalysis(), verifyModule(), VerifyVectorType(), VisitGlobalVariableForEmission(), llvm::Interpreter::visitUnreachableInst(), llvm::MCAssembler::writeFragmentPadding(), llvm::MCAssembler::writeSectionData(), writeTypeIdCompatibleVtableSummaryRecord(), llvm::raw_fd_ostream::~raw_fd_ostream(), and llvm::ScopedFatalErrorHandler::~ScopedFatalErrorHandler().
| void llvm::reportAndResetTimings | ( | raw_ostream * | OutStream = nullptr | ) |
If -time-passes has been specified, report the timings immediately and then reset the timers to zero.
If timing is enabled, report the times collected up to now and then reset them.
By default it uses the stream created by CreateInfoOutputFile().
Definition at line 159 of file PassTimingInfo.cpp.
References assert(), and formatv().
Referenced by llvm::LTOCodeGenerator::compileOptimized(), and llvm::ThinLTOCodeGenerator::run().
| void llvm::reportGISelFailure | ( | MachineFunction & | MF, |
| const TargetPassConfig & | TPC, | ||
| MachineOptimizationRemarkEmitter & | MORE, | ||
| MachineOptimizationRemarkMissed & | R | ||
| ) |
Report an ISel error as a missed optimization remark to the LLVMContext's diagnostic stream.
Set the FailedISel MachineFunction property.
Definition at line 178 of file Utils.cpp.
References llvm::MachineOptimizationRemarkEmitter::emit(), llvm::MachineFunctionProperties::FailedISel, llvm::DiagnosticInfoWithLocationBase::getLocation(), llvm::DiagnosticInfoOptimizationBase::getMsg(), llvm::MachineFunction::getName(), llvm::MachineFunction::getProperties(), llvm::TargetPassConfig::isGlobalISelAbortEnabled(), report_fatal_error(), and llvm::MachineFunctionProperties::set().
Referenced by reportGISelFailure(), llvm::InstructionSelect::runOnMachineFunction(), llvm::Legalizer::runOnMachineFunction(), and llvm::RegBankSelect::runOnMachineFunction().
| void llvm::reportGISelFailure | ( | MachineFunction & | MF, |
| const TargetPassConfig & | TPC, | ||
| MachineOptimizationRemarkEmitter & | MORE, | ||
| const char * | PassName, | ||
| StringRef | Msg, | ||
| const MachineInstr & | MI | ||
| ) |
Definition at line 194 of file Utils.cpp.
References llvm::MachineOptimizationRemarkEmitter::allowExtraAnalysis(), llvm::MachineInstr::getDebugLoc(), llvm::MachineInstr::getParent(), llvm::TargetPassConfig::isGlobalISelAbortEnabled(), and reportGISelFailure().
|
inline |
Definition at line 71 of file WindowsSupport.h.
References MakeErrMsg(), and report_fatal_error().
| void llvm::reportVectorizationFailure | ( | const StringRef | DebugMsg, |
| const StringRef | OREMsg, | ||
| const StringRef | ORETag, | ||
| OptimizationRemarkEmitter * | ORE, | ||
| Loop * | TheLoop, | ||
| Instruction * | I = nullptr |
||
| ) |
Reports a vectorization failure: print DebugMsg for debugging purposes along with the corresponding optimization remark RemarkName.
If I is passed, it is an instruction that prevents vectorization. Otherwise, the loop TheLoop is used for the location of the remark.
Definition at line 881 of file LoopVectorize.cpp.
References createLVAnalysis(), debugVectorizationFailure(), llvm::OptimizationRemarkEmitter::emit(), I, LLVM_DEBUG, and llvm::LoopVectorizeHints::vectorizeAnalysisPassName().
Referenced by llvm::LoopVectorizationLegality::blockNeedsPredication(), llvm::LoopVectorizationLegality::canVectorize(), llvm::LoopVectorizationCostModel::computeMaxVF(), llvm::LoopVectorizationLegality::isUniform(), llvm::LoopVectorizationLegality::prepareToFoldTailByMasking(), llvm::LoopVectorizePass::processLoop(), llvm::LoopVectorizationCostModel::runtimeChecksRequired(), and llvm::LoopVectorizationCostModel::selectVectorizationFactor().
| void llvm::ResetStatistics | ( | ) |
Reset the statistics.
This can be used to zero and de-register the statistics in order to measure a compilation.
When this function begins to call destructors prior to returning, all statistics will be zero and unregistered. However, that might not remain the case by the time this function finishes returning. Whether update from other threads are lost or merely deferred until during the function return is timing sensitive.
Callers who intend to use this to measure statistics for a single compilation should ensure that no compilations are in progress at the point this function is called and that only one compilation executes until calling GetStatistics().
Definition at line 263 of file Statistic.cpp.
Find a common type that T1 and T2 convert to.
Return 0 if no such type exists.
Definition at line 262 of file Record.cpp.
References llvm::RecTy::getListTy(), resolveRecordTypes(), T1, and llvm::RecTy::typeIsConvertibleTo().
Referenced by llvm::RecordRecTy::classes_end().
| void llvm::RestorePrettyStackState | ( | const void * | State | ) |
Restores the topmost element of the "pretty" stack state to State, which should come from a previous call to SavePrettyStackState().
This is useful when using a CrashRecoveryContext in code that also uses PrettyStackTraceEntries, to make sure the stack that's printed if a crash happens after a crash that's been recovered by CrashRecoveryContext doesn't have frames on it that were added in code unwound by the CrashRecoveryContext.
Definition at line 291 of file PrettyStackTrace.cpp.
References PrettyStackTraceHead.
Referenced by llvm::PrettyStackTraceProgram::PrettyStackTraceProgram().
| bool llvm::RetCC_AArch64_AAPCS | ( | unsigned | ValNo, |
| MVT | ValVT, | ||
| MVT | LocVT, | ||
| CCValAssign::LocInfo | LocInfo, | ||
| ISD::ArgFlagsTy | ArgFlags, | ||
| CCState & | State | ||
| ) |
Referenced by llvm::AArch64TargetLowering::CCAssignFnForReturn(), and mayTailCallThisCC().
| bool llvm::RetCC_AArch64_WebKit_JS | ( | unsigned | ValNo, |
| MVT | ValVT, | ||
| MVT | LocVT, | ||
| CCValAssign::LocInfo | LocInfo, | ||
| ISD::ArgFlagsTy | ArgFlags, | ||
| CCState & | State | ||
| ) |
Referenced by llvm::AArch64TargetLowering::CCAssignFnForReturn(), and mayTailCallThisCC().
| bool llvm::RetCC_ARM_AAPCS | ( | unsigned | ValNo, |
| MVT | ValVT, | ||
| MVT | LocVT, | ||
| CCValAssign::LocInfo | LocInfo, | ||
| ISD::ArgFlagsTy | ArgFlags, | ||
| CCState & | State | ||
| ) |
Referenced by llvm::ARMTargetLowering::CCAssignFnForReturn(), and getComparePred().
| bool llvm::RetCC_ARM_AAPCS_VFP | ( | unsigned | ValNo, |
| MVT | ValVT, | ||
| MVT | LocVT, | ||
| CCValAssign::LocInfo | LocInfo, | ||
| ISD::ArgFlagsTy | ArgFlags, | ||
| CCState & | State | ||
| ) |
Referenced by llvm::ARMTargetLowering::CCAssignFnForReturn(), and getComparePred().
| bool llvm::RetCC_ARM_APCS | ( | unsigned | ValNo, |
| MVT | ValVT, | ||
| MVT | LocVT, | ||
| CCValAssign::LocInfo | LocInfo, | ||
| ISD::ArgFlagsTy | ArgFlags, | ||
| CCState & | State | ||
| ) |
Referenced by llvm::ARMTargetLowering::CCAssignFnForReturn(), and getComparePred().
| bool llvm::RetCC_PPC | ( | unsigned | ValNo, |
| MVT | ValVT, | ||
| MVT | LocVT, | ||
| CCValAssign::LocInfo | LocInfo, | ||
| ISD::ArgFlagsTy | ArgFlags, | ||
| CCState & | State | ||
| ) |
Referenced by isFunctionGlobalAddress(), and truncateScalarIntegerArg().
| bool llvm::RetCC_PPC64_ELF_FIS | ( | unsigned | ValNo, |
| MVT | ValVT, | ||
| MVT | LocVT, | ||
| CCValAssign::LocInfo | LocInfo, | ||
| ISD::ArgFlagsTy | ArgFlags, | ||
| CCState & | State | ||
| ) |
Referenced by getComparePred().
| bool llvm::RetCC_PPC_Cold | ( | unsigned | ValNo, |
| MVT | ValVT, | ||
| MVT | LocVT, | ||
| CCValAssign::LocInfo | LocInfo, | ||
| ISD::ArgFlagsTy | ArgFlags, | ||
| CCState & | State | ||
| ) |
Referenced by isFunctionGlobalAddress(), and truncateScalarIntegerArg().
| bool llvm::RetCC_X86 | ( | unsigned | ValNo, |
| MVT | ValVT, | ||
| MVT | LocVT, | ||
| CCValAssign::LocInfo | LocInfo, | ||
| ISD::ArgFlagsTy | ArgFlags, | ||
| CCState & | State | ||
| ) |
| bool llvm::RetFastCC_ARM_APCS | ( | unsigned | ValNo, |
| MVT | ValVT, | ||
| MVT | LocVT, | ||
| CCValAssign::LocInfo | LocInfo, | ||
| ISD::ArgFlagsTy | ArgFlags, | ||
| CCState & | State | ||
| ) |
Referenced by llvm::ARMTargetLowering::CCAssignFnForReturn(), and getComparePred().
| bool llvm::returnTypeIsEligibleForTailCall | ( | const Function * | F, |
| const Instruction * | I, | ||
| const ReturnInst * | Ret, | ||
| const TargetLoweringBase & | TLI | ||
| ) |
Test if given that the input instruction is in the tail call position if the return type or any attributes of the function will inhibit tail call optimization.
Definition at line 634 of file Analysis.cpp.
References attributesPermitTailCall(), llvm::SmallVectorTemplateCommon< T >::back(), llvm::SmallVectorTemplateCommon< T, typename >::back(), llvm::NVPTXISD::CallVal, firstRealType(), llvm::UndefValue::get(), llvm::CallBase::getArgOperand(), llvm::CallBase::getCalledFunction(), llvm::Module::getDataLayout(), llvm::Function::getIntrinsicID(), llvm::TargetLoweringBase::getLibcallName(), llvm::User::getNumOperands(), llvm::User::getOperand(), llvm::GlobalValue::getParent(), llvm::Value::getType(), I, isPointerBitcastEqualTo(), llvm::ARMISD::MEMCPY, nextRealType(), llvm::SmallVectorTemplateCommon< T, typename >::rbegin(), llvm::SmallVectorTemplateCommon< T, typename >::rend(), and slotOnlyDiscardsData().
Referenced by ComputeLinearIndex(), and isInTailCallPosition().
| auto llvm::reverse | ( | ContainerTy && | C, |
| typename std::enable_if< has_rbegin< ContainerTy >::value >::type * | = nullptr |
||
| ) | -> decltype(make_range(C.rbegin(), C.rend())) |
Definition at line 265 of file STLExtras.h.
References C, and make_range().
Referenced by llvm::InstCombineWorklist::AddInitialGroup(), addLoopIntoQueue(), analyzeArguments(), analyzeStandardArguments(), appendEndToFunction(), llvm::DebugLoc::appendInlinedAt(), llvm::internal::appendLoopsToWorklist(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::ApplyUpdates(), AreSequentialAccesses(), llvm::LazyCallGraph::buildRefSCCs(), castToIncrementInst(), llvm::WebAssemblyDebugValueManager::clone(), cloneLoopNest(), llvm::ScalarEvolution::computeAccessFunctions(), ComputePostOrders(), computeUnlikelySuccessors(), ConstantFoldLoadFromConstPtr(), llvm::DwarfCompileUnit::createBaseTypeDIEs(), llvm::DataDependenceGraph::DataDependenceGraph(), deduceFunctionAttributeInRPO(), llvm::AsmPrinter::doFinalization(), dumpRelocs(), earlyExpandDIVFIX(), llvm::XCoreFrameLowering::emitPrologue(), llvm::ARMException::endFunction(), findBuildAggregate(), findInnerReductionPhi(), llvm::CodeExtractor::findInputsOutputs(), findStartOfTree(), fixPhis(), foldBitcastedFPLogic(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::ChildrenGetter< Inverse >::Get(), llvm::SelectionDAG::getConstant(), getCopyToParts(), getDepth(), llvm::LoopInfoBase< BasicBlock, Loop >::getLoopsInPreorder(), llvm::internal::NfaTranscriber::getPaths(), getQualifiedName(), getRetpolineSymbol(), llvm::ScalarEvolution::getSCEVAtScope(), getSchedRegions(), getUnconditionalBrDisp(), greaterWithBias(), handlePhiDef(), hasAnyNonFlatUseOfReg(), hasVulnerableLoad(), hoistRegion(), incorporateNewSCCRange(), INITIALIZE_PASS(), insertCSRRestores(), llvm::PopulateLoopsDFS< BlockT, LoopT >::insertIntoLoop(), llvm::xray::Profile::internPath(), isBroadcastShuffle(), isCallInstruction(), isEFLAGSLive(), isIFunc(), isProfitableChain(), isSafeToSpeculateStore(), llvm::sys::DynamicLibrary::HandleSet::LibLookup(), makeBitReverse(), mapBinOpcode(), llvm::WebAssemblyDebugValueManager::move(), moveAndTeeForMultiUse(), moveHeaderPhiOperandsToForeBlocks(), moveUp(), llvm::X86FrameLowering::orderFrameObjects(), patchAndReplaceAllUsesWith(), FloatLiteralImpl< Float >::printLeft(), llvm::BitcodeAnalyzer::printStats(), llvm::xray::profileFromTrace(), llvm::SyntheticCountsUtils< CallGraphType >::propagate(), llvm::GVNHoist::rank(), llvm::WebAssemblyExceptionInfo::recalculate(), rematerializeLiveValues(), llvm::LazyCallGraph::RefSCC::removeInternalRefEdge(), removeRedundantDbgInstrsUsingBackwardScan(), llvm::AArch64FrameLowering::restoreCalleeSavedRegisters(), llvm::WebAssemblyException::reverseBlock(), llvm::LoopBase< BasicBlock, Loop >::reverseBlock(), llvm::InlinerPass::run(), llvm::FunctionToLoopPassAdaptor< LoopPassT >::run(), llvm::ModuleToPostOrderCGSCCPassAdaptor< CGSCCPassT >::run(), llvm::LPPassManager::runOnFunction(), llvm::BlockFrequencyInfoImpl< llvm::BitTracker >::setBlockFreq(), llvm::MipsCallLowering::MipsHandler::setLeastSignificantFirst(), shouldInstrumentReadWriteFromAddress(), ShrinkLoadReplaceStoreWithStore(), sinkRegion(), sortLocalVars(), llvm::AbstractDependenceGraphBuilder< DataDependenceGraph >::sortNodesTopologically(), speculatePHIs(), llvm::Thumb1FrameLowering::spillCalleeSavedRegisters(), llvm::ExecutionEngine::StoreValueToMemory(), llvm::LazyCallGraph::RefSCC::switchInternalEdgeToRef(), llvm::JumpThreadingPass::ThreadGuard(), llvm::ScaledNumberBase::toString(), llvm::APInt::toString(), TryToSinkInstruction(), tryToUnrollAndJamLoop(), tryToVectorizeHorReductionOrInstOperands(), llvm::MCJIT::UnregisterJITEventListener(), llvm::OrcCBindingsStack::UnregisterJITEventListener(), unstackifyVRegsUsedInSplitBB(), and unswitchTrivialSwitch().
| auto llvm::reverse | ( | ContainerTy && | C, |
| typename std::enable_if<!has_rbegin< ContainerTy >::value >::type * | = nullptr |
||
| ) | -> decltype(make_range(llvm::make_reverse_iterator(std::end(C)), llvm::make_reverse_iterator(std::begin(C)))) |
Definition at line 281 of file STLExtras.h.
References llvm::sys::path::begin(), C, llvm::sys::path::end(), make_range(), and make_reverse_iterator().
Reverse the bits in Val.
Definition at line 305 of file MathExtras.h.
Referenced by llvm::PPCMCCodeEmitter::getSPE2DisEncoding(), llvm::PPCMCCodeEmitter::getSPE4DisEncoding(), llvm::PPCMCCodeEmitter::getSPE8DisEncoding(), and llvm::APInt::toStringSigned().
| PrettyStackTraceEntry* llvm::ReverseStackTrace | ( | PrettyStackTraceEntry * | Head | ) |
Definition at line 63 of file PrettyStackTrace.cpp.
Referenced by PrintStack().
| bool llvm::rewriteAArch64FrameIndex | ( | MachineInstr & | MI, |
| unsigned | FrameRegIdx, | ||
| unsigned | FrameReg, | ||
| StackOffset & | Offset, | ||
| const AArch64InstrInfo * | TII | ||
| ) |
rewriteAArch64FrameIndex - Rewrite MI to access 'Offset' bytes from the FP.
Return false if the offset could not be handled directly in MI, and return the left-over portion by reference.
Definition at line 3520 of file AArch64InstrInfo.cpp.
References AArch64FrameOffsetCanUpdate, AArch64FrameOffsetIsLegal, llvm::MachineOperand::ChangeToImmediate(), llvm::MachineOperand::ChangeToRegister(), emitFrameOffset(), llvm::MachineInstr::eraseFromParent(), llvm::MachineInstr::getDebugLoc(), llvm::MachineOperand::getImm(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineInstr::getParent(), llvm::MachineOperand::getReg(), llvm::MVT::i8, isAArch64FrameOffsetLegal(), MI, llvm::MachineInstr::NoFlags, llvm::MachineInstr::setDesc(), and TII.
Referenced by llvm::AArch64RegisterInfo::eliminateFrameIndex(), and llvm::AArch64RegisterInfo::resolveFrameIndex().
| bool llvm::rewriteARMFrameIndex | ( | MachineInstr & | MI, |
| unsigned | FrameRegIdx, | ||
| unsigned | FrameReg, | ||
| int & | Offset, | ||
| const ARMBaseInstrInfo & | TII | ||
| ) |
rewriteARMFrameIndex / rewriteT2FrameIndex - Rewrite MI to access 'Offset' bytes from the FP.
Return false if the offset could not be handled directly in MI, and return the left-over portion by reference.
Definition at line 2517 of file ARMBaseInstrInfo.cpp.
References llvm::ARMII::AddrMode2, llvm::ARMII::AddrMode3, llvm::ARMII::AddrMode4, llvm::ARMII::AddrMode5, llvm::ARMII::AddrMode5FP16, llvm::ARMII::AddrMode6, llvm::ARMII::AddrMode_i12, llvm::ARMII::AddrModeMask, llvm::ARMII::AddrModeT2_i7, llvm::ARMII::AddrModeT2_i7s2, llvm::ARMII::AddrModeT2_i7s4, assert(), llvm::MachineOperand::ChangeToImmediate(), llvm::MachineOperand::ChangeToRegister(), llvm::ARM_AM::getAM2Offset(), llvm::ARM_AM::getAM2Op(), llvm::ARM_AM::getAM3Offset(), llvm::ARM_AM::getAM3Op(), llvm::ARM_AM::getAM5Offset(), llvm::ARM_AM::getAM5Op(), llvm::MachineInstr::getDesc(), llvm::MachineOperand::getImm(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::ARM_AM::getSOImmVal(), llvm::ARM_AM::getSOImmValRotate(), llvm::ISD::INLINEASM, llvm::ISD::INLINEASM_BR, llvm_unreachable, llvm::BitmaskEnumDetail::Mask(), llvm::MachineInstr::RemoveOperand(), llvm::ARM_AM::rotr32(), llvm::MachineInstr::setDesc(), llvm::ARM_AM::sub, and llvm::MCInstrDesc::TSFlags.
Referenced by llvm::ARMBaseRegisterInfo::eliminateFrameIndex(), isValidCoprocessorNumber(), and llvm::ARMBaseRegisterInfo::resolveFrameIndex().
| bool llvm::rewriteT2FrameIndex | ( | MachineInstr & | MI, |
| unsigned | FrameRegIdx, | ||
| unsigned | FrameReg, | ||
| int & | Offset, | ||
| const ARMBaseInstrInfo & | TII, | ||
| const TargetRegisterInfo * | TRI | ||
| ) |
Definition at line 473 of file Thumb2InstrInfo.cpp.
References llvm::MachineInstrBuilder::add(), llvm::MachineInstr::addOperand(), llvm::ARMII::AddrMode4, llvm::ARMII::AddrMode5, llvm::ARMII::AddrMode5FP16, llvm::ARMII::AddrMode6, llvm::ARMII::AddrModeMask, llvm::ARMII::AddrModeT2_i12, llvm::ARMII::AddrModeT2_i7, llvm::ARMII::AddrModeT2_i7s2, llvm::ARMII::AddrModeT2_i7s4, llvm::ARMII::AddrModeT2_i8, llvm::ARMII::AddrModeT2_i8s4, llvm::ARMII::AddrModeT2_ldrex, llvm::ARMII::AddrModeT2_so, llvm::ARMCC::AL, assert(), llvm::MachineOperand::ChangeToImmediate(), llvm::MachineOperand::ChangeToRegister(), llvm::MachineRegisterInfo::constrainRegClass(), llvm::TargetRegisterClass::contains(), llvm::MachineOperand::CreateReg(), llvm::MachineInstr::definesRegister(), llvm::ARM_AM::getAM5FP16Offset(), llvm::ARM_AM::getAM5FP16Op(), llvm::ARM_AM::getAM5Offset(), llvm::ARM_AM::getAM5Op(), llvm::MachineInstr::getDesc(), llvm::MachineOperand::getImm(), getInstrPredicate(), llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineBasicBlock::getParent(), llvm::MachineInstr::getParent(), llvm::MachineOperand::getReg(), getReg(), llvm::MachineFunction::getRegInfo(), llvm::ARM_AM::getT2SOImmVal(), immediateOffsetOpcode(), llvm::ISD::INLINEASM, llvm::ISD::INLINEASM_BR, llvm::Register::isVirtualRegister(), llvm_unreachable, llvm::BitmaskEnumDetail::Mask(), MI, MRI, negativeOffsetOpcode(), positiveOffsetOpcode(), predOps(), llvm::MachineInstr::RemoveOperand(), llvm::ARM_AM::rotr32(), llvm::MachineInstr::setDesc(), llvm::ARM_AM::sub, and llvm::MCInstrDesc::TSFlags.
Referenced by llvm::ARMBaseRegisterInfo::eliminateFrameIndex(), isValidCoprocessorNumber(), and llvm::ARMBaseRegisterInfo::resolveFrameIndex().
|
inline |
right_justify - add spaces before string so total output is Width characters.
If Str is larger that Width, full string is written with no padding.
Definition at line 152 of file Format.h.
References llvm::FormattedString::JustifyRight.
Referenced by printSymbolizedStackTrace().
| Optional< StringRef > llvm::RoundingModeToStr | ( | fp::RoundingMode | UseRounding | ) |
For any RoundingMode enumerator, returns a string valid as input in constrained intrinsic rounding mode metadata.
Definition at line 32 of file FPEnv.cpp.
References None, llvm::fp::rmDownward, llvm::fp::rmDynamic, llvm::fp::rmToNearest, llvm::fp::rmTowardZero, and llvm::fp::rmUpward.
Referenced by llvm::IRBuilder< TargetFolder >::CreateUnreachable().
| int llvm::runFuzzerOnInputs | ( | int | ArgC, |
| char * | ArgV[], | ||
| FuzzerTestFun | TestOne, | ||
| FuzzerInitFun | Init = [](int *, char ***) { return 0; } |
||
| ) |
Runs a fuzz target on the inputs specified on the command line.
Useful for testing fuzz targets without linking to libFuzzer. Finds inputs in the argument list in a libFuzzer compatible way.
Definition at line 138 of file FuzzerCLI.cpp.
References Arg, llvm::StringRef::equals(), errs(), llvm::MemoryBuffer::getFile(), I, and llvm::StringRef::startswith().
| bool llvm::runIPSCCP | ( | Module & | M, |
| const DataLayout & | DL, | ||
| std::function< const TargetLibraryInfo &(Function &)> | GetTLI, | ||
| function_ref< AnalysisResultsForFn(Function &)> | getAnalysis | ||
| ) |
Definition at line 2005 of file SCCP.cpp.
References assert(), llvm::DenseMapBase< DenseMap< KeyT, ValueT, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::begin(), canTrackArgumentsInterprocedurally(), canTrackGlobalVariableInterprocedurally(), canTrackReturnsInterprocedurally(), changeToUnreachable(), ConstantFoldTerminator(), dbgs(), llvm::DomTreeUpdater::deleteBB(), dyn_cast(), llvm::numbers::e, E, llvm::DenseMapBase< DenseMap< KeyT, ValueT, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::iplist_impl< IntrusiveListT, TraitsT >::erase(), llvm::Instruction::eraseFromParent(), findReturnsToZap(), forceIndeterminateEdge(), G, llvm::UndefValue::get(), llvm::BasicBlock::getContext(), llvm::Value::getName(), llvm::Function::getReturnType(), llvm::BranchInst::getSuccessor(), llvm::BasicBlock::getTerminator(), llvm::Value::getType(), I, llvm::Instruction::isSafeToRemove(), llvm::BranchInst::isUnconditional(), llvm::Type::isVoidTy(), LLVM_DEBUG, llvm::SmallVectorTemplateBase< T >::push_back(), llvm::Value::replaceAllUsesWith(), llvm::SmallVectorBase::size(), tryToReplaceWithConstant(), llvm::Value::use_empty(), and llvm::Value::user_back().
Referenced by llvm::IPSCCPPass::run().
| bool llvm::RunningWindows8OrGreater | ( | ) |
Determines if the program is running on Windows 8 or newer.
This reimplements one of the helpers in the Windows 8.1 SDK, which are intended to supercede raw calls to GetVersionEx. Old SDKs, Cygwin, and MinGW don't yet have VersionHelpers.h, so we have our own helper.
Referenced by llvm::raw_fd_ostream::~raw_fd_ostream().
| void llvm::runWholeProgramDevirtOnIndex | ( | ModuleSummaryIndex & | Summary, |
| std::set< GlobalValue::GUID > & | ExportedGUIDs, | ||
| std::map< ValueInfo, std::vector< VTableSlotSummary >> & | LocalWPDTargetsMap | ||
| ) |
Perform index-based whole program devirtualization on the Summary index.
Any devirtualized targets used by a type test in another module are added to the ExportedGUIDs set. For any local devirtualized targets only used within the defining module, the information necessary for locating the corresponding WPD resolution is recorded for the ValueInfo in case it is exported by cross module importing (in which case the devirtualized target name will need adjustment).
Definition at line 706 of file WholeProgramDevirt.cpp.
Referenced by llvm::lto::createWriteIndexesThinBackend(), and llvm::ThinLTOCodeGenerator::run().
|
inline |
Definition at line 38 of file MemAlloc.h.
References report_bad_alloc_error(), and safe_malloc().
Referenced by AllocateBuckets(), llvm::StringMapImpl::init(), llvm::PressureDiffs::init(), llvm::OnDiskChainedHashTableGenerator< Info >::OnDiskChainedHashTableGenerator(), llvm::StringMapImpl::RehashTable(), llvm::InterferenceCache::reinitPhysRegEntries(), llvm::SparseSet< unsigned, llvm::VirtReg2IndexFunctor >::setUniverse(), and llvm::SparseMultiSet< VReg2SUnit, VirtReg2IndexFunctor >::setUniverse().
|
inline |
Definition at line 25 of file MemAlloc.h.
References report_bad_alloc_error().
Referenced by llvm::MallocAllocator::Allocate(), llvm::BitVector::clearBitsNotInMask(), llvm::SmallPtrSetImplBase::CopyFrom(), llvm::DataLayout::getStructLayout(), llvm::SmallVectorTemplateBase< T >::grow(), llvm::SmallVectorBase::grow_pod(), llvm_getMetadata(), LLVMCopyModuleFlagsMetadata(), LLVMGetRelocationTypeName(), safe_calloc(), safe_realloc(), llvm::SmallPtrSetImplBase::SmallPtrSetImplBase(), and llvm::Interpreter::visitAllocaInst().
|
inline |
Definition at line 52 of file MemAlloc.h.
References report_bad_alloc_error(), and safe_malloc().
Referenced by llvm::BitVector::clearBitsNotInMask(), llvm::SmallPtrSetImplBase::CopyFrom(), and llvm::SmallVectorBase::grow_pod().
| bool llvm::salvageDebugInfo | ( | Instruction & | I | ) |
Assuming the instruction I is going to be deleted, attempt to salvage debug users of I by writing the effect of I in a DIExpression.
Returns true if any debug users were updated.
Definition at line 1615 of file Local.cpp.
References llvm::SmallVectorBase::empty(), findDbgUsers(), and salvageDebugInfoForDbgValues().
Referenced by llvm::SelectionDAG::DbgLabelEnd(), DCEInstruction(), deleteDeadInstruction(), getKnownAlignment(), isOnlyReachableViaThisEdge(), OptimizeExtractBits(), RecursivelyDeleteTriviallyDeadInstructions(), salvageDebugInfoOrMarkUndef(), simplifyAndDCEInstruction(), SinkCast(), and sinkRegion().
| bool llvm::salvageDebugInfoForDbgValues | ( | Instruction & | I, |
| ArrayRef< DbgVariableIntrinsic *> | Insns | ||
| ) |
Implementation of salvageDebugInfo, applying only to instructions in Insns, rather than all debug users of I.
Definition at line 1629 of file Local.cpp.
References dbgs(), llvm::MetadataAsValue::get(), llvm::Value::getContext(), llvm::User::getOperand(), LLVM_DEBUG, salvageDebugInfoImpl(), llvm::MDNode::setOperand(), and wrapValueInMetadata().
Referenced by getKnownAlignment(), salvageDebugInfo(), and TryToSinkInstruction().
| DIExpression * llvm::salvageDebugInfoImpl | ( | Instruction & | I, |
| DIExpression * | DIExpr, | ||
| bool | StackVal | ||
| ) |
Given an instruction I and DIExpression DIExpr operating on it, write the effects of I into the returned DIExpression, or return nullptr if it cannot be salvaged.
StackVal: whether DW_OP_stack_value should be appended to the expression.
Definition at line 1656 of file Local.cpp.
References llvm::MCID::Add, llvm::DIExpression::appendOffset(), dyn_cast(), GEP, llvm::DIExpression::getExtOps(), llvm::Instruction::getModule(), llvm::User::getOperand(), llvm::Type::getScalarSizeInBits(), llvm::ConstantInt::getSExtValue(), llvm::APInt::getSExtValue(), llvm::Value::getType(), I, llvm::Type::isVectorTy(), and llvm::DIExpression::prependOpcodes().
Referenced by getKnownAlignment(), salvageDebugInfoForDbgValues(), and llvm::SelectionDAGBuilder::salvageUnresolvedDbgValue().
| void llvm::salvageDebugInfoOrMarkUndef | ( | Instruction & | I | ) |
Salvage all debug users of the instruction I or mark it as undef if it cannot be salvaged.
Definition at line 1624 of file Local.cpp.
References replaceDbgUsesWithUndef(), and salvageDebugInfo().
Referenced by AddReachableCodeToWorklist(), bitTrackingDCE(), buildMultiplyTree(), llvm::InstCombiner::eraseInstFromFunction(), getKnownAlignment(), and rewriteDebugUsers().
| const std::error_category & llvm::sampleprof_category | ( | ) |
Definition at line 86 of file SampleProf.cpp.
References ErrorCategory.
Referenced by make_error_code().
| std::enable_if<std::is_unsigned<T>::value, T>::type llvm::SaturatingAdd | ( | T | X, |
| T | Y, | ||
| bool * | ResultOverflowed = nullptr |
||
| ) |
Add two unsigned integers, X and Y, of type T.
Clamp the result to the maximum representable value of T on overflow. ResultOverflowed indicates if the result is larger than the maximum representable value of type T.
Definition at line 793 of file MathExtras.h.
References llvm::NVPTXISD::Dummy, max(), and Y.
Referenced by computeSyntheticCounts(), llvm::InstrProfRecord::getValueForSite(), llvm::CGProfilePass::run(), SaturatingMultiply(), and SaturatingMultiplyAdd().
| std::enable_if<std::is_unsigned<T>::value, T>::type llvm::SaturatingMultiply | ( | T | X, |
| T | Y, | ||
| bool * | ResultOverflowed = nullptr |
||
| ) |
Multiply two unsigned integers, X and Y, of type T.
Clamp the result to the maximum representable value of T on overflow. ResultOverflowed indicates if the result is larger than the maximum representable value of type T.
Definition at line 810 of file MathExtras.h.
References llvm::NVPTXISD::Dummy, Log2_64(), max(), SaturatingAdd(), and Y.
Referenced by SaturatingMultiplyAdd(), llvm::InstrProfValueSiteRecord::scale(), and llvm::InstrProfRecord::scale().
| std::enable_if<std::is_unsigned<T>::value, T>::type llvm::SaturatingMultiplyAdd | ( | T | X, |
| T | Y, | ||
| T | A, | ||
| bool * | ResultOverflowed = nullptr |
||
| ) |
Multiply two unsigned integers, X and Y, and add the unsigned integer, A to the product.
Clamp the result to the maximum representable value of T on overflow. ResultOverflowed indicates if the result is larger than the maximum representable value of type T.
Definition at line 856 of file MathExtras.h.
References llvm::NVPTXISD::Dummy, huge_valf, SaturatingAdd(), and SaturatingMultiply().
Referenced by llvm::sampleprof::SampleRecord::addCalledTarget(), llvm::sampleprof::FunctionSamples::addHeadSamples(), llvm::sampleprof::SampleRecord::addSamples(), llvm::sampleprof::FunctionSamples::addTotalSamples(), llvm::InstrProfValueSiteRecord::merge(), and llvm::InstrProfRecord::merge().
| const void * llvm::SavePrettyStackState | ( | ) |
Returns the topmost element of the "pretty" stack state.
Definition at line 283 of file PrettyStackTrace.cpp.
References PrettyStackTraceHead.
Referenced by llvm::PrettyStackTraceProgram::PrettyStackTraceProgram().
| class llvm::RegisterBankInfo llvm::ScalarAddx2 | ( | 0x00FF | , |
| GPR | |||
| ) |
|
inline |
Definition at line 1213 of file APFloat.h.
References llvm::lltok::APFloat, llvm::APFloat::getSemantics(), and llvm_unreachable.
Referenced by llvm::detail::DoubleAPFloat::getSecond(), and llvm::detail::IEEEFloat::isNegZero().
|
inlinestatic |
Scale an individual branch count.
Scale a 64-bit weight down to 32-bits using Scale.
Definition at line 198 of file Instrumentation.h.
References assert(), max(), and Scaled.
Referenced by llvm::pgo::promoteIndirectCall(), and setProfMetadata().
| void llvm::scaleShuffleMask | ( | size_t | Scale, |
| ArrayRef< T > | Mask, | ||
| SmallVectorImpl< T > & | ScaledMask | ||
| ) |
Helper function to scale a shuffle or target shuffle mask, replacing each mask index with the scaled sequential indices for an equivalent narrowed mask.
This is the reverse process to canWidenShuffleElements, but can always succeed.
Definition at line 1696 of file X86ISelLowering.h.
References assert(), llvm::SmallVectorImpl< T >::assign(), and llvm::ArrayRef< T >::size().
| void llvm::scavengeFrameVirtualRegs | ( | MachineFunction & | MF, |
| RegScavenger & | RS | ||
| ) |
Replaces all frame index virtual registers with physical registers.
Uses the register scavenger to find an appropriate register to use.
Definition at line 752 of file RegisterScavenging.cpp.
References llvm::MachineRegisterInfo::clearVirtRegs(), dbgs(), llvm::TargetFrameLowering::determineCalleeSaves(), llvm::MachineBasicBlock::empty(), llvm::TargetSubtargetInfo::getFrameLowering(), llvm::MachineBasicBlock::getName(), llvm::MachineRegisterInfo::getNumVirtRegs(), llvm::MachineFunction::getProperties(), llvm::MachineFunction::getRegInfo(), llvm::MachineFunction::getSubtarget(), INITIALIZE_PASS, LLVM_DEBUG, MRI, llvm::MachineFunctionProperties::NoVRegs, llvm::TargetFrameLowering::processFunctionBeforeFrameFinalized(), report_fatal_error(), scavengeFrameVirtualRegsInBlock(), and llvm::MachineFunctionProperties::set().
Referenced by llvm::RegScavenger::scavengeRegister(), and stashEntryDbgValues().
| scc_iterator<T> llvm::scc_begin | ( | const T & | G | ) |
Construct the begin iterator for a deduced graph type T.
Definition at line 228 of file SCCIterator.h.
References llvm::scc_iterator< GraphT, GT >::begin().
Referenced by llvm::BlockFrequencyInfoImplBase::analyzeIrreducible(), llvm::BranchProbabilityInfo::calculate(), llvm::AbstractDependenceGraphBuilder< DataDependenceGraph >::createPiBlocks(), llvm::DataDependenceGraph::DataDependenceGraph(), deduceFunctionAttributeInRPO(), llvm::GlobalsAAResult::getModRefBehavior(), llvm::InformationCache::InformationCache(), and llvm::SyntheticCountsUtils< CallGraphType >::propagate().
| scc_iterator<T> llvm::scc_end | ( | const T & | G | ) |
Construct the end iterator for a deduced graph type T.
Definition at line 233 of file SCCIterator.h.
References llvm::scc_iterator< GraphT, GT >::end().
Referenced by llvm::AbstractDependenceGraphBuilder< DataDependenceGraph >::createPiBlocks(), and llvm::DataDependenceGraph::DataDependenceGraph().
Return true if any node in Root satisfies the predicate Pred.
Definition at line 622 of file ScalarEvolutionExpressions.h.
References R600_InstFlag::FC, and visitAll().
Referenced by llvm::ScalarEvolution::containsAddRecurrence(), containsParameters(), containsUndefs(), llvm::SCEVExpander::expandCodeFor(), llvm::ScalarEvolution::getCouldNotCompute(), and llvm::ScalarEvolution::hasOperand().
|
inline |
Definition at line 355 of file ScopedPrinter.h.
Definition at line 138 of file DynamicLibrary.cpp.
Referenced by llvm::sys::DynamicLibrary::SearchForAddressOfSymbol().
| iterator_range<detail::value_sequence_iterator<ValueT> > llvm::seq | ( | ValueT | Begin, |
| ValueT | End | ||
| ) |
Definition at line 75 of file Sequence.h.
Referenced by CompareValueComplexity().
set_difference(A, B) - Return A - B
Definition at line 50 of file SetOperations.h.
References SI.
Referenced by llvm::DeltaAlgorithm::~DeltaAlgorithm().
| void llvm::set_fixed_execution_hash_seed | ( | uint64_t | fixed_value | ) |
Override the execution seed with a fixed value.
This hashing library uses a per-execution seed designed to change on each run with high probability in order to ensure that the hash codes are not attackable and to ensure that output which is intended to be stable does not rely on the particulars of the hash codes produced.
That said, there are use cases where it is important to be able to reproduce exactly a specific behavior. To that end, we provide a function which will forcibly set the seed to a fixed value. This must be done at the start of the program, before any hashes are computed. Also, it cannot be undone. This makes it thread-hostile and very hard to use outside of immediately on start of a simple program designed for reproducible behavior.
Definition at line 26 of file Hashing.cpp.
References llvm::hashing::detail::fixed_seed_override.
| void llvm::set_intersect | ( | S1Ty & | S1, |
| const S2Ty & | S2 | ||
| ) |
set_intersect(A, B) - Compute A := A ^ B Identical to set_intersection, except that it works on set<>'s and is nicer to use.
Functionally, this iterates through S1, removing elements that are not contained in S2.
Definition at line 39 of file SetOperations.h.
Referenced by mergeConditionalStores(), and sinkRegion().
| void llvm::set_subtract | ( | S1Ty & | S1, |
| const S2Ty & | S2 | ||
| ) |
set_subtract(A, B) - Compute A := A - B
Definition at line 62 of file SetOperations.h.
References SI.
Set the name of the current thread.
Setting a thread's name can be helpful for enabling useful diagnostics under a debugger or when logging. The level of support for setting a thread's name varies wildly across operating systems, and we only make a best effort to perform the operation on supported platforms. No indication of success or failure is returned.
Referenced by call_once(), and llvm_is_multithreaded().
| SetThreadPriorityResult llvm::set_thread_priority | ( | ThreadPriority | Priority | ) |
set_union(A, B) - Compute A := A u B, return whether A changed.
Definition at line 22 of file SetOperations.h.
References SI.
setCurrentDebugType - Set the current debug type, as if the -debug-only=X option were specified.
Note that DebugFlag also needs to be set to true for debug output to be produced.
Definition at line 68 of file Debug.cpp.
References setCurrentDebugTypes().
setCurrentDebugTypes - Set the current debug type, as if the -debug-only=X,Y,Z option were specified.
Set the current debug type, as if the -debug-only=X option were specified.
Note that DebugFlag also needs to be set to true for debug output to be produced.
Definition at line 72 of file Debug.cpp.
References CurrentDebugType, Debug, DebugBufferSize, DebugFlag, llvm::cl::Hidden, llvm::cl::init(), llvm::cl::location(), llvm::StringRef::split(), and T.
Referenced by isCurrentDebugType(), and setCurrentDebugType().
|
inlinestatic |
Replace the address used in the instruction with the direct memory reference.
Definition at line 132 of file X86InstrBuilder.h.
References llvm::MachineOperand::ChangeToImmediate(), llvm::MachineOperand::ChangeToRegister(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::setImm(), and llvm::MachineOperand::setReg().
Referenced by llvm::X86TargetLowering::EmitInstrWithCustomInserter().
| void llvm::setIrrLoopHeaderMetadata | ( | Module * | M, |
| Instruction * | TI, | ||
| uint64_t | Count | ||
| ) |
Definition at line 1745 of file PGOInstrumentation.cpp.
References llvm::Module::getContext(), and llvm::Instruction::setMetadata().
Referenced by isIndirectBrTarget().
|
inline |
Definition at line 160 of file AliasAnalysis.h.
References MustMod.
Referenced by llvm::BasicAAResult::getModRefInfo().
|
inline |
Definition at line 172 of file AliasAnalysis.h.
References MustModRef.
Referenced by llvm::AAResults::getModRefInfo().
|
inline |
Definition at line 168 of file AliasAnalysis.h.
References MustModRef.
Referenced by llvm::GlobalsAAResult::FunctionInfo::addModRefInfo(), llvm::AAResults::callCapturesBefore(), llvm::BasicAAResult::getModRefInfo(), and llvm::AAResults::getModRefInfo().
| void llvm::setProfMetadata | ( | Module * | M, |
| Instruction * | TI, | ||
| ArrayRef< uint64_t > | EdgeCounts, | ||
| uint64_t | MaxCount | ||
| ) |
Definition at line 1697 of file PGOInstrumentation.cpp.
References assert(), calculateCountScale(), dbgs(), DEBUG_TYPE, llvm::OptimizationRemarkEmitter::emit(), EmitBranchProbability, F(), llvm::raw_ostream::flush(), getBranchCondString(), llvm::Module::getContext(), llvm::Value::getContext(), llvm::Instruction::getParent(), llvm::BasicBlock::getParent(), LLVM_DEBUG, llvm::SmallVectorTemplateBase< T, bool >::push_back(), scaleBranchCount(), llvm::Instruction::setMetadata(), llvm::misexpect::verifyMisExpect(), and llvm::RISCVFenceField::W.
Referenced by isIndirectBrTarget().
|
inline |
Definition at line 164 of file AliasAnalysis.h.
References MustRef.
Referenced by llvm::BasicAAResult::getModRefInfo().
| Expected< std::unique_ptr< ToolOutputFile > > llvm::setupOptimizationRemarks | ( | LLVMContext & | Context, |
| StringRef | RemarksFilename, | ||
| StringRef | RemarksPasses, | ||
| StringRef | RemarksFormat, | ||
| bool | RemarksWithHotness, | ||
| unsigned | RemarksHotnessThreshold = 0 |
||
| ) |
Setup optimization remarks that output to a file.
Definition at line 145 of file RemarkStreamer.cpp.
References llvm::remarks::createRemarkSerializer(), E, llvm::StringRef::empty(), errorCodeToError(), Format, llvm::LLVMContext::getRemarkStreamer(), llvm::sys::fs::OF_None, llvm::sys::fs::OF_Text, llvm::remarks::parseFormat(), RemarksFilename, llvm::remarks::Separate, llvm::LLVMContext::setDiagnosticsHotnessRequested(), llvm::LLVMContext::setDiagnosticsHotnessThreshold(), llvm::RemarkStreamer::setFilter(), llvm::LLVMContext::setRemarkStreamer(), llvm::Expected< T >::takeError(), and llvm::remarks::YAML.
Referenced by llvm::lto::setupOptimizationRemarks().
| Error llvm::setupOptimizationRemarks | ( | LLVMContext & | Context, |
| raw_ostream & | OS, | ||
| StringRef | RemarksPasses, | ||
| StringRef | RemarksFormat, | ||
| bool | RemarksWithHotness, | ||
| unsigned | RemarksHotnessThreshold = 0 |
||
| ) |
Setup optimization remarks that output directly to a raw_ostream.
OS is managed by the caller and should be open for writing as long as Context is streaming remarks to it.
Definition at line 188 of file RemarkStreamer.cpp.
References llvm::remarks::createRemarkSerializer(), E, llvm::StringRef::empty(), Format, llvm::LLVMContext::getRemarkStreamer(), llvm::remarks::parseFormat(), llvm::remarks::Separate, llvm::LLVMContext::setDiagnosticsHotnessRequested(), llvm::LLVMContext::setDiagnosticsHotnessThreshold(), llvm::RemarkStreamer::setFilter(), llvm::LLVMContext::setRemarkStreamer(), llvm::Error::success(), and llvm::Expected< T >::takeError().
| void llvm::setWidenableBranchCond | ( | BranchInst * | WidenableBR, |
| Value * | Cond | ||
| ) |
Given a branch we know is widenable (defined per Analysis/GuardUtils.h), set it's condition such that (only) 'Cond' is known to hold on the taken path and that the branch remains widenable after transform.
Definition at line 108 of file GuardUtils.cpp.
References assert(), B, C, llvm::IRBuilder< T, Inserter >::CreateAnd(), llvm::BranchInst::getCondition(), isWidenableBranch(), llvm::Instruction::moveBefore(), parseWidenableBranch(), and llvm::BranchInst::setCondition().
|
static |
Definition at line 493 of file APFloat.cpp.
References lostFractionThroughTruncation(), and llvm::APInt::tcShiftRight().
Referenced by llvm::detail::IEEEFloat::convert(), llvm::ScaledNumber< uint64_t >::operator/=(), llvm::ScaledNumber< uint64_t >::operator>>=(), and llvm::detail::IEEEFloat::~IEEEFloat().
| bool llvm::shouldFuncOptimizeForSizeImpl | ( | const FuncT * | F, |
| ProfileSummaryInfo * | PSI, | ||
| BFIT * | BFI, | ||
| PGSOQueryType | QueryType | ||
| ) |
Definition at line 42 of file SizeOpts.h.
References assert(), llvm::AMDGPUISD::BFI, F(), llvm::ProfileSummaryInfo::hasLargeWorkingSetSize(), llvm::ProfileSummaryInfo::hasProfileSummary(), llvm::ProfileSummaryInfo::hasSampleProfile(), IRPass, machine_size_opts_detail::isFunctionColdInCallGraph(), machine_size_opts_detail::isFunctionHotInCallGraphNthPercentile(), PgsoCutoffInstrProf, PgsoCutoffSampleProf, and Test.
| bool llvm::shouldOptimizeForSize | ( | const MachineFunction * | MF, |
| ProfileSummaryInfo * | PSI, | ||
| const MachineBlockFrequencyInfo * | BFI, | ||
| PGSOQueryType | QueryType = PGSOQueryType::Other |
||
| ) |
Returns true if machine function MF is suggested to be size-optimized based on the profile.
Definition at line 108 of file MachineSizeOpts.cpp.
Referenced by calculateOffsetDiff(), createCodeGenPreparePass(), createX86FixupBWInsts(), createX86PadShortFunctions(), despeculateCountZeros(), FindAllMemoryUses(), gatherUnrollingPreferences(), getLayoutSuccessorProbThreshold(), getScalarEpilogueLowering(), INITIALIZE_PASS(), insertDeleteInstructions(), isLoadConditional(), isReportingError(), llvm::TargetLoweringBase::isSuitableForJumpTable(), ProfitableToMerge(), salvageDebugInfoFromEmptyBlock(), llvm::SelectionDAG::shouldOptForSize(), shouldOptimizeForSizeImpl(), and llvm::TailDuplicator::shouldTailDuplicate().
| bool llvm::shouldOptimizeForSize | ( | const MachineBasicBlock * | MBB, |
| ProfileSummaryInfo * | PSI, | ||
| const MachineBlockFrequencyInfo * | MBFI, | ||
| PGSOQueryType | QueryType = PGSOQueryType::Other |
||
| ) |
Returns true if machine basic block MBB is suggested to be size-optimized based on the profile.
Definition at line 116 of file MachineSizeOpts.cpp.
| bool llvm::shouldOptimizeForSize | ( | const Function * | F, |
| ProfileSummaryInfo * | PSI, | ||
| BlockFrequencyInfo * | BFI, | ||
| PGSOQueryType | QueryType = PGSOQueryType::Other |
||
| ) |
Returns true if function F is suggested to be size-optimized based on the profile.
Definition at line 77 of file SizeOpts.cpp.
References llvm::AMDGPUISD::BFI, and F().
| bool llvm::shouldOptimizeForSize | ( | const BasicBlock * | BB, |
| ProfileSummaryInfo * | PSI, | ||
| BlockFrequencyInfo * | BFI, | ||
| PGSOQueryType | QueryType = PGSOQueryType::Other |
||
| ) |
Returns true if basic block BB is suggested to be size-optimized based on the profile.
Definition at line 84 of file SizeOpts.cpp.
References llvm::AMDGPUISD::BFI.
| bool llvm::shouldOptimizeForSizeImpl | ( | const BlockT * | BB, |
| ProfileSummaryInfo * | PSI, | ||
| BFIT * | BFI, | ||
| PGSOQueryType | QueryType | ||
| ) |
Definition at line 67 of file SizeOpts.h.
References assert(), llvm::AMDGPUISD::BFI, F(), llvm::ProfileSummaryInfo::hasLargeWorkingSetSize(), llvm::ProfileSummaryInfo::hasProfileSummary(), llvm::ProfileSummaryInfo::hasSampleProfile(), IRPass, machine_size_opts_detail::isColdBlock(), machine_size_opts_detail::isHotBlockNthPercentile(), Other, PgsoCutoffInstrProf, PgsoCutoffSampleProf, shouldOptimizeForSize(), and Test.
| bool llvm::shouldPrintAfterPass | ( | ) |
Definition at line 107 of file LegacyPassManager.cpp.
References PrintAfter().
Referenced by llvm::PrintIRInstrumentation::registerCallbacks(), llvm::PMTopLevelManager::schedulePass(), and llvm::PrintIRInstrumentation::~PrintIRInstrumentation().
Definition at line 126 of file LegacyPassManager.cpp.
References PrintAfter(), and ShouldPrintBeforeOrAfterPass().
| bool llvm::shouldPrintBeforePass | ( | ) |
This is a helper to determine whether to print IR before or after a pass.
Definition at line 103 of file LegacyPassManager.cpp.
References PrintBefore().
Referenced by llvm::PrintIRInstrumentation::registerCallbacks(), llvm::PMTopLevelManager::schedulePass(), and llvm::PrintIRInstrumentation::~PrintIRInstrumentation().
Definition at line 122 of file LegacyPassManager.cpp.
References PrintBefore(), and ShouldPrintBeforeOrAfterPass().
| bool llvm::shouldReverseIterate | ( | ) |
Definition at line 10 of file ReverseIteration.h.
Referenced by llvm::SmallPtrSetImpl< const llvm::SCEV * >::begin(), llvm::SmallPtrSetImpl< const llvm::SCEV * >::end(), llvm::SmallPtrSetIterator< PtrTy >::operator*(), llvm::SmallPtrSetIterator< PtrTy >::operator++(), and llvm::SmallPtrSetIteratorImpl::SmallPtrSetIteratorImpl().
|
static |
Check if the instr pair, FirstMI and SecondMI, should be fused together.
Given SecondMI, when FirstMI is unspecified, then check if SecondMI may be part of a fused pair at all.
Definition at line 51 of file ARMMacroFusion.cpp.
References llvm::ARMSubtarget::hasFuseAES(), llvm::ARMSubtarget::hasFuseLiterals(), isAESPair(), isLiteralsPair(), and llvm::ARM_MB::ST.
Referenced by createAArch64MacroFusionDAGMutation(), createAMDGPUMacroFusionDAGMutation(), createARMMacroFusionDAGMutation(), createBranchMacroFusionDAGMutation(), createMacroFusionDAGMutation(), createX86MacroFusionDAGMutation(), and fuseInstructionPair().
| std::unique_ptr< wasm::WasmSignature > llvm::signatureFromMVTs | ( | const SmallVectorImpl< MVT > & | Results, |
| const SmallVectorImpl< MVT > & | Params | ||
| ) |
Definition at line 75 of file WebAssemblyMachineFunctionInfo.cpp.
References valTypesFromMVTs().
Referenced by llvm::WebAssemblyAsmPrinter::EmitEndOfAsmFile(), llvm::WebAssemblyAsmPrinter::EmitFunctionBodyStart(), and llvm::WebAssemblyFunctionInfo::setCFGStackified().
| bool llvm::SignBitMustBeZero | ( | const Value * | V, |
| const TargetLibraryInfo * | TLI | ||
| ) |
Return true if we can prove that the specified FP value's sign bit is 0.
NaN –> true/false (depending on the NaN's sign bit) +0 –> true -0 –> false x > +0 –> true x < -0 –> false
Definition at line 3192 of file ValueTracking.cpp.
References cannotBeOrderedLessThanZeroImpl().
Referenced by simplifyUnaryIntrinsic(), and llvm::InstCombiner::visitCallInst().
|
inline |
Sign-extend the number in the bottom B bits of X to a 32-bit integer.
Requires 0 < B <= 32.
Definition at line 750 of file MathExtras.h.
References B.
Referenced by llvm::PPC::get_VSPLTI_elt().
Sign-extend the number in the bottom B bits of X to a 32-bit integer.
Requires 0 < B < 32.
Definition at line 758 of file MathExtras.h.
|
inline |
Sign-extend the number in the bottom B bits of X to a 64-bit integer.
Requires 0 < B < 64.
Definition at line 766 of file MathExtras.h.
References B.
Referenced by llvm::APInt::ashrInPlace(), brtargetDecoder(), llvm::RuntimeDyldMachOAArch64::decodeAddend(), DecodeAddiGroupBranch(), DecodeBgtzGroupBranch(), DecodeBgtzGroupBranchMMR6(), DecodeBgtzlGroupBranch(), DecodeBlezGroupBranch(), DecodeBlezGroupBranchMMR6(), DecodeBlezlGroupBranch(), DecodeDaddiGroupBranch(), DecodePOP35GroupBranchMMR6(), DecodePOP37GroupBranchMMR6(), DecodePOP65GroupBranchMMR6(), DecodePOP75GroupBranchMMR6(), evaluateGEPOffsetExpression(), llvm::InstructionSelector::executeMatchTable(), llvm::RuntimeDyldMachOX86_64::finalizeSection(), llvm::RuntimeDyldMachOAArch64::finalizeSection(), findMemSDNode(), llvm::AArch64InstrInfo::genAlternativeCodeSequence(), llvm::RISCVMatInt::generateInstSeq(), llvm::SelectionDAG::getGlobalAddress(), llvm::APInt::getSExtValue(), llvm::SystemZVectorConstantInfo::isVectorConstantLegal(), llvm::APInt::operator*=(), llvm::PPCTargetLowering::PerformDAGCombine(), llvm::AArch64InstPrinter::printInst(), llvm::RuntimeDyldMachOAArch64::processRelocationRef(), llvm::APInt::roundToDouble(), s32_0ImmDecoder(), selectI64Imm(), selectI64ImmDirect(), and llvm::APInt::sext().
|
inline |
Sign-extend the number in the bottom B bits of X to a 64-bit integer.
Requires 0 < B < 64.
Definition at line 774 of file MathExtras.h.
| Value * llvm::SimplifyAddInst | ( | Value * | LHS, |
| Value * | RHS, | ||
| bool | isNSW, | ||
| bool | isNUW, | ||
| const SimplifyQuery & | Q | ||
| ) |
Given operands for an Add, fold the result or return null.
Definition at line 681 of file InstructionSimplify.cpp.
References RecursionLimit, and SimplifyAddInst().
Referenced by dropRedundantMaskingOfLeftShiftInput(), foldShiftIntoShiftInAnotherHandOfAndInICmp(), llvm::SimplifyQuery::getWithInstruction(), llvm::InstCombiner::reassociateShiftAmtsOfTwoSameDirectionShifts(), RemoveInstInputs(), SimplifyBinOp(), SimplifyInstruction(), llvm::InstCombiner::visitAdd(), and llvm::InstCombiner::visitGetElementPtrInst().
| Value * llvm::SimplifyAndInst | ( | Value * | LHS, |
| Value * | RHS, | ||
| const SimplifyQuery & | Q | ||
| ) |
Given operands for an And, fold the result or return null.
Definition at line 2094 of file InstructionSimplify.cpp.
References RecursionLimit, and SimplifyAndInst().
Referenced by llvm::SimplifyQuery::getWithInstruction(), SimplifyBinOp(), SimplifyInstruction(), SimplifyMulInst(), and llvm::InstCombiner::visitAnd().
Given operands for a AShr, fold the result or return nulll.
Definition at line 1407 of file InstructionSimplify.cpp.
References RecursionLimit, and SimplifyAShrInst().
Referenced by llvm::SimplifyQuery::getWithInstruction(), SimplifyBinOp(), SimplifyInstruction(), and llvm::InstCombiner::visitAShr().
Given operands for a BinaryOperator, fold the result or return null.
Definition at line 4910 of file InstructionSimplify.cpp.
References RecursionLimit, and SimplifyBinOp().
Referenced by alwaysAvailable(), canonicalizeSaturatedAdd(), constantFoldUser(), ExpandBinOp(), foldXorToXor(), getBinOpsForFactorization(), simplifyAssocCastAssoc(), SimplifyAssociativeBinOp(), SimplifyBinOp(), SimplifySubInst(), SimplifyWithOpReplaced(), ThreadBinOpOverPHI(), and ThreadBinOpOverSelect().
| Value * llvm::SimplifyBinOp | ( | unsigned | Opcode, |
| Value * | LHS, | ||
| Value * | RHS, | ||
| FastMathFlags | FMF, | ||
| const SimplifyQuery & | Q | ||
| ) |
Given operands for a BinaryOperator, fold the result or return null.
Try to use FastMathFlags when folding the result.
Definition at line 4915 of file InstructionSimplify.cpp.
References RecursionLimit, and SimplifyBinOp().
| Value * llvm::SimplifyCall | ( | CallBase * | Call, |
| const SimplifyQuery & | Q | ||
| ) |
Given a callsite, fold the result or return null.
Definition at line 5290 of file InstructionSimplify.cpp.
References Arg, llvm::CallBase::args(), C, Callee, canConstantFoldCallTo(), ConstantFoldCall(), dyn_cast(), F(), llvm::UndefValue::get(), llvm::CallBase::getCalledValue(), llvm::CallBase::getNumArgOperands(), llvm::Value::getType(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::SmallVectorImpl< T >::reserve(), llvm::MipsISD::Ret, simplifyIntrinsic(), and llvm::SimplifyQuery::TLI.
Referenced by SimplifyInstruction(), and llvm::InstCombiner::visitCallInst().
Given operands for a CastInst, fold the result or return null.
Definition at line 4363 of file InstructionSimplify.cpp.
References RecursionLimit, and SimplifyCastInst().
Referenced by alwaysAvailable(), constantFoldUser(), SimplifyInstruction(), and SimplifySubInst().
| bool llvm::simplifyCFG | ( | BasicBlock * | BB, |
| const TargetTransformInfo & | TTI, | ||
| const SimplifyCFGOptions & | Options = {}, |
||
| SmallPtrSetImpl< BasicBlock *> * | LoopHeaders = nullptr |
||
| ) |
This function is used to do simplification of a CFG.
For example, it adjusts branches to branches to eliminate the extra hop, it eliminates unreachable basic blocks, and does other peephole optimization of the CFG. It returns true if a modification was made, possibly deleting the basic block that was pointed to. LoopHeaders is an optional input parameter providing the set of loop headers that SimplifyCFG should not eliminate.
Definition at line 6189 of file SimplifyCFG.cpp.
References llvm::Module::getDataLayout(), and llvm::BasicBlock::getModule().
Referenced by createDwarfEHPass(), iterativelySimplifyCFG(), lowerSubFn(), llvm::SimplifyCFGOptions::setAssumptionCache(), and unifyReturnBlockSet().
| Value * llvm::SimplifyCmpInst | ( | unsigned | Predicate, |
| Value * | LHS, | ||
| Value * | RHS, | ||
| const SimplifyQuery & | Q | ||
| ) |
Given operands for a CmpInst, fold the result or return null.
Definition at line 4928 of file InstructionSimplify.cpp.
References RecursionLimit, and SimplifyCmpInst().
Referenced by alwaysAvailable(), llvm::JumpThreadingPass::ComputeValueKnownInPredecessorsImpl(), SimplifyWithOpReplaced(), and ThreadCmpOverPHI().
| Value * llvm::SimplifyExtractElementInst | ( | Value * | Vec, |
| Value * | Idx, | ||
| const SimplifyQuery & | Q | ||
| ) |
Given operands for an ExtractElementInst, fold the result or return null.
Definition at line 4291 of file InstructionSimplify.cpp.
References RecursionLimit, and SimplifyExtractElementInst().
Referenced by SimplifyInstruction(), and llvm::InstCombiner::visitExtractElementInst().
| Value * llvm::SimplifyExtractValueInst | ( | Value * | Agg, |
| ArrayRef< unsigned > | Idxs, | ||
| const SimplifyQuery & | Q | ||
| ) |
Given operands for an ExtractValueInst, fold the result or return null.
Definition at line 4252 of file InstructionSimplify.cpp.
References RecursionLimit, and SimplifyExtractValueInst().
Referenced by SimplifyInstruction(), and llvm::InstCombiner::visitExtractValueInst().
| Value * llvm::SimplifyFAddInst | ( | Value * | LHS, |
| Value * | RHS, | ||
| FastMathFlags | FMF, | ||
| const SimplifyQuery & | Q | ||
| ) |
Given operands for an FAdd, fold the result or return null.
Definition at line 4713 of file InstructionSimplify.cpp.
References RecursionLimit, and SimplifyFAddInst().
Referenced by llvm::SimplifyQuery::getWithInstruction(), SimplifyBinOp(), SimplifyInstruction(), and llvm::InstCombiner::visitFAdd().
| Value * llvm::SimplifyFCmpInst | ( | unsigned | Predicate, |
| Value * | LHS, | ||
| Value * | RHS, | ||
| FastMathFlags | FMF, | ||
| const SimplifyQuery & | Q | ||
| ) |
Given operands for an FCmpInst, fold the result or return null.
Definition at line 3699 of file InstructionSimplify.cpp.
References RecursionLimit, and SimplifyFCmpInst().
Referenced by llvm::SimplifyQuery::getWithInstruction(), SimplifyCmpInst(), SimplifyInstruction(), and llvm::InstCombiner::visitFCmpInst().
| Value * llvm::SimplifyFDivInst | ( | Value * | LHS, |
| Value * | RHS, | ||
| FastMathFlags | FMF, | ||
| const SimplifyQuery & | Q | ||
| ) |
Given operands for an FDiv, fold the result or return null.
Definition at line 4774 of file InstructionSimplify.cpp.
References RecursionLimit, and SimplifyFDivInst().
Referenced by llvm::SimplifyQuery::getWithInstruction(), SimplifyBinOp(), SimplifyInstruction(), and llvm::InstCombiner::visitFDiv().
| Value * llvm::SimplifyFMAFMul | ( | Value * | LHS, |
| Value * | RHS, | ||
| FastMathFlags | FMF, | ||
| const SimplifyQuery & | Q | ||
| ) |
Given operands for the multiplication of a FMA, fold the result or return null.
In contrast to SimplifyFMulInst, this function will not perform simplifications whose unrounded results differ when rounded to the argument type.
Definition at line 4729 of file InstructionSimplify.cpp.
References RecursionLimit, and SimplifyFMAFMul().
Referenced by llvm::SimplifyQuery::getWithInstruction(), SimplifyFMulInst(), and llvm::InstCombiner::visitCallInst().
| Value * llvm::SimplifyFMulInst | ( | Value * | LHS, |
| Value * | RHS, | ||
| FastMathFlags | FMF, | ||
| const SimplifyQuery & | Q | ||
| ) |
Given operands for an FMul, fold the result or return null.
Definition at line 4724 of file InstructionSimplify.cpp.
References RecursionLimit, and SimplifyFMulInst().
Referenced by llvm::SimplifyQuery::getWithInstruction(), SimplifyBinOp(), SimplifyInstruction(), llvm::InstCombiner::visitCallInst(), and llvm::InstCombiner::visitFMul().
| Value * llvm::SimplifyFNegInst | ( | Value * | Op, |
| FastMathFlags | FMF, | ||
| const SimplifyQuery & | Q | ||
| ) |
Given operand for an FNeg, fold the result or return null.
Definition at line 4547 of file InstructionSimplify.cpp.
References RecursionLimit, and simplifyFNegInst().
Referenced by llvm::SimplifyQuery::getWithInstruction(), SimplifyInstruction(), and llvm::InstCombiner::visitFNeg().
| Value * llvm::SimplifyFreezeInst | ( | Value * | Op, |
| const SimplifyQuery & | Q | ||
| ) |
Given an operand for a Freeze, see if we can fold the result.
If not, this returns null.
Definition at line 5331 of file InstructionSimplify.cpp.
References SimplifyFreezeInst().
Referenced by SimplifyInstruction(), and llvm::InstCombiner::visitFreeze().
| Value * llvm::SimplifyFRemInst | ( | Value * | LHS, |
| Value * | RHS, | ||
| FastMathFlags | FMF, | ||
| const SimplifyQuery & | Q | ||
| ) |
Given operands for an FRem, fold the result or return null.
Definition at line 4802 of file InstructionSimplify.cpp.
References RecursionLimit, and SimplifyFRemInst().
Referenced by llvm::SimplifyQuery::getWithInstruction(), SimplifyBinOp(), SimplifyInstruction(), and llvm::InstCombiner::visitFRem().
| Value * llvm::SimplifyFSubInst | ( | Value * | LHS, |
| Value * | RHS, | ||
| FastMathFlags | FMF, | ||
| const SimplifyQuery & | Q | ||
| ) |
Given operands for an FSub, fold the result or return null.
Definition at line 4719 of file InstructionSimplify.cpp.
References RecursionLimit, and SimplifyFSubInst().
Referenced by llvm::SimplifyQuery::getWithInstruction(), SimplifyBinOp(), SimplifyInstruction(), and llvm::InstCombiner::visitFSub().
Given operands for a GetElementPtrInst, fold the result or return null.
Definition at line 4153 of file InstructionSimplify.cpp.
References RecursionLimit, and SimplifyGEPInst().
Referenced by alwaysAvailable(), RemoveInstInputs(), SimplifyInstruction(), SimplifyWithOpReplaced(), and llvm::InstCombiner::visitGetElementPtrInst().
| Value * llvm::SimplifyICmpInst | ( | unsigned | Predicate, |
| Value * | LHS, | ||
| Value * | RHS, | ||
| const SimplifyQuery & | Q | ||
| ) |
Given operands for an ICmpInst, fold the result or return null.
Definition at line 3510 of file InstructionSimplify.cpp.
References RecursionLimit, and SimplifyICmpInst().
Referenced by llvm::SimplifyQuery::getWithInstruction(), isICmpTrue(), SimplifyCmpInst(), SimplifyICmpInst(), simplifyICmpWithBinOp(), simplifyICmpWithMinMax(), SimplifyInstruction(), and llvm::InstCombiner::visitICmpInst().
| Value * llvm::SimplifyInsertElementInst | ( | Value * | Vec, |
| Value * | Elt, | ||
| Value * | Idx, | ||
| const SimplifyQuery & | Q | ||
| ) |
Given operands for an InsertElement, fold the result or return null.
Definition at line 4193 of file InstructionSimplify.cpp.
References ConstantFoldInsertElementInstruction(), dyn_cast(), llvm::UndefValue::get(), llvm::Value::getType(), llvm::PatternMatch::m_ExtractElement(), llvm::PatternMatch::m_Specific(), and llvm::PatternMatch::match().
Referenced by SimplifyInstruction(), and llvm::InstCombiner::visitInsertElementInst().
| Value * llvm::SimplifyInsertValueInst | ( | Value * | Agg, |
| Value * | Val, | ||
| ArrayRef< unsigned > | Idxs, | ||
| const SimplifyQuery & | Q | ||
| ) |
Given operands for an InsertValueInst, fold the result or return null.
Definition at line 4187 of file InstructionSimplify.cpp.
References RecursionLimit, and SimplifyInsertValueInst().
Referenced by SimplifyInstruction().
| Value * llvm::SimplifyInstruction | ( | Instruction * | I, |
| const SimplifyQuery & | SQ, | ||
| OptimizationRemarkEmitter * | ORE = nullptr |
||
| ) |
See if we can compute a simplified version of this instruction.
If not, return null.
If not, this returns null.
If called on unreachable code, the above logic may report that the instruction simplified to itself. Make life easier for users by detecting that case here, returning a safe value instead.
Definition at line 5338 of file InstructionSimplify.cpp.
References llvm::SimplifyQuery::AC, llvm::MCID::Add, llvm::MCID::Call, computeKnownBits(), ConstantFoldInstruction(), llvm::SimplifyQuery::CxtI, llvm::SimplifyQuery::DL, llvm::SimplifyQuery::DT, llvm::ConstantInt::get(), llvm::UndefValue::get(), llvm::InsertValueInst::getAggregateOperand(), llvm::KnownBits::getConstant(), llvm::Instruction::getFastMathFlags(), llvm::InsertValueInst::getIndices(), llvm::InsertValueInst::getInsertedValueOperand(), llvm::Instruction::getOpcode(), llvm::User::getOperand(), llvm::PPC::getPredicate(), llvm::Value::getType(), llvm::SimplifyQuery::getWithInstruction(), llvm::InstrInfoQuery::hasNoSignedWrap(), llvm::InstrInfoQuery::hasNoUnsignedWrap(), I, llvm::ARM_PROC::IE, llvm::SimplifyQuery::IIQ, llvm::KnownBits::isConstant(), llvm::InstrInfoQuery::isExact(), llvm::Type::isIntOrIntVectorTy(), llvm::User::op_begin(), llvm::User::op_end(), llvm::MCID::Select, SimplifyAddInst(), SimplifyAndInst(), SimplifyAShrInst(), SimplifyCall(), SimplifyCastInst(), SimplifyExtractElementInst(), SimplifyExtractValueInst(), SimplifyFAddInst(), SimplifyFCmpInst(), SimplifyFDivInst(), SimplifyFMulInst(), SimplifyFNegInst(), SimplifyFreezeInst(), SimplifyFRemInst(), SimplifyFSubInst(), SimplifyGEPInst(), SimplifyICmpInst(), SimplifyInsertElementInst(), SimplifyInsertValueInst(), SimplifyLShrInst(), SimplifyMulInst(), SimplifyOrInst(), SimplifyPHINode(), SimplifySDivInst(), SimplifySelectInst(), SimplifyShlInst(), SimplifyShuffleVectorInst(), SimplifySRemInst(), SimplifySubInst(), SimplifyUDivInst(), SimplifyURemInst(), SimplifyXorInst(), and llvm::SimplifyQuery::TLI.
Referenced by CloneAndPruneIntoFromInst(), CloneFunction(), llvm::JumpThreadingPass::DuplicateCondBranchOnPHIIntoPred(), eliminateTailRecursion(), findPHIToPartitionLoops(), FoldCondBranchOnPHI(), FoldTwoEntryPHINode(), getMaxPointerSize(), GetUnderlyingObject(), llvm::SSAUpdater::GetValueInMiddleOfBlock(), InlineFunction(), isOnlyReachableViaThisEdge(), isZero(), mayLoopAccessLocation(), processPHI(), promoteSingleBlockAlloca(), replaceAndRecursivelySimplifyImpl(), llvm::SCEVExpander::replaceCongruentIVs(), ReplaceUsesOfWith(), runImpl(), shouldRotateLoopExitingLatch(), simplifyAndDCEInstruction(), SimplifyIndirectBrOnSelect(), simplifyLoopAfterUnroll(), simplifyLoopInst(), tryUnmergingGEPsAcrossIndirectBr(), and llvm::InstCombiner::visitPHINode().
| bool llvm::SimplifyInstructionsInBlock | ( | BasicBlock * | BB, |
| const TargetLibraryInfo * | TLI = nullptr |
||
| ) |
Scan the specified basic block and try to simplify any instructions in it and recursively delete dead instructions.
SimplifyInstructionsInBlock - Scan the specified basic block and try to simplify any instructions in it and recursively delete dead instructions.
This returns true if it changed the code, note that it can delete instructions in other blocks as well in this block.
Definition at line 602 of file Local.cpp.
References assert(), llvm::BasicBlock::back(), llvm::BasicBlock::begin(), E, llvm::BasicBlock::end(), llvm::Module::getDataLayout(), llvm::BasicBlock::getModule(), I, and simplifyAndDCEInstruction().
Referenced by foldUnusualPatterns(), llvm::SimplifyCFGOptions::setAssumptionCache(), and llvm::JumpThreadingPass::ThreadEdge().
| bool llvm::simplifyLoop | ( | Loop * | L, |
| DominatorTree * | DT, | ||
| LoopInfo * | LI, | ||
| ScalarEvolution * | SE, | ||
| AssumptionCache * | AC, | ||
| MemorySSAUpdater * | MSSAU, | ||
| bool | PreserveLCSSA | ||
| ) |
Simplify each loop in a loop nest recursively.
This takes a potentially un-simplified loop L (and its children) and turns it into a simplified loop nest with preheaders and single backedges. It will update DominatorTree, LoopInfo, ScalarEvolution and MemorySSA analyses if they're non-null, and LCSSA if PreserveLCSSA is true.
Definition at line 710 of file LoopSimplify.cpp.
References llvm::AnalysisUsage::addPreserved(), llvm::AnalysisUsage::addPreservedID(), llvm::AnalysisUsage::addRequired(), assert(), llvm::LoopBase< BlockT, LoopT >::begin(), BreakCriticalEdgesID, EnableMSSALoopDependency, llvm::LoopBase< BlockT, LoopT >::end(), F(), llvm::PassRegistry::getPassRegistry(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_DEPENDENCY, initializeLoopSimplifyPass(), llvm::Loop::isRecursivelyLCSSAForm(), LCSSAID, llvm::SmallVectorTemplateBase< T, bool >::push_back(), runOnFunction(), and simplifyOneLoop().
Referenced by createLoopSimplifyPass(), peelLoop(), llvm::LoopSimplifyPass::run(), llvm::LoopUnrollPass::run(), llvm::LoopVectorizePass::runImpl(), tryToUnrollAndJamLoop(), and UnrollLoop().
| void llvm::simplifyLoopAfterUnroll | ( | Loop * | L, |
| bool | SimplifyIVs, | ||
| LoopInfo * | LI, | ||
| ScalarEvolution * | SE, | ||
| DominatorTree * | DT, | ||
| AssumptionCache * | AC | ||
| ) |
Perform some cleanup and simplifications on loops after unrolling.
It is useful to simplify the IV's in the new loop, as well as do a quick simplify/dce pass of the instructions.
Definition at line 200 of file LoopUnroll.cpp.
References E, llvm::SmallVectorBase::empty(), llvm::LoopBase< BlockT, LoopT >::getBlocks(), llvm::Module::getDataLayout(), llvm::LoopBase< BlockT, LoopT >::getHeader(), llvm::BasicBlock::getModule(), I, isInstructionTriviallyDead(), llvm::SmallVectorImpl< T >::pop_back_val(), RecursivelyDeleteTriviallyDeadInstructions(), llvm::Value::replaceAllUsesWith(), llvm::LoopInfo::replacementPreservesLCSSAForm(), SimplifyInstruction(), and simplifyLoopIVs().
Referenced by UnrollAndJamLoop(), and UnrollLoop().
| bool llvm::simplifyLoopIVs | ( | Loop * | L, |
| ScalarEvolution * | SE, | ||
| DominatorTree * | DT, | ||
| LoopInfo * | LI, | ||
| SmallVectorImpl< WeakTrackingVH > & | Dead | ||
| ) |
SimplifyLoopIVs - Simplify users of induction variables within this loop.
Simplify users of induction variables within this loop.
This does not actually change or add IVs.
Definition at line 944 of file SimplifyIndVar.cpp.
References llvm::BasicBlock::begin(), DEBUG_TYPE, llvm::ScalarEvolution::getDataLayout(), llvm::LoopBase< BlockT, LoopT >::getHeader(), I, Rewriter, and simplifyUsersOfIV().
Referenced by llvm::IVVisitor::getDomTree(), and simplifyLoopAfterUnroll().
Given operands for a LShr, fold the result or return null.
Definition at line 1376 of file InstructionSimplify.cpp.
References RecursionLimit, and SimplifyLShrInst().
Referenced by llvm::SimplifyQuery::getWithInstruction(), SimplifyBinOp(), SimplifyInstruction(), and llvm::InstCombiner::visitLShr().
| Value * llvm::SimplifyMulInst | ( | Value * | LHS, |
| Value * | RHS, | ||
| const SimplifyQuery & | Q | ||
| ) |
Given operands for a Mul, fold the result or return null.
Definition at line 926 of file InstructionSimplify.cpp.
References RecursionLimit, and SimplifyMulInst().
Referenced by llvm::SimplifyQuery::getWithInstruction(), SimplifyBinOp(), SimplifyInstruction(), and llvm::InstCombiner::visitMul().
| Value * llvm::SimplifyOrInst | ( | Value * | LHS, |
| Value * | RHS, | ||
| const SimplifyQuery & | Q | ||
| ) |
Given operands for an Or, fold the result or return null.
Definition at line 2238 of file InstructionSimplify.cpp.
References RecursionLimit, and SimplifyOrInst().
Referenced by llvm::SimplifyQuery::getWithInstruction(), SimplifyBinOp(), SimplifyInstruction(), and llvm::InstCombiner::visitOr().
| Value * llvm::SimplifySDivInst | ( | Value * | LHS, |
| Value * | RHS, | ||
| const SimplifyQuery & | Q | ||
| ) |
Given operands for an SDiv, fold the result or return null.
Definition at line 1160 of file InstructionSimplify.cpp.
References RecursionLimit, and SimplifySDivInst().
Referenced by llvm::SimplifyQuery::getWithInstruction(), SimplifyBinOp(), SimplifyInstruction(), and llvm::InstCombiner::visitSDiv().
| Value * llvm::SimplifySelectInst | ( | Value * | Cond, |
| Value * | TrueVal, | ||
| Value * | FalseVal, | ||
| const SimplifyQuery & | Q | ||
| ) |
Given operands for a SelectInst, fold the result or return null.
Definition at line 4034 of file InstructionSimplify.cpp.
Referenced by alwaysAvailable(), llvm::SimplifyQuery::getWithInstruction(), and SimplifyInstruction().
| Value * llvm::SimplifyShlInst | ( | Value * | Op0, |
| Value * | Op1, | ||
| bool | isNSW, | ||
| bool | isNUW, | ||
| const SimplifyQuery & | Q | ||
| ) |
Given operands for a Shl, fold the result or return null.
Definition at line 1338 of file InstructionSimplify.cpp.
References RecursionLimit, and SimplifyShlInst().
Referenced by llvm::SimplifyQuery::getWithInstruction(), SimplifyBinOp(), SimplifyInstruction(), and llvm::InstCombiner::visitShl().
| Value * llvm::SimplifyShuffleVectorInst | ( | Value * | Op0, |
| Value * | Op1, | ||
| Constant * | Mask, | ||
| Type * | RetTy, | ||
| const SimplifyQuery & | Q | ||
| ) |
Given operands for a ShuffleVectorInst, fold the result or return null.
Definition at line 4520 of file InstructionSimplify.cpp.
References RecursionLimit, and SimplifyShuffleVectorInst().
Referenced by SimplifyInstruction(), and llvm::InstCombiner::visitShuffleVectorInst().
| Value * llvm::SimplifySRemInst | ( | Value * | LHS, |
| Value * | RHS, | ||
| const SimplifyQuery & | Q | ||
| ) |
Given operands for an SRem, fold the result or return null.
Definition at line 1192 of file InstructionSimplify.cpp.
References RecursionLimit, and SimplifySRemInst().
Referenced by llvm::SimplifyQuery::getWithInstruction(), SimplifyBinOp(), SimplifyInstruction(), and llvm::InstCombiner::visitSRem().
| Value * llvm::SimplifySubInst | ( | Value * | LHS, |
| Value * | RHS, | ||
| bool | isNSW, | ||
| bool | isNUW, | ||
| const SimplifyQuery & | Q | ||
| ) |
Given operands for a Sub, fold the result or return null.
Definition at line 865 of file InstructionSimplify.cpp.
References RecursionLimit, and SimplifySubInst().
Referenced by dropRedundantMaskingOfLeftShiftInput(), llvm::SimplifyQuery::getWithInstruction(), SimplifyBinOp(), SimplifyInstruction(), and llvm::InstCombiner::visitSub().
| Value * llvm::SimplifyUDivInst | ( | Value * | LHS, |
| Value * | RHS, | ||
| const SimplifyQuery & | Q | ||
| ) |
Given operands for a UDiv, fold the result or return null.
Definition at line 1171 of file InstructionSimplify.cpp.
References RecursionLimit, and SimplifyUDivInst().
Referenced by llvm::SimplifyQuery::getWithInstruction(), SimplifyBinOp(), SimplifyInstruction(), and llvm::InstCombiner::visitUDiv().
| Value * llvm::SimplifyUnOp | ( | unsigned | Opcode, |
| Value * | Op, | ||
| const SimplifyQuery & | Q | ||
| ) |
Given operand for a UnaryOperator, fold the result or return null.
Definition at line 4835 of file InstructionSimplify.cpp.
References RecursionLimit, and simplifyUnOp().
| Value * llvm::SimplifyUnOp | ( | unsigned | Opcode, |
| Value * | Op, | ||
| FastMathFlags | FMF, | ||
| const SimplifyQuery & | Q | ||
| ) |
Given operand for a UnaryOperator, fold the result or return null.
Try to use FastMathFlags when folding the result.
Definition at line 4839 of file InstructionSimplify.cpp.
References RecursionLimit, and simplifyFPUnOp().
| Value * llvm::SimplifyURemInst | ( | Value * | LHS, |
| Value * | RHS, | ||
| const SimplifyQuery & | Q | ||
| ) |
Given operands for a URem, fold the result or return null.
Definition at line 1203 of file InstructionSimplify.cpp.
References RecursionLimit, and SimplifyURemInst().
Referenced by llvm::SimplifyQuery::getWithInstruction(), SimplifyBinOp(), SimplifyInstruction(), and llvm::InstCombiner::visitURem().
| bool llvm::simplifyUsersOfIV | ( | PHINode * | CurrIV, |
| ScalarEvolution * | SE, | ||
| DominatorTree * | DT, | ||
| LoopInfo * | LI, | ||
| SmallVectorImpl< WeakTrackingVH > & | Dead, | ||
| SCEVExpander & | Rewriter, | ||
| IVVisitor * | V = nullptr |
||
| ) |
simplifyUsersOfIV - Simplify instructions that use this induction variable by using ScalarEvolution to analyze the IV's recurrence.
Simplify instructions that use this induction variable by using ScalarEvolution to analyze the IV's recurrence.
Definition at line 933 of file SimplifyIndVar.cpp.
References llvm::LoopInfoBase< BlockT, LoopT >::getLoopFor(), and llvm::Instruction::getParent().
Referenced by llvm::IVVisitor::getDomTree(), simplifyLoopIVs(), and truncateIVUse().
| Value * llvm::SimplifyXorInst | ( | Value * | LHS, |
| Value * | RHS, | ||
| const SimplifyQuery & | Q | ||
| ) |
Given operands for an Xor, fold the result or return null.
Definition at line 2283 of file InstructionSimplify.cpp.
References RecursionLimit, and SimplifyXorInst().
Referenced by llvm::SimplifyQuery::getWithInstruction(), SimplifyAddInst(), SimplifyBinOp(), SimplifyInstruction(), SimplifySubInst(), and llvm::InstCombiner::visitXor().
| bool llvm::sinkRegion | ( | DomTreeNode * | N, |
| AliasAnalysis * | AA, | ||
| LoopInfo * | LI, | ||
| DominatorTree * | DT, | ||
| TargetLibraryInfo * | TLI, | ||
| TargetTransformInfo * | TTI, | ||
| Loop * | CurLoop, | ||
| AliasSetTracker * | CurAST, | ||
| MemorySSAUpdater * | MSSAU, | ||
| ICFLoopSafetyInfo * | SafetyInfo, | ||
| SinkAndHoistLICMFlags & | Flags, | ||
| OptimizationRemarkEmitter * | ORE | ||
| ) |
Walk the specified region of the CFG (defined by all blocks dominated by the specified block, and that are in the current loop) in reverse depth first order w.r.t the DominatorTree.
This allows us to visit uses before definitions, allowing us to sink a loop body in one pass without iteration. Takes DomTreeNode, AliasAnalysis, LoopInfo, DominatorTree, DataLayout, TargetLibraryInfo, Loop, AliasSet information for all instructions of the loop and loop safety information as arguments. Diagnostics is emitted via ORE. It returns changed status.
This allows us to visit uses before definitions, allowing us to sink a loop body in one pass without iteration.
Definition at line 497 of file LICM.cpp.
References llvm::LoopBase< BlockT, LoopT >::addBasicBlockToLoop(), llvm::DominatorTreeBase< NodeT, IsPostDom >::addNewBlock(), assert(), llvm::DenseMapBase< DenseMap< KeyT, ValueT, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::begin(), llvm::BasicBlock::begin(), llvm::SmallPtrSetImpl< PtrType >::begin(), llvm::Function::begin(), C, canSinkOrHoistInst(), llvm::DominatorTreeBase< NodeT, IsPostDom >::changeImmediateDominator(), collectChildrenInLoop(), llvm::LoopBase< BlockT, LoopT >::contains(), ControlFlowHoisting, llvm::DenseMapBase< DenseMap< KeyT, ValueT, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::count(), llvm::SmallPtrSetImpl< PtrType >::count(), llvm::BasicBlock::Create(), llvm::BranchInst::Create(), dbgs(), llvm::DominatorTree::dominates(), llvm::SmallPtrSetImplBase::empty(), llvm::DenseMapBase< DenseMap< KeyT, ValueT, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::BasicBlock::end(), llvm::Function::end(), llvm::SmallPtrSetImpl< PtrType >::erase(), eraseInstruction(), F(), find_if(), llvm::BranchInst::getCondition(), llvm::BasicBlock::getContext(), llvm::LoopBase< BlockT, LoopT >::getHeader(), llvm::LoopBase< BlockT, LoopT >::getLoopPreheader(), llvm::MemorySSAUpdater::getMemorySSA(), llvm::Value::getName(), llvm::DominatorTreeBase< NodeT, IsPostDom >::getNode(), llvm::Instruction::getParent(), llvm::BasicBlock::getParent(), llvm::LoopBase< BlockT, LoopT >::getParentLoop(), llvm::BasicBlock::getSingleSuccessor(), llvm::BranchInst::getSuccessor(), llvm::BasicBlock::getTerminator(), llvm::Loop::hasLoopInvariantOperands(), I, llvm::SmallPtrSetImpl< PtrType >::insert(), inSubLoop(), llvm::BranchInst::isConditional(), isInstructionTriviallyDead(), isNotUsedOrFreeInLoop(), LLVM_DEBUG, llvm::Instruction::mayHaveSideEffects(), llvm::BasicBlock::moveBefore(), pred_size(), predecessors(), ReplaceInstWithInst(), reverse(), salvageDebugInfo(), set_intersect(), sink(), llvm::SmallPtrSetImplBase::size(), succ_begin(), succ_end(), VerifyMemorySSA, llvm::MemorySSA::verifyMemorySSA(), and llvm::MemorySSAUpdater::wireOldPredecessorsToNewImmediatePredecessor().
Referenced by createLICMPass().
| auto llvm::size | ( | R && | Range, |
| typename std::enable_if< std::is_same< typename std::iterator_traits< decltype(Range.begin())>::iterator_category, std::random_access_iterator_tag >::value, void >::type * | = nullptr |
||
| ) | -> decltype(std::distance(Range.begin(), Range.end())) |
Get the size of a range.
This is a wrapper function around std::distance which is only enabled when the operation is O(1).
Definition at line 1163 of file STLExtras.h.
Referenced by llvm::User::allocHungoffUses(), llvm::BitVector::any(), llvm::BitVector::anyCommon(), llvm::BitcodeReaderValueList::assignValue(), llvm::MutableArrayRef< BitWord >::back(), BBHasFallthrough(), llvm::rdf::DataFlowGraph::DefStack::bottom(), llvm::BTFDebug::BTFDebug(), llvm::pdb::HashTable< llvm::support::detail::packed_endian_specific_integral >::calculateSerializedLength(), CC_Sparc64_Full(), llvm::codeview::DebugStringTableSubsection::classof(), llvm::iplist_impl< simple_ilist< MachineInstr, Options... >, ilist_traits< MachineInstr > >::clearAndLeakNodesUnsafely(), llvm::BitVector::clearBitsNotInMask(), llvm::pdb::HashTable< llvm::support::detail::packed_endian_specific_integral >::commit(), llvm::HexagonEvaluator::composeWithSubRegIndex(), llvm::ValueEnumerator::computeBitsRequiredForTypeIndicies(), llvm::LegalizerInfo::computeTables(), llvm::ListInit::convertInitializerTo(), llvm::ListInit::convertInitListSlice(), convertUTF8Sequence(), llvm::BitVector::count(), createPrivateNonConstGlobalForString(), llvm::AArch64_AM::decodeLogicalImmediate(), DecodeVLD1DupInstruction(), DecodeVLD1LN(), DecodeVLD2DupInstruction(), DecodeVLD2LN(), DecodeVLD3LN(), DecodeVLD4DupInstruction(), DecodeVLD4LN(), DecodeVLDST2Instruction(), DecodeVLDST3Instruction(), DecodeVLDST4Instruction(), DecodeVSHLMaxInstruction(), DecodeVST1LN(), DecodeVST2LN(), DecodeVST3LN(), DecodeVST4LN(), llvm::LegalizerInfo::decreaseToSmallerTypesAndIncreaseToSmallest(), llvm::ArrayRef< llvm::irsymtab::storage::Comdat >::drop_back(), llvm::MutableArrayRef< BitWord >::drop_back(), llvm::ArrayRef< llvm::irsymtab::storage::Comdat >::drop_front(), llvm::BinarySubstreamRef::drop_front(), llvm::MutableArrayRef< BitWord >::drop_front(), PODSmallVector< Node *, 8 >::dropBack(), dumpStringOffsetsSection(), emitFDESymbol(), EmitPersonality(), llvm::msgpack::MapDocNode::empty(), llvm::pdb::HashTable< llvm::support::detail::packed_endian_specific_integral >::empty(), llvm::BinarySubstreamRef::empty(), llvm::msgpack::ArrayDocNode::empty(), llvm::FixedStreamArray< PSHashRecord >::empty(), llvm::FixedStreamArray< PSHashRecord >::end(), llvm::MutableArrayRef< BitWord >::end(), enlarge(), llvm::DataExtractor::eof(), llvm::SparseSet< unsigned, llvm::VirtReg2IndexFunctor >::erase(), llvm::LiveRange::find(), llvm::SparseSet< unsigned, llvm::VirtReg2IndexFunctor >::findIndex(), FindInsertedValue(), llvm::DWARFUnitVector::finishedInfoUnits(), llvm::BitVector::flip(), FunctionNumber(), llvm::RegBankSelect::getAnalysisUsage(), llvm::BitcodeReaderValueList::getConstantFwdRef(), getConstantPart(), getDataAlignmentFactor(), llvm::MCLOHDirective::getEmitSize(), llvm::object::MinidumpFile::getMemoryInfoList(), llvm::DWARFUnitVector::getNumInfoUnits(), llvm::DWARFUnitVector::getNumTypesUnits(), llvm::DWARFUnitVector::getNumUnits(), llvm::cl::generic_parser_base::getOptionWidth(), getOrInsertGlobal(), llvm::cl::list< DataType, StorageClass, ParserClass >::getPosition(), llvm::cl::bits< DataType, Storage, ParserClass >::getPosition(), llvm::NVPTXTargetLowering::getPrototype(), getScalarIntrinsicDeclaration(), llvm::DataExtractor::getUnsigned(), llvm::BitcodeReaderValueList::getValueFwdRef(), llvm::slpvectorizer::BoUpSLP::VLOperands::getVL(), llvm::SmallVectorBase::grow_pod(), INITIALIZE_PASS(), llvm::TrigramIndex::insert(), llvm::SparseSet< unsigned, llvm::VirtReg2IndexFunctor >::insert(), is_splat(), isDebug(), llvm::slpvectorizer::BoUpSLP::isDeleted(), llvm::DWARFFormValue::isFormClass(), isOpcodeHandled(), llvm::AArch64_AM::isValidDecodeLogicalImmediate(), llvm::DataExtractor::isValidOffset(), LLVMCountBasicBlocks(), loadTestingFormat(), LowerCMP_SWAP(), llvm::HexagonTargetLowering::LowerCONCAT_VECTORS(), llvm::AMDGPUCallLowering::lowerFormalArguments(), makeCombineInst(), llvm::GlobPattern::match(), okayForPHIOfOps(), llvm::BitVector::operator &=(), llvm::MachO::ArchitectureSet::operator std::string(), llvm::BitVector::operator==(), llvm::msgpack::ArrayDocNode::operator[](), llvm::FixedStreamArray< PSHashRecord >::operator[](), llvm::MutableArrayRef< BitWord >::operator[](), PODSmallVector< Node *, 8 >::operator[](), llvm::BitVector::operator^=(), llvm::BitVector::operator|=(), llvm::OProfileWrapper::OProfileWrapper(), llvm::IntervalMap< SlotIndex, unsigned >::overlaps(), llvm::R600SchedStrategy::pickNode(), llvm::NodeSet::print(), llvm::AArch64InstPrinter::printGPRSeqPairsClassOperand(), PrintStatistics(), llvm::PackedVector< T, BitNum, BitVectorTy >::push_back(), PODSmallVector< Node *, 8 >::push_back(), llvm::GVNHoist::rank(), readImmediate(), ReadSignature(), llvm::LazyCallGraph::RefSCC::removeInternalRefEdge(), llvm::HexagonMCChecker::reportBranchErrors(), llvm::BitVector::reset(), llvm::ListInit::resolveReferences(), llvm::MachinePipeliner::runOnMachineFunction(), llvm::AMDGPUAsmPrinter::runOnMachineFunction(), llvm::SplitEditor::selectIntv(), llvm::BitVector::set(), llvm::LegalizerInfo::setAction(), llvm::X86MachineFunctionInfo::setArgumentStackSize(), llvm::ARMFunctionInfo::setArgumentStackSize(), llvm::LegalizerInfo::setLegalizeScalarToDifferentSizeStrategy(), llvm::LegalizerInfo::setLegalizeVectorElementToDifferentSizeStrategy(), llvm::PPCFunctionInfo::setMinReservedArea(), llvm::PPCFunctionInfo::setTailCallSPDelta(), llvm::InlineAsmIdentifierInfo::setVar(), llvm::SmallDenseMap< unsigned, unsigned, N >::shrink_and_clear(), llvm::DWARFFormValue::skipValue(), llvm::ArrayRef< llvm::irsymtab::storage::Comdat >::slice(), llvm::MutableArrayRef< BitWord >::slice(), llvm::ArrayRef< llvm::irsymtab::storage::Comdat >::take_back(), llvm::MutableArrayRef< BitWord >::take_back(), llvm::ArrayRef< llvm::irsymtab::storage::Comdat >::take_front(), llvm::MutableArrayRef< BitWord >::take_front(), llvm::BitVector::test(), llvm::BitTracker::trace(), llvm::LoopVectorizeHints::vectorizeAnalysisPassName(), llvm::Interpreter::visitAShr(), VisitGlobalVariableForEmission(), and write32AArch64Ldr().
|
inline |
SkipBitcodeWrapperHeader - Some systems wrap bc files with a special header for padding or other reasons.
The format of this header is:
struct bc_header { uint32_t Magic; // 0x0B17C0DE uint32_t Version; // Version, currently always 0. uint32_t BitcodeOffset; // Offset to traditional bitcode file. uint32_t BitcodeSize; // Size of traditional bitcode file. ... potentially other gunk ... };
This function is called when we find a file with a matching magic number. In this case, skip down to the subsection of the file that is actually a BC file. If 'VerifyBufferSize' is true, check that the buffer is large enough to contain the whole bitcode file.
Definition at line 239 of file BitcodeReader.h.
References BitcodeErrorCategory(), BWH_OffsetField, BWH_SizeField, error_category, llvm::support::endian::read32le(), and Size.
Referenced by analyzeHeader(), and initStream().
|
inline |
Decrement It until it points to a non-debug instruction or to Begin and return the resulting iterator.
This function should only be used MachineBasicBlock::{iterator, const_iterator, instr_iterator, const_instr_iterator} and the respective reverse iterators.
Definition at line 958 of file MachineBasicBlock.h.
Referenced by findHoistingInsertPosAndDeps(), findPotentialBlockers(), llvm::MachineBasicBlock::findPrevDebugLoc(), llvm::X86FrameLowering::mergeSPUpdates(), llvm::RegPressureTracker::recedeSkipDebugValues(), and updateKillStatus().
|
inline |
Increment It until it points to a non-debug instruction or to End and return the resulting iterator.
This function should only be used MachineBasicBlock::{iterator, const_iterator, instr_iterator, const_instr_iterator} and the respective reverse iterators.
Definition at line 947 of file MachineBasicBlock.h.
Referenced by llvm::RegPressureTracker::advance(), llvm::GCNDownwardRPTracker::advanceBeforeNext(), createPHIsForCMOVsInSinkBB(), llvm::X86FrameLowering::eliminateCallFramePseudoInstr(), llvm::MachineBasicBlock::findDebugLoc(), llvm::RegPressureTracker::getCurrSlot(), llvm::MachineBasicBlock::getFirstNonDebugInstr(), llvm::SlotIndexes::getInstructionIndex(), getNextBlock(), getVariantKind(), llvm::X86FrameLowering::mergeSPUpdates(), optimizeVcndVcmpPair(), ProfitableToMerge(), llvm::GCNDownwardRPTracker::reset(), llvm::GCNScheduleDAGMILive::schedule(), and verifySameBranchInstructions().
| BasicBlock::iterator llvm::skipDebugIntrinsics | ( | BasicBlock::iterator | It | ) |
Advance It while it points to a debug instruction and return the result.
This assumes that It is not at the end of a block.
Definition at line 492 of file BasicBlock.cpp.
Referenced by llvm::BasicBlock::getLandingPadInst(), and llvm::objcarc::BottomUpPtrState::HandlePotentialUse().
|
static |
Definition at line 330 of file APFloat.cpp.
References llvm::sys::path::begin(), createError(), and llvm::sys::path::end().
Referenced by llvm::detail::IEEEFloat::convertFromZeroExtendedInteger(), and interpretDecimal().
|
inline |
Definition at line 1114 of file STLExtras.h.
Referenced by llvm::TargetLibraryInfoImpl::addVectorizableFunctions(), adjustCostForPairing(), AreSequentialAccesses(), AreStatisticsEnabled(), llvm::SwitchCG::SwitchLowering::buildBitTests(), buildClonedLoops(), collectContributionData(), combineWeightsBySorting(), llvm::codeview::DebugFrameDataSubsection::commit(), llvm::codeview::DebugCrossModuleImportsSubsection::commit(), compareVectors(), llvm::ProfileSummaryBuilder::computeDetailedSummary(), llvm::rdf::Liveness::computeLiveIns(), computeLiveOuts(), llvm::MachObjectWriter::computeSymbolTable(), llvm::LegalizerInfo::computeTables(), computeWeight(), llvm::MIRPrinter::convertCallSiteObjects(), llvm::symbolize::SymbolizableObjectFile::create(), llvm::InstrProfSymtab::create(), llvm::AbstractDependenceGraphBuilder< DataDependenceGraph >::createPiBlocks(), createStoreClusterDAGMutation(), llvm::GVNExpression::Expression::dump(), llvm::sampleprof::ProfileSymbolList::dump(), dumpRelocs(), llvm::DwarfStringPool::emit(), llvm::EHStreamer::emitExceptionTable(), enableCallSafepoints(), llvm::rdf::DeadCodeElimination::erase(), llvm::gsym::GsymCreator::finalize(), llvm::pdb::GSIHashStreamBuilder::finalizeBuckets(), llvm::ScalarEvolution::findArrayDimensions(), findIrreducibleHeaders(), findPartitions(), FixedPointIntrinsicToOpcode(), llvm::StackSafetyInfo::FunctionInfo::FunctionInfo(), llvm::DWARFDebugAranges::generate(), llvm::AttributeSetNode::get(), llvm::RecordRecTy::get(), GetAEABIUnwindPersonalityName(), getDwarfRegNum(), GetEHSpillList(), llvm::NonRelocatableStringpool::getEntriesForEmission(), getFilename(), llvm::DbgVariable::getFrameIndexExprs(), llvm::DWARFUnitIndex::getFromOffset(), getLiveRegMap(), llvm::CacheCost::getLoopCosts(), getMaxBackedgeTakenCount(), getMetadataTypeOrder(), getMopState(), llvm::rdf::DataFlowGraph::getNextShadow(), llvm::MemoryDependenceResults::getNonLocalCallDependency(), getSetupCost(), GetSpillList(), getStartOrEndSlot(), getTypePartition(), llvm::coverage::CoverageMapping::getUniqueSourceFiles(), hasSameExtUse(), llvm::mca::initializeUsedResources(), llvm::sroa::AllocaSlices::insert(), InsertLDR_STR(), llvm::SlotIndexes::insertMBBInMaps(), llvm::jitlink::MachOLinkGraphBuilder::isAltEntry(), isCopyOfAPHI(), isDebug(), isDefInSubRange(), llvm::ARMBaseInstrInfo::isLoadFromStackSlotPostFE(), IsSafeAndProfitableToMove(), isSupportedGuardInstruction(), llvm::SMSchedule::isValidSchedule(), isVectorPromotionViable(), llvm::cfg::LegalizeUpdates(), llvm::coverage::CoverageMapping::load(), llvm::object::ResourceSectionRef::load(), lookupCandidateBaseReg(), mayUsePostIncMode(), llvm::iplist_impl< simple_ilist< MachineInstr, Options... >, ilist_traits< MachineInstr > >::merge(), llvm::yaml::MappingTraits< T >::NormalizedTBD_V4::NormalizedTBD_V4(), llvm::jitlink::EHFrameSplitter::operator()(), llvm::orc::BlockFreqQuery::operator()(), false::IntervalSorter::operator()(), llvm::DWARFDebugLine::LineTable::parse(), patchAndReplaceAllUsesWith(), populateAliasMap(), populateExternalRelations(), predictValueUseListOrderImpl(), llvm::PhysicalRegisterUsageInfo::print(), llvm::CallGraph::print(), llvm::DebugCounter::print(), llvm::FileInfo::print(), llvm::ScopedPrinter::printFlags(), promoteSingleBlockAlloca(), llvm::ScheduleDAGInstrs::reduceHugeMemNodeMaps(), ReduceSwitchRange(), relocationViaAlloca(), llvm::MemoryDependenceResults::removeInstruction(), llvm::SelectionDAG::ReplaceAllUsesOfValuesWith(), llvm::ReplaceableMetadataImpl::replaceAllUsesWith(), llvm::SCEVExpander::replaceCongruentIVs(), replaceConstantExprOp(), rescheduleLexographically(), llvm::ReplaceableMetadataImpl::resolveAllUses(), llvm::BitcodeReaderValueList::resolveConstantForwardRefs(), llvm::ARMFrameLowering::ResolveFrameIndexReference(), resolveFwdRef(), llvm::ThinLTOCodeGenerator::run(), llvm::ReachingDefAnalysis::runOnMachineFunction(), llvm::SlotIndexes::runOnMachineFunction(), selectI64Imm(), shouldAlwaysEmitCompleteClassType(), ShrinkLoadReplaceStoreWithStore(), sinkInstruction(), AllocaSlices::SliceBuilder::SliceBuilder(), llvm::SMDiagnostic::SMDiagnostic(), sort(), llvm::SwitchCG::sortAndRangeify(), llvm::orc::SymbolLookupSet::sortByAddress(), llvm::orc::SymbolLookupSet::sortByName(), llvm::json::sortedElements(), llvm::codeview::DebugStringTableSubsection::sortedIds(), sortGlobalExprs(), SortNonLocalDepInfoCache(), llvm::GCNIterativeScheduler::sortRegionsByPressure(), llvm::MachineBasicBlock::sortUniqueLiveIns(), llvm::DebugLocEntry::sortUniqueValues(), llvm::jitlink::LinkGraph::splitBlock(), false::Chain::str(), llvm::mca::RegisterFile::tryEliminateMove(), llvm::HexagonBlockRanges::RangeList::unionize(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::VerifyDFSNumbers(), llvm::TimeTraceProfiler::Write(), llvm::sampleprof::ProfileSymbolList::write(), llvm::vfs::YAMLVFSWriter::write(), llvm::InstrProfWriter::writeText(), writeTypeIdCompatibleVtableSummaryRecord(), and llvm::TimerGroup::~TimerGroup().
|
inline |
Definition at line 1121 of file STLExtras.h.
References adl_begin(), adl_end(), C, and sort().
|
inline |
Definition at line 1126 of file STLExtras.h.
|
inline |
Definition at line 1134 of file STLExtras.h.
References adl_begin(), adl_end(), C, and sort().
| bool llvm::sortPtrAccesses | ( | ArrayRef< Value *> | VL, |
| const DataLayout & | DL, | ||
| ScalarEvolution & | SE, | ||
| SmallVectorImpl< unsigned > & | SortedIndices | ||
| ) |
Attempt to sort the pointers in VL and return the sorted indices in SortedIndices, if reordering is required.
Returns 'true' if sorting is legal, otherwise returns 'false'.
For example, for a given VL of memory accesses in program order, a[i+4], a[i+0], a[i+1] and a[i+7], this function will sort the VL and save the sorted indices in SortedIndices as a[i+0], a[i+1], a[i+4], a[i+7] and saves the mask for actual memory accesses in program order in SortedIndices as <1,2,0,3>
Definition at line 1101 of file LoopAccessAnalysis.cpp.
References all_of(), assert(), llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::SmallVectorImpl< T >::clear(), dyn_cast(), llvm::SmallVectorImpl< T >::emplace_back(), llvm::SmallVectorTemplateCommon< T, typename >::end(), llvm::ScalarEvolution::getMinusSCEV(), llvm::Type::getPointerAddressSpace(), llvm::ScalarEvolution::getSCEV(), llvm::Value::getType(), GetUnderlyingObject(), I, llvm::SmallSet< T, N, C >::insert(), llvm::Type::isPointerTy(), Left, llvm::SmallVectorImpl< T >::reserve(), llvm::SmallVectorImpl< T >::resize(), Right, llvm::ArrayRef< T >::size(), and stable_sort().
Referenced by llvm::slpvectorizer::BoUpSLP::eraseInstructions(), and llvm::LoopAccessInfo::getPSE().
|
inlinestatic |
Definition at line 95 of file Sparc.h.
References llvm::SPCC::CPCC_0, llvm::SPCC::CPCC_01, llvm::SPCC::CPCC_012, llvm::SPCC::CPCC_013, llvm::SPCC::CPCC_02, llvm::SPCC::CPCC_023, llvm::SPCC::CPCC_03, llvm::SPCC::CPCC_1, llvm::SPCC::CPCC_12, llvm::SPCC::CPCC_123, llvm::SPCC::CPCC_13, llvm::SPCC::CPCC_2, llvm::SPCC::CPCC_23, llvm::SPCC::CPCC_3, llvm::SPCC::CPCC_A, llvm::SPCC::CPCC_N, llvm::SPCC::FCC_A, llvm::SPCC::FCC_E, llvm::SPCC::FCC_G, llvm::SPCC::FCC_GE, llvm::SPCC::FCC_L, llvm::SPCC::FCC_LE, llvm::SPCC::FCC_LG, llvm::SPCC::FCC_N, llvm::SPCC::FCC_NE, llvm::SPCC::FCC_O, llvm::SPCC::FCC_U, llvm::SPCC::FCC_UE, llvm::SPCC::FCC_UG, llvm::SPCC::FCC_UGE, llvm::SPCC::FCC_UL, llvm::SPCC::FCC_ULE, llvm::SPCC::ICC_A, llvm::SPCC::ICC_CC, llvm::SPCC::ICC_CS, llvm::SPCC::ICC_E, llvm::SPCC::ICC_G, llvm::SPCC::ICC_GE, llvm::SPCC::ICC_GU, llvm::SPCC::ICC_L, llvm::SPCC::ICC_LE, llvm::SPCC::ICC_LEU, llvm::SPCC::ICC_N, llvm::SPCC::ICC_NE, llvm::SPCC::ICC_NEG, llvm::SPCC::ICC_POS, llvm::SPCC::ICC_VC, llvm::SPCC::ICC_VS, and llvm_unreachable.
Referenced by llvm::SparcInstPrinter::printCCOperand().
| unsigned llvm::SplitAllCriticalEdges | ( | Function & | F, |
| const CriticalEdgeSplittingOptions & | Options = CriticalEdgeSplittingOptions() |
||
| ) |
Loop over all of the edges in the CFG, breaking critical edges as they are found.
Returns the number of broken edges.
Definition at line 503 of file BasicBlockUtils.cpp.
References llvm::numbers::e, llvm::Instruction::getNumSuccessors(), and SplitCriticalEdge().
Referenced by allPhiOperandsUndefined(), IsInterestingCmp(), llvm::BreakCriticalEdgesPass::run(), and SplitCriticalEdge().
| BasicBlock * llvm::SplitBlock | ( | BasicBlock * | Old, |
| Instruction * | SplitPt, | ||
| DominatorTree * | DT = nullptr, |
||
| LoopInfo * | LI = nullptr, |
||
| MemorySSAUpdater * | MSSAU = nullptr, |
||
| const Twine & | BBName = "" |
||
| ) |
Split the specified block at the specified instruction - everything before SplitPt stays in Old and everything starting with SplitPt moves to a new block.
The two blocks are joined by an unconditional branch and the loop info is updated.
Definition at line 517 of file BasicBlockUtils.cpp.
References llvm::DominatorTreeBase< NodeT, IsPostDom >::addNewBlock(), llvm::BasicBlock::begin(), llvm::DominatorTreeBase< NodeT, IsPostDom >::changeImmediateDominator(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::LoopInfoBase< BlockT, LoopT >::getLoopFor(), llvm::Value::getName(), llvm::DominatorTreeBase< NodeT, IsPostDom >::getNode(), I, llvm::MemorySSAUpdater::moveAllAfterSpliceBlocks(), Name, llvm::BasicBlock::splitBasicBlock(), and llvm::Twine::str().
Referenced by assertBranchOrSelectConditionHoisted(), buildClonedLoopBlocks(), createAMDGPUPrintfRuntimeBinding(), llvm::OpenMPIRBuilder::CreateCancel(), createUnreachableSwitchDefault(), llvm::InnerLoopVectorizer::createVectorizedLoopSkeleton(), llvm::InnerLoopVectorizer::emitMemRuntimeChecks(), llvm::InnerLoopVectorizer::emitMinimumIterationCountCheck(), llvm::InnerLoopVectorizer::emitSCEVChecks(), llvm::CodeExtractor::findInputsOutputs(), getInnermostLoopFor(), getSignature(), isProfitableForVectorization(), optimizeSQRT(), peelLoop(), splitCallSite(), SplitCriticalEdge(), SplitEdge(), TypeSizeToSizeIndex(), UnrollRuntimeLoopRemainder(), unswitchTrivialBranch(), unswitchTrivialSwitch(), and llvm::LoopVersioning::versionLoop().
| Instruction * llvm::SplitBlockAndInsertIfThen | ( | Value * | Cond, |
| Instruction * | SplitBefore, | ||
| bool | Unreachable, | ||
| MDNode * | BranchWeights = nullptr, |
||
| DominatorTree * | DT = nullptr, |
||
| LoopInfo * | LI = nullptr, |
||
| BasicBlock * | ThenBlock = nullptr |
||
| ) |
Split the containing block at the specified instruction - everything before SplitBefore stays in the old basic block, and the rest of the instructions in the BB are moved to a new block.
The two blocks are connected by a conditional branch (with value of Cmp being the condition). Before: Head SplitBefore Tail After: Head if (Cond) ThenBlock SplitBefore Tail
If ThenBlock is not specified, a new block will be created for it. If Unreachable is true, the newly created block will end with UnreachableInst, otherwise it branches to Tail. Returns the NewBasicBlock's terminator.
Updates DT and LI if given.
Definition at line 925 of file BasicBlockUtils.cpp.
Referenced by createAMDGPUPrintfRuntimeBinding(), INITIALIZE_PASS(), instrumentMaskedLoadOrStore(), isKnownTypeIdMember(), makeGuardControlFlowExplicit(), mergeConditionalStoreToAddress(), SplitCriticalEdge(), turnGuardIntoBranch(), and TypeSizeToSizeIndex().
| void llvm::SplitBlockAndInsertIfThenElse | ( | Value * | Cond, |
| Instruction * | SplitBefore, | ||
| Instruction ** | ThenTerm, | ||
| Instruction ** | ElseTerm, | ||
| MDNode * | BranchWeights = nullptr |
||
| ) |
SplitBlockAndInsertIfThenElse is similar to SplitBlockAndInsertIfThen, but also creates the ElseBlock.
Before: Head SplitBefore Tail After: Head if (Cond) ThenBlock else ElseBlock SplitBefore Tail
Definition at line 977 of file BasicBlockUtils.cpp.
Referenced by llvm::OpenMPIRBuilder::CreateCancel(), createMemMoveLoop(), and llvm::OpenMPIRBuilder::CreateParallel().
| BasicBlock * llvm::SplitBlockPredecessors | ( | BasicBlock * | BB, |
| ArrayRef< BasicBlock *> | Preds, | ||
| const char * | Suffix, | ||
| DominatorTree * | DT = nullptr, |
||
| LoopInfo * | LI = nullptr, |
||
| MemorySSAUpdater * | MSSAU = nullptr, |
||
| bool | PreserveLCSSA = false |
||
| ) |
This method introduces at least one new basic block into the function and moves some of the predecessors of BB to be predecessors of the new block.
The new predecessors are indicated by the Preds array. The new block is given a suffix of 'Suffix'. Returns new basic block to which predecessors from Preds are now pointing.
If BB is a landingpad block then additional basicblock might be introduced. It will have Suffix+".split_lp". See SplitLandingPadPredecessors for more details on this case.
This currently updates the LLVM IR, DominatorTree, LoopInfo, and LCCSA but no other analyses. In particular, it does not preserve LoopSimplify (because it's complicated to handle the case where one of the edges being split is an exit of a loop with other exits).
Definition at line 709 of file BasicBlockUtils.cpp.
References assert(), llvm::BasicBlock::begin(), llvm::BasicBlock::canSplitPredecessors(), llvm::BasicBlock::Create(), llvm::BranchInst::Create(), llvm::numbers::e, llvm::ArrayRef< T >::empty(), llvm::UndefValue::get(), llvm::BasicBlock::getContext(), llvm::Instruction::getDebugLoc(), llvm::BasicBlock::getFirstNonPHIOrDbg(), llvm::LoopInfoBase< BlockT, LoopT >::getLoopFor(), llvm::Value::getName(), llvm::BasicBlock::getParent(), llvm::Loop::getStartLoc(), I, llvm::BasicBlock::isLandingPad(), llvm::LoopInfoBase< BlockT, LoopT >::isLoopHeader(), llvm::ArrayRef< T >::size(), SplitLandingPadPredecessors(), UpdateAnalysisInformation(), and UpdatePHINodes().
Referenced by ConnectEpilog(), ConnectProlog(), createUnreachableSwitchDefault(), llvm::GVNExpression::Expression::dump(), FitWeights(), formDedicatedExitBlocks(), InsertPreheaderForLoop(), mergeConditionalStoreToAddress(), normalizeForInvokeSafepoint(), llvm::Attributor::run(), separateNestedLoop(), SplitCriticalEdge(), splitPredecessorsOfLoopExit(), llvm::JumpThreadingPass::ThreadEdge(), and UnrollRuntimeLoopRemainder().
| std::unique_ptr< Module > llvm::splitCodeGen | ( | std::unique_ptr< Module > | M, |
| ArrayRef< raw_pwrite_stream *> | OSs, | ||
| ArrayRef< llvm::raw_pwrite_stream *> | BCOSs, | ||
| const std::function< std::unique_ptr< TargetMachine >()> & | TMFactory, | ||
| CodeGenFileType | FileType = CGFT_ObjectFile, |
||
| bool | PreserveLocals = false |
||
| ) |
Split M into OSs.size() partitions, and generate code for each.
Takes a factory function for the TargetMachine TMFactory. Writes OSs.size() output files to the output streams in OSs. The resulting output files if linked together are intended to be equivalent to the single output file that would have been code generated from M.
Writes bitcode for individual partitions into output streams in BCOSs, if BCOSs is not empty.
Definition at line 37 of file ParallelCG.cpp.
References assert(), llvm::SmallVectorTemplateCommon< T >::begin(), codegen(), llvm::SmallVectorTemplateCommon< T >::data(), llvm::ArrayRef< T >::empty(), llvm::Expected< T >::get(), parseBitcodeFile(), report_fatal_error(), llvm::SmallVectorBase::size(), llvm::ArrayRef< T >::size(), SplitModule(), and WriteBitcodeToFile().
Referenced by llvm::lto::backend(), and llvm::LTOCodeGenerator::compileOptimized().
| BasicBlock * llvm::SplitCriticalEdge | ( | Instruction * | TI, |
| unsigned | SuccNum, | ||
| const CriticalEdgeSplittingOptions & | Options = CriticalEdgeSplittingOptions() |
||
| ) |
If this edge is a critical edge, insert a new node to split the critical edge.
This will update the analyses passed in through the option struct. This returns the new block if the edge was split, null otherwise.
If MergeIdenticalEdges in the options struct is true (not the default), all edges from TI to the specified successor will be merged into the same critical edge block. This is most commonly interesting with switch instructions, which may have many edges to any one destination. This ensures that all edges to that dest go to one block instead of each going to a different block, but isn't the standard definition of a "critical edge".
It is invalid to call this function on a critical edge that starts at an IndirectBrInst. Splitting these edges will almost always create an invalid program because the address of the new block won't be the one that is jumped to.
Definition at line 138 of file BreakCriticalEdges.cpp.
References assert(), llvm::BasicBlock::begin(), llvm::SmallVectorImpl< T >::clear(), llvm::BasicBlock::Create(), llvm::BranchInst::Create(), createPHIsForSplitLoopExit(), llvm::DominatorTreeBase< BasicBlock, false >::Delete, llvm::CriticalEdgeSplittingOptions::DT, llvm::numbers::e, E, llvm::SmallVectorBase::empty(), find(), llvm::PHINode::getBasicBlockIndex(), llvm::Function::getBasicBlockList(), llvm::Value::getContext(), llvm::Instruction::getDebugLoc(), llvm::BasicBlock::getFirstNonPHIOrDbgOrLifetime(), llvm::PHINode::getIncomingBlock(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::Value::getName(), llvm::Instruction::getNumSuccessors(), llvm::Instruction::getParent(), llvm::BasicBlock::getParent(), llvm::Instruction::getSuccessor(), I, llvm::CriticalEdgeSplittingOptions::IgnoreUnreachableDests, llvm::iplist_impl< IntrusiveListT, TraitsT >::insert(), llvm::DominatorTreeBase< BasicBlock, false >::Insert, isCriticalEdge(), llvm::BasicBlock::isEHPad(), llvm::CriticalEdgeSplittingOptions::KeepOneInputPHIs, llvm::CriticalEdgeSplittingOptions::LI, llvm::CriticalEdgeSplittingOptions::MergeIdenticalEdges, llvm::CriticalEdgeSplittingOptions::MSSAU, P, llvm::CriticalEdgeSplittingOptions::PDT, pred_begin(), pred_end(), llvm::CriticalEdgeSplittingOptions::PreserveLCSSA, llvm::SmallVectorTemplateBase< T >::push_back(), llvm::BasicBlock::removePredecessor(), llvm::PHINode::setIncomingBlock(), llvm::Instruction::setSuccessor(), SplitBlockPredecessors(), succ_end(), successors(), and llvm::MemorySSAUpdater::wireOldPredecessorsToNewImmediatePredecessor().
Referenced by canRenameComdat(), CloneLoop(), DemoteRegToStack(), llvm::MachineBasicBlock::isEHScopeReturnBlock(), isOnlyReachableViaThisEdge(), mayUsePostIncMode(), llvm::CriticalEdgeSplittingOptions::setIgnoreUnreachableDests(), shouldRotateLoopExitingLatch(), speculatePHIs(), SplitAllCriticalEdges(), SplitCriticalEdge(), SplitCriticalSideEffectEdges(), and SplitEdge().
|
inline |
Definition at line 179 of file BasicBlockUtils.h.
References llvm::SuccIterator< InstructionT, BlockT >::getSuccessorIndex(), llvm::BasicBlock::getTerminator(), and SplitCriticalEdge().
|
inline |
If the edge from *PI to BB is not critical, return false.
Otherwise, split all edges between the two blocks and return true. This updates all of the same analyses as the other SplitCriticalEdge function. If P is specified, it updates the analyses described above.
Definition at line 190 of file BasicBlockUtils.h.
References llvm::numbers::e, llvm::Instruction::getNumSuccessors(), llvm::Instruction::getSuccessor(), and SplitCriticalEdge().
|
inline |
If an edge from Src to Dst is critical, split the edge and return true, otherwise return false.
This method requires that there be an edge between the two blocks. It updates the analyses passed in the options struct
Definition at line 205 of file BasicBlockUtils.h.
References assert(), llvm::CriticalEdgeSplittingOptions::CriticalEdgeSplittingOptions(), llvm::CriticalEdgeSplittingOptions::DT, F(), FoldReturnIntoUncondBranch(), From, llvm::Instruction::getNumSuccessors(), llvm::Instruction::getSuccessor(), llvm::BasicBlock::getTerminator(), llvm::CriticalEdgeSplittingOptions::LI, llvm::CriticalEdgeSplittingOptions::MSSAU, llvm::CriticalEdgeSplittingOptions::PreserveLCSSA, SplitAllCriticalEdges(), SplitBlock(), SplitBlockAndInsertIfThen(), SplitBlockPredecessors(), SplitCriticalEdge(), SplitEdge(), and SplitLandingPadPredecessors().
| BasicBlock * llvm::SplitEdge | ( | BasicBlock * | From, |
| BasicBlock * | To, | ||
| DominatorTree * | DT = nullptr, |
||
| LoopInfo * | LI = nullptr, |
||
| MemorySSAUpdater * | MSSAU = nullptr |
||
| ) |
Split the edge connecting specified block.
Definition at line 474 of file BasicBlockUtils.cpp.
References assert(), llvm::BasicBlock::front(), llvm::Instruction::getNumSuccessors(), llvm::BasicBlock::getSinglePredecessor(), llvm::Instruction::getSuccessor(), GetSuccessorNumber(), llvm::BasicBlock::getTerminator(), SplitBlock(), and SplitCriticalEdge().
Referenced by createRetBitCast(), llvm::JumpThreadingPass::DuplicateCondBranchOnPHIIntoPred(), DuplicateInstructionsInSplitBetween(), ehAwareSplitEdge(), enableCallSafepoints(), getRetComponentType(), hasSameExtUse(), INITIALIZE_PASS(), insertSpills(), peelLoop(), replaceConstantExprOp(), ReplaceUsesOfWith(), SplitCriticalEdge(), UnrollRuntimeLoopRemainder(), unswitchNontrivialInvariants(), unswitchTrivialBranch(), and unswitchTrivialSwitch().
| bool llvm::SplitIndirectBrCriticalEdges | ( | Function & | F, |
| BranchProbabilityInfo * | BPI = nullptr, |
||
| BlockFrequencyInfo * | BFI = nullptr |
||
| ) |
Definition at line 357 of file BreakCriticalEdges.cpp.
References llvm::AMDGPUISD::BFI, CloneBasicBlock(), dyn_cast(), E, llvm::SmallVectorBase::empty(), llvm::SetVector< T, SmallVector< T, N >, SmallDenseSet< T, N > >::empty(), llvm::BranchProbabilityInfo::eraseBlock(), findIBRPredecessor(), llvm::BranchProbabilityInfo::getEdgeProbability(), llvm::BlockFrequency::getFrequency(), llvm::Instruction::getNumSuccessors(), llvm::BasicBlock::getTerminator(), I, llvm::SetVector< T, SmallVector< T, N >, SmallDenseSet< T, N > >::insert(), llvm::Instruction::isEHPad(), llvm::User::replaceUsesOfWith(), and llvm::BranchProbabilityInfo::setEdgeProbability().
Referenced by annotateAllFunctions(), createCodeGenPreparePass(), and instrumentOneFunc().
| void llvm::SplitLandingPadPredecessors | ( | BasicBlock * | OrigBB, |
| ArrayRef< BasicBlock *> | Preds, | ||
| const char * | Suffix, | ||
| const char * | Suffix2, | ||
| SmallVectorImpl< BasicBlock *> & | NewBBs, | ||
| DominatorTree * | DT = nullptr, |
||
| LoopInfo * | LI = nullptr, |
||
| MemorySSAUpdater * | MSSAU = nullptr, |
||
| bool | PreserveLCSSA = false |
||
| ) |
This method transforms the landing pad, OrigBB, by introducing two new basic blocks into the function.
One of those new basic blocks gets the predecessors listed in Preds. The other basic block gets the remaining predecessors of OrigBB. The landingpad instruction OrigBB is clone into both of the new basic blocks. The new blocks are given the suffixes 'Suffix1' and 'Suffix2', and are returned in the NewBBs vector.
This currently updates the LLVM IR, DominatorTree, LoopInfo, and LCCSA but no other analyses. In particular, it does not preserve LoopSimplify (because it's complicated to handle the case where one of the edges being split is an exit of a loop with other exits).
Definition at line 778 of file BasicBlockUtils.cpp.
References llvm::PHINode::addIncoming(), assert(), llvm::Instruction::clone(), llvm::BasicBlock::Create(), llvm::PHINode::Create(), llvm::BranchInst::Create(), llvm::numbers::e, llvm::SmallVectorBase::empty(), llvm::Instruction::eraseFromParent(), llvm::BasicBlock::getContext(), llvm::Instruction::getDebugLoc(), llvm::BasicBlock::getFirstInsertionPt(), llvm::BasicBlock::getFirstNonPHI(), llvm::BasicBlock::getInstList(), llvm::BasicBlock::getLandingPadInst(), llvm::Value::getName(), llvm::BasicBlock::getParent(), llvm::BasicBlock::getTerminator(), llvm::Value::getType(), llvm::iplist_impl< IntrusiveListT, TraitsT >::insert(), llvm::BasicBlock::isLandingPad(), llvm::Type::isTokenTy(), pred_begin(), pred_end(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::Value::replaceAllUsesWith(), llvm::Instruction::setDebugLoc(), llvm::Value::setName(), llvm::ArrayRef< T >::size(), UpdateAnalysisInformation(), UpdatePHINodes(), and llvm::Value::use_empty().
Referenced by createBlockExtractorPass(), mayUsePostIncMode(), SplitBlockPredecessors(), SplitCriticalEdge(), and llvm::JumpThreadingPass::ThreadEdge().
| void llvm::SplitModule | ( | std::unique_ptr< Module > | M, |
| unsigned | N, | ||
| function_ref< void(std::unique_ptr< Module > MPart)> | ModuleCallback, | ||
| bool | PreserveLocals = false |
||
| ) |
Splits the module M into N linkable partitions.
The function ModuleCallback is called N times passing each individual partition as the MPart argument.
FIXME: This function does not deal with the somewhat subtle symbol visibility issues around module splitting, including (but not limited to):
Definition at line 249 of file SplitModule.cpp.
References CloneModule(), externalize(), F(), findPartitions(), I, isInPartition(), and N.
Referenced by splitCodeGen().
| void llvm::SplitString | ( | StringRef | Source, |
| SmallVectorImpl< StringRef > & | OutFragments, | ||
| StringRef | Delimiters = " \t\n\v\f\r" |
||
| ) |
SplitString - Split up the specified string according to the specified delimiters, appending the result fragments to the output list.
Definition at line 50 of file StringExtras.cpp.
References getToken(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by llvm::ARMTargetLowering::ExpandInlineAsm(), llvm::X86TargetLowering::ExpandInlineAsm(), llvm::sys::Process::FindInEnvPath(), itostr(), llvm::MachO::PackedVersion::parse32(), and llvm::MachO::PackedVersion::parse64().
| void llvm::stable_sort | ( | R && | Range | ) |
Definition at line 1306 of file STLExtras.h.
References adl_begin(), adl_end(), and stable_sort().
Referenced by addData(), AreStatisticsEnabled(), calculateOffsetDiff(), llvm::HexagonShuffler::check(), CHRScopeSorter(), collectMultiplyFactors(), computeAddrMap(), ComputeASanStackFrameLayout(), llvm::safestack::StackLayout::computeLayout(), createAndInstr(), llvm::MDBuilder::createFunctionEntryCount(), createMaskedBitTest(), llvm::GVNExpression::Expression::dump(), llvm::MCDwarfFrameEmitter::Emit(), llvm::ScheduleDAGSDNodes::EmitSchedule(), llvm::AsmPrinter::EmitSpecialLLVMGlobal(), llvm::AccelTableBase::finalize(), llvm::MDGlobalAttachmentMap::getAll(), getLayoutSuccessorProbThreshold(), getNegatibleInsts(), getStartOrEndSlot(), greaterWithBias(), GroupByComplexity(), INITIALIZE_PASS(), isEligibleForMerging(), llvm::coverage::CoverageMapping::load(), llvm::xray::loadTrace(), llvm::MaximumSpanningTree< T >::MaximumSpanningTree(), false::IntervalSorter::operator()(), llvm::slpvectorizer::BoUpSLP::optimizeGatherSequence(), llvm::X86FrameLowering::orderFrameObjects(), PickMostRelevantLoop(), llvm::ValueEnumerator::print(), llvm::BitcodeAnalyzer::printStats(), rebuildLoopAfterUnswitch(), llvm::sampleprof::SampleSorter< LocationT, SampleT >::SampleSorter(), llvm::SwingSchedulerDAG::schedule(), selectJumpTableArmEncoding(), llvm::HexagonShuffler::shuffle(), sinkLoopInvariantInstructions(), llvm::GCOVBlock::sortDstEdges(), llvm::CFGMST< Edge, BBInfo >::sortEdgesByWeight(), sortPtrAccesses(), tryToVectorizeHorReductionOrInstOperands(), llvm::InstCombiner::visitLandingPadInst(), llvm::coverage::CoverageMappingWriter::write(), and llvm::sampleprof::SampleProfileWriter::writeFuncProfiles().
| void llvm::stable_sort | ( | R && | Range, |
| Compare | C | ||
| ) |
Definition at line 1311 of file STLExtras.h.
References adl_begin(), and adl_end().
Referenced by stable_sort().
| llvm::STATISTIC | ( | NumFunctions | , |
| "Total number of functions" | |||
| ) |
Referenced by createPrologEpilogInserterPass(), FindSingleUseIdentifiedObject(), and lowerObjectSizeCall().
| llvm::STATISTIC | ( | NumUnsafeStackFunctions | , |
| "Number of functions with unsafe stack" | |||
| ) |
| llvm::STATISTIC | ( | NumUnsafeStackRestorePointsFunctions | , |
| "Number of functions that use setjmp or exceptions" | |||
| ) |
| llvm::STATISTIC | ( | NumAllocas | , |
| "Total number of allocas" | |||
| ) |
| llvm::STATISTIC | ( | NumUnsafeStaticAllocas | , |
| "Number of unsafe static allocas" | |||
| ) |
| llvm::STATISTIC | ( | NumUnsafeDynamicAllocas | , |
| "Number of unsafe dynamic allocas" | |||
| ) |
| llvm::STATISTIC | ( | NumUnsafeByValArguments | , |
| "Number of unsafe byval arguments" | |||
| ) |
| llvm::STATISTIC | ( | NumUnsafeStackRestorePoints | , |
| "Number of setjmps and landingpads" | |||
| ) |
StoreIntToMemory - Fills the StoreBytes bytes of memory starting from Dst with the integer held in IntVal.
Definition at line 3065 of file APInt.cpp.
References assert(), llvm::APInt::getBitWidth(), llvm::APInt::getRawData(), and llvm::sys::IsLittleEndianHost.
Referenced by llvm::APIntOps::RoundFloatToAPInt(), and llvm::ExecutionEngine::StoreValueToMemory().
| StringRef::size_type llvm::StrInStrNoCase | ( | StringRef | s1, |
| StringRef | s2 | ||
| ) |
StrInStrNoCase - Portable version of strcasestr.
Locates the first occurrence of string 's1' in string 's2', ignoring case. Returns the offset of s2 in s1 or npos if s2 cannot be found.
Definition at line 21 of file StringExtras.cpp.
References llvm::numbers::e, llvm::StringRef::equals_lower(), N, llvm::StringRef::npos, llvm::StringRef::size(), and llvm::StringRef::substr().
Referenced by itostr().
Strip debug info in the module if it exists.
To do this, we remove all calls to the debugger intrinsics and any named metadata for debugging. We also remove debug locations for instructions. Return true if module is modified.
Definition at line 350 of file DebugInfo.cpp.
References llvm::SmallVectorTemplateCommon< T >::back(), C, llvm::detail::DenseSetImpl< ValueT, DenseMap< ValueT, detail::DenseSetEmpty, ValueInfoT, detail::DenseSetPair< ValueT > >, ValueInfoT >::count(), llvm::DenseMapBase< DenseMap< KeyT, ValueT, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::count(), llvm::SmallVectorBase::empty(), llvm::StringRef::empty(), llvm::DenseMapBase< DenseMap< KeyT, ValueT, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::NamedMDNode::eraseFromParent(), F(), File, llvm::DenseMapBase< DenseMap< KeyT, ValueT, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::find(), llvm::MDNode::get(), llvm::MDNode::getContext(), llvm::DICompileUnit::getDebugInfoForProfiling(), llvm::MDNode::getDistinct(), llvm::DICompileUnit::getDWOId(), llvm::DIScope::getFile(), llvm::DICompileUnit::getFlags(), llvm::DICompileUnit::getMacros(), llvm::DIScope::getName(), llvm::NamedMDNode::getName(), llvm::DICompileUnit::getNameTableKind(), llvm::MDNode::getNumOperands(), llvm::DICompileUnit::getProducer(), llvm::DICompileUnit::getRangesBaseAddress(), llvm::DICompileUnit::getRuntimeVersion(), llvm::DICompileUnit::getSourceLanguage(), llvm::DICompileUnit::getSplitDebugFilename(), llvm::DICompileUnit::getSplitDebugInlining(), I, llvm::detail::DenseSetImpl< ValueT, DenseMap< ValueT, detail::DenseSetEmpty, ValueInfoT, detail::DenseSetPair< ValueT > >, ValueInfoT >::insert(), llvm::DenseMapBase< DenseMap< KeyT, ValueT, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::insert(), llvm::MDNode::isDistinct(), llvm::DICompileUnit::isOptimized(), llvm::DICompileUnit::LineTablesOnly, LinkageName, N, llvm::Module::named_metadata_begin(), llvm::Module::named_metadata_end(), llvm::MDNode::operands(), llvm::SmallVectorTemplateBase< T >::pop_back(), llvm::jitlink::prune(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::SmallVectorImpl< T >::reserve(), llvm::MipsISD::Ret, llvm::StringRef::startswith(), and stripDebugInfo().
Referenced by llvm::LTOCodeGenerator::compile(), LLVMStripModuleDebugInfo(), StripSymbolNames(), and UpgradeDebugInfo().
Definition at line 313 of file DebugInfo.cpp.
References llvm::GlobalObject::hasMetadata(), and llvm::Function::setSubprogram().
Referenced by StripDebugInfo().
Definition at line 225 of file InstrProf.cpp.
References llvm::sys::path::is_separator().
Referenced by getPGOFuncName().
| Value * llvm::stripGetElementPtr | ( | Value * | Ptr, |
| ScalarEvolution * | SE, | ||
| Loop * | Lp | ||
| ) |
If the argument is a GEP, then returns the operand identified by getGEPInductionOperand.
However, if there is some other non-loop-invariant operand, it returns that instead.
Definition at line 153 of file VectorUtils.cpp.
References dyn_cast(), llvm::numbers::e, GEP, getGEPInductionOperand(), llvm::User::getNumOperands(), llvm::User::getOperand(), llvm::ScalarEvolution::getSCEV(), and llvm::ScalarEvolution::isLoopInvariant().
Referenced by getStrideFromPointer().
Definition at line 138 of file LoopAccessAnalysis.cpp.
Referenced by llvm::LoopAccessInfo::getPSE(), and replaceSymbolicStrideSCEV().
Downgrade the debug info in a module to contain only line table information.
In order to convert debug info to what -gline-tables-only would have created, this does the following: 1) Delete all debug intrinsics. 2) Delete all non-CU named metadata debug info nodes. 3) Create new DebugLocs for each instruction. 4) Create a new CU debug info, and similarly for every metadata node that's reachable from the CU debug info. All debug type metadata nodes are unreachable and garbage collected.
Definition at line 589 of file DebugInfo.cpp.
References llvm::Module::getContext(), llvm::Module::getFunction(), llvm::NamedMDNode::getName(), llvm::Module::globals(), Name, llvm::Module::named_metadata_begin(), and llvm::Module::named_metadata_end().
| Optional< fp::ExceptionBehavior > llvm::StrToExceptionBehavior | ( | StringRef | ExceptionArg | ) |
Returns a valid ExceptionBehavior enumerator when given a string valid as input in constrained intrinsic exception behavior metadata.
Definition at line 54 of file FPEnv.cpp.
References llvm::StringSwitch< T, R >::Case(), llvm::StringSwitch< T, R >::Default(), llvm::fp::ebIgnore, llvm::fp::ebMayTrap, llvm::fp::ebStrict, and None.
Referenced by llvm::ConstrainedFPIntrinsic::getExceptionBehavior().
| Optional< fp::RoundingMode > llvm::StrToRoundingMode | ( | StringRef | RoundingArg | ) |
Returns a valid RoundingMode enumerator when given a string that is valid as input in constrained intrinsic rounding mode metadata.
Definition at line 20 of file FPEnv.cpp.
References llvm::StringSwitch< T, R >::Case(), llvm::StringSwitch< T, R >::Default(), None, llvm::fp::rmDownward, llvm::fp::rmDynamic, llvm::fp::rmToNearest, llvm::fp::rmTowardZero, and llvm::fp::rmUpward.
Referenced by llvm::ConstrainedFPIntrinsic::getRoundingMode().
Subtract one from a Constant.
Definition at line 176 of file InstCombineInternal.h.
References llvm::ConstantInt::get(), llvm::ConstantExpr::getSub(), and llvm::Value::getType().
Referenced by foldNoWrapAdd(), processUGT_ADDCST_ADD(), and llvm::InstCombiner::visitSub().
| std::enable_if<std::is_signed<T>::value, T>::type llvm::SubOverflow | ( | T | X, |
| T | Y, | ||
| T & | Result | ||
| ) |
Subtract two signed integers, computing the two's complement truncated result, returning true if an overflow ocurred.
Definition at line 902 of file MathExtras.h.
|
inline |
succ_begin/succ_end - define methods so that Intervals may be used just like BasicBlocks can with the succ_* functions, and *succ_iterator.
Definition at line 102 of file Interval.h.
References llvm::Interval::Successors.
Referenced by llvm::SSAUpdaterTraits< SSAUpdater >::BlkSucc_begin(), CanPropagatePredecessorsForPHIs(), llvm::LoopBodyTraits::child_begin(), llvm::GraphTraits< BlockFrequencyInfo * >::child_begin(), llvm::GraphTraits< Interval * >::child_begin(), llvm::CFGViewSuccessors< true >::child_begin(), llvm::GraphTraits< BasicBlock * >::child_begin(), llvm::GraphTraits< const BasicBlock * >::child_begin(), llvm::GraphTraits< PGOUseFunc * >::child_begin(), llvm::LoopBodyTraits::child_end(), computeUnlikelySuccessors(), createCodeGenPreparePass(), DeleteBasicBlock(), llvm::VPlan::dump(), llvm::Loop::dumpVerbose(), eraseDeadBBsAndChildren(), llvm::CodeExtractor::extractCodeRegion(), FindFunctionBackedges(), llvm::BranchProbabilityInfo::getEdgeProbability(), llvm::DOTGraphTraits< const Function * >::getEdgeSourceLabel(), llvm::BranchProbabilityInfo::getHotSucc(), getMaxBackedgeTakenCount(), llvm::BasicBlock::getSingleSuccessor(), llvm::BasicBlock::getUniqueSuccessor(), intersect(), llvm::CaptureTracker::isDereferenceableOrNull(), isFullDominator(), isPotentiallyReachable(), isPotentiallyReachableFromMany(), isTrivialLoopExitBlockHelper(), isUnconditionalBranch(), markTails(), MergeBlockIntoPredecessor(), moveLCSSAPhis(), llvm::orc::BlockFreqQuery::operator()(), llvm::IntervalIterator< NodeTy, OrigContainer_t, GT, IGT >::operator++(), llvm::bfi_detail::IrreducibleGraph::IrrNode::pred_end(), llvm::BranchProbabilityInfo::print(), ReplaceUsesOfWith(), llvm::InstCombiner::run(), SafeToMergeTerminators(), SinkInstruction(), sinkRegion(), succ_empty(), succ_size(), successors(), llvm::MachineBasicBlock::successors(), TryToMergeLandingPad(), updateForIncomingValueLocation(), and UpdatePDTWorklist().
|
inline |
Definition at line 242 of file RegionIterator.h.
|
inline |
|
inline |
|
inline |
Definition at line 266 of file CFG.h.
References llvm::BasicBlock::getTerminator().
|
inline |
Definition at line 269 of file CFG.h.
References llvm::BasicBlock::getTerminator().
|
inline |
Definition at line 253 of file CFG.h.
References succ_begin(), and succ_end().
Referenced by llvm::CFGMST< Edge, BBInfo >::buildEdges(), FindFunctionBackedges(), getOutliningPenalty(), removeUnreachableBlocks(), llvm::SelectionDAGISel::runOnMachineFunction(), and TryToSimplifyUncondBranchFromEmptyBlock().
|
inline |
Definition at line 278 of file CFG.h.
References succ_begin(), and succ_end().
|
inline |
Definition at line 105 of file Interval.h.
References llvm::Interval::Successors.
Referenced by llvm::SSAUpdaterTraits< SSAUpdater >::BlkSucc_end(), llvm::LoopBodyTraits::child_begin(), llvm::CFGViewSuccessors< true >::child_begin(), llvm::LoopBodyTraits::child_end(), llvm::GraphTraits< BlockFrequencyInfo * >::child_end(), llvm::GraphTraits< Interval * >::child_end(), llvm::CFGViewSuccessors< true >::child_end(), llvm::GraphTraits< BasicBlock * >::child_end(), llvm::GraphTraits< const BasicBlock * >::child_end(), llvm::GraphTraits< PGOUseFunc * >::child_end(), computeUnlikelySuccessors(), createCodeGenPreparePass(), DeleteBasicBlock(), llvm::VPlan::dump(), llvm::Loop::dumpVerbose(), eraseDeadBBsAndChildren(), llvm::CodeExtractor::extractCodeRegion(), FindFunctionBackedges(), llvm::BranchProbabilityInfo::getEdgeProbability(), llvm::BranchProbabilityInfo::getHotSucc(), llvm::BasicBlock::getSingleSuccessor(), llvm::BasicBlock::getUniqueSuccessor(), intersect(), llvm::CaptureTracker::isDereferenceableOrNull(), isFullDominator(), isPotentiallyReachable(), isPotentiallyReachableFromMany(), isTrivialLoopExitBlockHelper(), isUnconditionalBranch(), markTails(), MergeBasicBlockIntoOnlyPred(), MergeBlockIntoPredecessor(), moveLCSSAPhis(), llvm::orc::BlockFreqQuery::operator()(), llvm::IntervalIterator< NodeTy, OrigContainer_t, GT, IGT >::operator++(), llvm::RNSuccIterator< FlatIt< NodeRef >, BlockT, RegionT >::operator++(), llvm::BranchProbabilityInfo::print(), llvm::InstCombiner::run(), SafeToMergeTerminators(), SinkInstruction(), sinkRegion(), SplitCriticalEdge(), succ_empty(), succ_size(), successors(), llvm::MachineBasicBlock::successors(), TryToMergeLandingPad(), TryToSimplifyUncondBranchFromEmptyBlock(), updateForIncomingValueLocation(), and UpdatePDTWorklist().
|
inline |
Definition at line 247 of file RegionIterator.h.
|
inline |
|
inline |
|
inline |
Definition at line 272 of file CFG.h.
References llvm::BasicBlock::getTerminator().
|
inline |
Definition at line 275 of file CFG.h.
References llvm::BasicBlock::getTerminator().
|
inline |
Definition at line 256 of file CFG.h.
References succ_begin(), and succ_end().
Referenced by llvm::IRTranslator::getAnalysisUsage(), llvm::BranchProbabilityInfo::getEdgeProbability(), getLayoutSuccessorProbThreshold(), llvm::SelectionDAGBuilder::isExportableFromCurrentBlock(), and MergeBlockIntoPredecessor().
|
inline |
Definition at line 281 of file CFG.h.
References succ_begin(), and succ_end().
|
inline |
Definition at line 259 of file CFG.h.
References succ_begin(), and succ_end().
Referenced by llvm::LoopSafetyInfo::allLoopPathsLeadToBlock(), analyzeLoopUnrollCost(), buildClonedLoopBlocks(), llvm::CFGMST< Edge, BBInfo >::buildEdges(), calculateUnswitchCostMultiplier(), llvm::MemorySSAUpdater::changeCondBranchToUnconditionalTo(), llvm::MemorySSAUpdater::changeToUnreachable(), changeToUnreachable(), CheckForCanReleaseCFGHazard(), collectInstructionsInBetween(), colorEHFunclets(), llvm::DivergencePropagator::computeJoinPoints(), computeLiveInValues(), computeLiveOutSeed(), ConnectEpilog(), ConnectProlog(), llvm::OpenMPIRBuilder::CreateParallel(), deleteDeadBlocksFromLoop(), deleteDeadClonedBlocks(), DetatchDeadBlocks(), DuplicateInstructionsInSplitBetween(), llvm::LazyValueInfo::enableDT(), llvm::objcarc::FindDependencies(), llvm::MustBeExecutedContextExplorer::findForwardJoinPoint(), llvm::ScalarEvolution::forgetValue(), formDedicatedExitBlocks(), llvm::IRTranslator::getAnalysisUsage(), llvm::IRPosition::getAttrs(), getCommonExitBlock(), getInductionVariable(), getInnermostLoopFor(), getOutliningPenalty(), getSuccState(), HoistThenElseCodeToIf(), llvm::DivergenceAnalysis::inRegion(), llvm::MemorySSAUpdater::insertDef(), isSafeToHoistInvoke(), isSuspendReachableFrom(), isUnconditionalBranch(), llvm::SyncDependenceAnalysis::join_blocks(), markAliveBlocks(), MergeBasicBlockIntoOnlyPred(), MergeBlockIntoPredecessor(), llvm::MemorySSAUpdater::moveAllAfterMergeBlocks(), llvm::MemorySSAUpdater::moveAllAfterSpliceBlocks(), llvm::GVNHoist::rank(), llvm::MemorySSAUpdater::removeBlocks(), removeUnreachableBlocks(), llvm::BasicBlock::replaceSuccessorsPhiUsesWith(), SafeToMergeTerminators(), setBranchWeights(), shouldKeepInEntry(), shouldRotateLoopExitingLatch(), SplitCriticalEdge(), llvm::JumpThreadingPass::ThreadEdge(), TryToSimplifyUncondBranchFromEmptyBlock(), turnGuardIntoBranch(), UnrollLoop(), UnrollRuntimeLoopRemainder(), UpdatePDTWorklist(), updateSuccessor(), and willLeaveFunctionImmediatelyAfter().
|
inline |
Definition at line 262 of file CFG.h.
References succ_begin(), and succ_end().
|
inline |
Definition at line 284 of file CFG.h.
References succ_begin(), and succ_end().
|
inline |
Definition at line 287 of file CFG.h.
References succ_begin(), and succ_end().
|
static |
Definition at line 841 of file InstrProf.cpp.
References D, and llvm::support::little.
| cl::opt<bool> llvm::SwpEnableCopyToPhi | ( | "pipeliner-enable-copytophi" | , |
| cl::ReallyHidden | , | ||
| cl::init(true) | , | ||
| cl::ZeroOrMore | , | ||
| cl::desc("Enable CopyToPhi DAG Mutation") | |||
| ) |
|
inlinestatic |
Get the operand corresponding to the conditional code result for Thumb1.
This operand will always refer to CPSR and it will have the Define flag set. You can optionally set the Dead flag by means of isDead.
Definition at line 480 of file ARMBaseInstrInfo.h.
References llvm::MachineOperand::CreateReg().
Referenced by ContainsReg(), emitPostLd(), emitPostSt(), emitThumbRegPlusImmediate(), emitThumbRegPlusImmInReg(), getLSMultipleTransferSize(), and VerifyLowRegs().
| int llvm::TableGenMain | ( | char * | argv0, |
| TableGenMainFn * | MainFn | ||
| ) |
Definition at line 83 of file Main.cpp.
References llvm::SourceMgr::AddNewSourceBuffer(), createDependencyFile(), DependFilename, ErrorsPrinted, llvm::ErrorOr< T >::getError(), llvm::MemoryBuffer::getFile(), llvm::MemoryBuffer::getFileOrSTDIN(), IncludeDirs, InputFilename, llvm::ToolOutputFile::keep(), MacroNames, llvm::sys::fs::OF_None, llvm::ToolOutputFile::os(), OutputFilename, llvm::TGParser::ParseFile(), reportError(), llvm::MipsISD::Ret, llvm::SourceMgr::setIncludeDirs(), SrcMgr, llvm::raw_string_ostream::str(), and WriteIfChanged.
| void llvm::thinLTOInternalizeAndPromoteInIndex | ( | ModuleSummaryIndex & | Index, |
| function_ref< bool(StringRef, ValueInfo)> | isExported, | ||
| function_ref< bool(GlobalValue::GUID, const GlobalValueSummary *)> | isPrevailing | ||
| ) |
Update the linkages in the given Index to mark exported values as external and non-exported values as internal.
The ThinLTO backends must apply the changes to the Module via thinLTOInternalizeModule.
Definition at line 418 of file LTO.cpp.
References I, thinLTOInternalizeAndPromoteGUID(), and llvm::lto::InputFile::~InputFile().
Referenced by llvm::lto::createWriteIndexesThinBackend(), llvm::ThinLTOCodeGenerator::internalize(), llvm::ThinLTOCodeGenerator::promote(), and llvm::ThinLTOCodeGenerator::run().
| void llvm::thinLTOInternalizeModule | ( | Module & | TheModule, |
| const GVSummaryMapTy & | DefinedGlobals | ||
| ) |
Internalize TheModule based on the information recorded in the summaries during global summary-based analysis.
Run internalization on TheModule based on symmary analysis.
Definition at line 1048 of file FunctionImport.cpp.
References assert(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), llvm::GlobalValue::getGlobalIdentifier(), llvm::GlobalValue::getGUID(), llvm::ModuleSummaryIndex::getOriginalNameBeforePromote(), llvm::Module::getSourceFileName(), llvm::X86AS::GS, internalizeModule(), llvm::GlobalValue::InternalLinkage, and llvm::GlobalValue::isLocalLinkage().
Referenced by llvm::ThinLTOCodeGenerator::internalize(), and llvm::lto::thinBackend().
| void llvm::thinLTOResolvePrevailingInIndex | ( | ModuleSummaryIndex & | Index, |
| function_ref< bool(GlobalValue::GUID, const GlobalValueSummary *)> | isPrevailing, | ||
| function_ref< void(StringRef, GlobalValue::GUID, GlobalValue::LinkageTypes)> | recordNewLinkage, | ||
| const DenseSet< GlobalValue::GUID > & | GUIDPreservedSymbols | ||
| ) |
Resolve linkage for prevailing symbols in the Index.
Linkage changes recorded in the index and the ThinLTO backends must apply the changes to the module via thinLTOResolvePrevailingInModule.
This is done for correctness (if value exported, ensure we always emit a copy), and compile-time optimization (allow drop of duplicates).
Definition at line 358 of file LTO.cpp.
References I, llvm::detail::DenseSetImpl< ValueT, DenseMap< ValueT, detail::DenseSetEmpty, ValueInfoT, detail::DenseSetPair< ValueT > >, ValueInfoT >::insert(), and thinLTOResolvePrevailingGUID().
Referenced by llvm::lto::createWriteIndexesThinBackend().
| void llvm::thinLTOResolvePrevailingInModule | ( | Module & | TheModule, |
| const GVSummaryMapTy & | DefinedGlobals | ||
| ) |
Resolve prevailing symbol linkages in TheModule based on the information recorded in the summaries during global summary-based analysis.
Fixup prevailing symbol linkages in TheModule based on summary analysis.
Definition at line 983 of file FunctionImport.cpp.
References assert(), convertToDeclaration(), dbgs(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), llvm::X86AS::GS, llvm::GlobalValue::HiddenVisibility, llvm::GlobalValue::isAvailableExternallyLinkage(), llvm::GlobalValue::isInterposableLinkage(), llvm::GlobalValue::isLocalLinkage(), LLVM_DEBUG, llvm_unreachable, and llvm::GlobalValue::WeakODRLinkage.
Referenced by llvm::ThinLTOCodeGenerator::internalize(), llvm::ThinLTOCodeGenerator::promote(), and llvm::lto::thinBackend().
Manually begin a time section, with the given Name and Detail.
Profiler copies the string data, so the pointers can be given into temporaries. Time sections can be hierarchical; every Begin must have a matching End pair but they can nest.
Definition at line 210 of file TimeProfiler.cpp.
References llvm::TimeTraceProfiler::begin().
Referenced by timeTraceProfilerEnabled(), and llvm::TimeTraceScope::TimeTraceScope().
| void llvm::timeTraceProfilerBegin | ( | StringRef | Name, |
| llvm::function_ref< std::string()> | Detail | ||
| ) |
Definition at line 215 of file TimeProfiler.cpp.
References llvm::TimeTraceProfiler::begin().
| void llvm::timeTraceProfilerCleanup | ( | ) |
Cleanup the time trace profiler, if it was initialized.
Definition at line 199 of file TimeProfiler.cpp.
References TimeTraceProfilerInstance.
|
inline |
Is the time trace profiler enabled, i.e. initialized?
Definition at line 29 of file TimeProfiler.h.
References Name, timeTraceProfilerBegin(), timeTraceProfilerEnd(), and timeTraceProfilerWrite().
| void llvm::timeTraceProfilerEnd | ( | ) |
Manually end the last time section.
Definition at line 221 of file TimeProfiler.cpp.
References llvm::TimeTraceProfiler::end().
Referenced by timeTraceProfilerEnabled(), and llvm::TimeTraceScope::~TimeTraceScope().
Initialize the time trace profiler.
This sets up the global TimeTraceProfilerInstance variable to be the profiler instance.
Definition at line 191 of file TimeProfiler.cpp.
References assert(), and llvm::sys::path::filename().
| void llvm::timeTraceProfilerWrite | ( | raw_pwrite_stream & | OS | ) |
Write profiling data to output file.
Data produced is JSON, in Chrome "Trace Event" format, see https://docs.google.com/document/d/1CvAClvFfyA5R-PhYUmn5OOQtYMH4h6I0nSsKchNAySU/preview
Definition at line 204 of file TimeProfiler.cpp.
References assert(), and llvm::TimeTraceProfiler::Write().
Referenced by timeTraceProfilerEnabled().
| auto llvm::to_address | ( | const Ptr & | P | ) | -> decltype(P.operator->()) |
Returns a raw pointer that represents the same address as the argument.
The late bound return should be removed once we move to C++14 to better align with the C++20 declaration. Also, this implementation can be removed once we move to C++20 where it's defined as std::to_addres()
The std::pointer_traits<>::to_address(p) variations of these overloads has not been implemented.
Definition at line 1582 of file STLExtras.h.
References P.
Definition at line 1585 of file STLExtras.h.
References P.
Definition at line 211 of file StringExtras.h.
References llvm::detail::to_float().
Referenced by parseDouble().
Definition at line 215 of file StringExtras.h.
References llvm::detail::to_float().
Definition at line 219 of file StringExtras.h.
References llvm::detail::to_float().
Definition at line 15 of file ScopedPrinter.cpp.
References Data, llvm::StringRef::empty(), llvm::ArrayRef< T >::empty(), format_bytes(), format_bytes_with_ascii(), format_hex_no_prefix(), None, llvm::ArrayRef< T >::size(), and llvm::raw_string_ostream::str().
Referenced by getARMFixupKindMachOInfo(), and operator<<().
Convert the string S to an integer of the specified type using the radix Base.
If Base is 0, auto-detects the radix. Returns true if the number was successfully converted, false otherwise.
Definition at line 193 of file StringExtras.h.
References llvm::StringRef::getAsInteger().
Referenced by zero().
Definition at line 61 of file ScopedPrinter.h.
References llvm::raw_string_ostream::str(), and llvm::EnumEntry< T >::Value.
Referenced by llvm::BTFDebug::BTFDebug(), calcArraySize(), ComputeASanStackFrameDescription(), createPrivateNonConstGlobalForString(), defineExternalNode(), llvm::slpvectorizer::BoUpSLP::EdgeInfo::dump(), llvm::jitlink::LinkGraph::dump(), llvm::CodeGenCoverage::emit(), llvm::BTFTypeBase::emitType(), llvm::ModuleSummaryIndex::exportToDot(), llvm::IRPosition::getAttrs(), llvm::orc::JITCompileCallbackManager::getCompileCallback(), llvm::HexagonInstrInfo::getDotNewOp(), getNodeVisualName(), getOutliningPenalty(), llvm::sampleprof::getRepInFormat(), llvm::object::getSecIndexForError(), getSummaryAttributes(), llvm::OpenMPIRBuilder::initialize(), instrumentMaskedLoadOrStore(), llvm::object::WindowsResourceParser::TreeNode::print(), llvm::sampleprof::SampleProfileReaderCompactBinary::readImpl(), llvm::sampleprof::SampleProfileReaderBinary::readNameTable(), readSection(), adjust::signed_width(), adjust::unsigned_width(), and llvm::AMDGPULibCalls::useNative().
| SmallVector<typename std::remove_const<typename std::remove_reference< decltype(*std::begin(std::declval<R &>)))>::type>::type, Size> llvm::to_vector | ( | R && | Range | ) |
Given a range of type R, iterate the entire range and return a SmallVector with elements of the vector.
This is useful, for example, when you want to iterate a range and then sort the results.
Definition at line 917 of file SmallVector.h.
References llvm::sys::path::begin(), and llvm::sys::path::end().
|
inline |
Definition at line 135 of file AtomicOrdering.h.
References acq_rel, acquire, consume, lookup(), relaxed, release, and seq_cst.
Referenced by GetRMWLibcall().
Convert buffer Input to its hexadecimal representation.
The returned string is double the size of Input.
Definition at line 141 of file StringExtras.h.
References llvm::StringRef::size().
Referenced by computeLTOCacheKey(), llvm::yaml::ScalarTraits< FixedSizeHex< N > >::output(), printDwarfFileDirective(), and toHex().
Definition at line 156 of file StringExtras.h.
References toHex(), and toStringRef().
|
inline |
String used by LLVM IR to represent atomic ordering.
Definition at line 80 of file AtomicOrdering.h.
Referenced by llvm::MachineMemOperand::print().
Returns the corresponding lowercase character if x is uppercase.
Definition at line 111 of file StringExtras.h.
Referenced by ascii_strncasecmp(), llvm::StringRef::find_lower(), llvm::StringRef::lower(), printLowerCase(), and llvm::StringRef::rfind_lower().
|
inline |
Write all error messages (if any) in E to a string.
The newline character is used to separate error messages.
Definition at line 986 of file Error.h.
References llvm::SmallVectorTemplateCommon< T >::begin(), llvm::SmallVectorTemplateCommon< T >::end(), handleAllErrors(), join(), llvm::ErrorInfoBase::message(), and llvm::SmallVectorTemplateBase< T >::push_back().
Referenced by llvm::ThinLTOCodeGenerator::addModule(), llvm::DWARFUnit::collectAddressRanges(), llvm::RuntimeDyldImpl::computeSectionStubBufSize(), llvm::APInt::countPopulation(), createError(), llvm::LTOModule::createInputFile(), llvm::DWARFContext::defaultErrorHandler(), llvm::DWARFContext::dump(), llvm::DWARFLocationTable::dumpLocationList(), dumpLoclistsSection(), llvm::RuntimeDyldELF::finalizeLoad(), llvm::DWARFDebugAranges::generate(), llvm::DWARFUnit::getCompilationDir(), llvm::vfs::detail::InMemoryNode::getKind(), llvm::detail::DoubleAPFloat::getSecond(), llvm::DWARFVerifier::handleDebugLine(), llvm::yaml::ScalarTraits< Target >::input(), isInSymtab(), llvm::detail::IEEEFloat::isNegZero(), isVariableIndexable(), llvm::ms_demangle::Node::kind(), LLVMCreateBinary(), LLVMMachOUniversalBinaryCopyObjectForArch(), llvm::RuntimeDyldELF::loadObject(), llvm::lto::localCache(), needsRuntimeRegistrationOfSectionRange(), llvm::LTOCodeGenerator::optimize(), llvm::DWARFDebugFrame::parse(), parseHexOcta(), llvm::object::WasmSymbol::print(), llvm::ScaledNumberBase::print(), llvm::WebAssemblyInstPrinter::printOperand(), promoteIndirectCalls(), llvm::ThinLTOCodeGenerator::run(), llvm::dwarf::toString(), toString(), llvm::APFloat::toString(), llvm::APInt::toStringSigned(), llvm::APInt::toStringUnsigned(), llvm::DWARFUnit::tryExtractDIEsIfNeeded(), and llvm::yaml::yaml2ObjectFile().
Construct a string ref from a boolean.
Definition at line 52 of file StringExtras.h.
Referenced by llvm::MinidumpYAML::Stream::create(), dumpExpression(), llvm::CodeViewContext::emitFileChecksums(), llvm::RecordStreamer::flushSymverDirectives(), llvm::DWARFContext::getDWOContext(), llvm::codeview::getSymbolName(), getVarName(), isVariableIndexable(), llvm::codeview::CodeViewRecordIO::mapByteVectorTail(), toHex(), llvm::MCDwarfLineTableHeader::tryGetFile(), and UpgradeDataLayoutString().
Construct a string ref from an array ref of unsigned chars.
Definition at line 55 of file StringExtras.h.
References llvm::ArrayRef< T >::begin(), and llvm::ArrayRef< T >::size().
Given an array of c-style strings terminated by a null pointer, construct a vector of StringRefs representing the same strings without the terminating null string.
Definition at line 44 of file StringExtras.h.
|
static |
Definition at line 278 of file APFloat.cpp.
References createError(), decDigitValue(), and llvm::sys::path::end().
Referenced by llvm::detail::IEEEFloat::convertFromZeroExtendedInteger().
Returns the corresponding uppercase character if x is lowercase.
Definition at line 118 of file StringExtras.h.
Referenced by llvm::StringRef::upper().
|
static |
Definition at line 440 of file APFloat.cpp.
References createError(), hexDigitValue(), lfExactlyHalf, lfExactlyZero, lfLessThanHalf, and lfMoreThanHalf.
Referenced by llvm::detail::IEEEFloat::convertFromZeroExtendedInteger().
| OutputIt llvm::transform | ( | R && | Range, |
| OutputIt | d_first, | ||
| UnaryPredicate | P | ||
| ) |
Wrapper function around std::transform to apply a function to a range and store the result elsewhere.
Definition at line 1264 of file STLExtras.h.
References adl_begin(), and adl_end().
Referenced by llvm::InterleaveGroup< llvm::Instruction >::addMetadata(), alwaysAvailable(), APIntToHexString(), expandBounds(), llvm::ScalarEvolution::forgetValue(), getInductionVariable(), llvm::MemoryDepChecker::getInstructionsForAccess(), isLoadConditional(), isProfitableForVectorization(), NarrowVector(), llvm::PBQP::Vector::operator+=(), llvm::PBQP::Matrix::operator+=(), llvm::AArch64InstPrinter::printSysAlias(), llvm::xray::profileFromTrace(), readWideAPInt(), replaceAllUsesOfWithIn(), llvm::SLPVectorizerPass::runImpl(), and SimplifyWithOpReplaced().
|
static |
Definition at line 174 of file SectionMemoryManager.cpp.
References llvm::sys::MemoryBlock::allocatedSize(), assert(), llvm::sys::MemoryBlock::base(), llvm::sys::Process::getPageSizeEstimate(), PageSize, llvm::SectionMemoryManager::MemoryMapper::protectMappedMemory(), and remove_if().
| bool llvm::tryFoldSPUpdateIntoPushPop | ( | const ARMSubtarget & | Subtarget, |
| MachineFunction & | MF, | ||
| MachineInstr * | MI, | ||
| unsigned | NumBytes | ||
| ) |
Tries to add registers to the reglist of a given base-updating push/pop instruction to adjust the stack by an additional NumBytes.
This can save a few bytes per function in code-size, but obviously generates more memory traffic. As such, it only takes effect in functions being optimised for size.
Definition at line 2395 of file ARMBaseInstrInfo.cpp.
References llvm::MachineInstrBuilder::add(), assert(), llvm::MachineBasicBlock::computeRegisterLiveness(), llvm::MachineOperand::CreateReg(), llvm::TargetRegisterInfo::getCalleeSavedRegs(), llvm::MCRegisterInfo::getEncodingValue(), llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineInstr::getParent(), llvm::MachineOperand::getReg(), llvm::MachineFunction::getRegInfo(), llvm::TargetRegisterClass::getRegister(), llvm::MachineRegisterInfo::getTargetRegisterInfo(), llvm::ARMSubtarget::hasMinSize(), isCalleeSavedRegister(), llvm::MachineOperand::isImplicit(), isPopOpcode(), isPushOpcode(), llvm::MachineOperand::isReg(), llvm::MachineBasicBlock::LQR_Dead, llvm::SmallVectorTemplateBase< T >::push_back(), llvm::MachineInstr::RemoveOperand(), llvm::SmallVectorBase::size(), and TRI.
Referenced by llvm::Thumb1FrameLowering::emitEpilogue(), llvm::ARMFrameLowering::emitEpilogue(), llvm::Thumb1FrameLowering::emitPrologue(), llvm::ARMFrameLowering::emitPrologue(), and isValidCoprocessorNumber().
| bool llvm::tryGreater | ( | int | TryVal, |
| int | CandVal, | ||
| GenericSchedulerBase::SchedCandidate & | TryCand, | ||
| GenericSchedulerBase::SchedCandidate & | Cand, | ||
| GenericSchedulerBase::CandReason | Reason | ||
| ) |
Definition at line 2665 of file MachineScheduler.cpp.
References llvm::GenericSchedulerBase::SchedCandidate::Reason.
Referenced by llvm::GenericSchedulerBase::GenericSchedulerBase(), llvm::GenericScheduler::tryCandidate(), llvm::PostGenericScheduler::tryCandidate(), tryLatency(), and tryPressure().
| bool llvm::tryLatency | ( | GenericSchedulerBase::SchedCandidate & | TryCand, |
| GenericSchedulerBase::SchedCandidate & | Cand, | ||
| SchedBoundary & | Zone | ||
| ) |
Definition at line 2681 of file MachineScheduler.cpp.
References llvm::GenericSchedulerBase::BotHeightReduce, llvm::GenericSchedulerBase::BotPathReduce, llvm::SUnit::getDepth(), llvm::SUnit::getHeight(), llvm::SchedBoundary::getScheduledLatency(), llvm::SchedBoundary::isTop(), llvm::GenericSchedulerBase::SchedCandidate::SU, llvm::GenericSchedulerBase::TopDepthReduce, llvm::GenericSchedulerBase::TopPathReduce, tryGreater(), and tryLess().
Referenced by llvm::GenericSchedulerBase::GenericSchedulerBase(), llvm::GenericScheduler::tryCandidate(), and llvm::PostGenericScheduler::tryCandidate().
| bool llvm::tryLess | ( | int | TryVal, |
| int | CandVal, | ||
| GenericSchedulerBase::SchedCandidate & | TryCand, | ||
| GenericSchedulerBase::SchedCandidate & | Cand, | ||
| GenericSchedulerBase::CandReason | Reason | ||
| ) |
Return true if this heuristic determines order.
Definition at line 2649 of file MachineScheduler.cpp.
References llvm::GenericSchedulerBase::SchedCandidate::Reason.
Referenced by llvm::GenericSchedulerBase::GenericSchedulerBase(), llvm::GenericScheduler::tryCandidate(), llvm::PostGenericScheduler::tryCandidate(), tryLatency(), and tryPressure().
| bool llvm::tryPressure | ( | const PressureChange & | TryP, |
| const PressureChange & | CandP, | ||
| GenericSchedulerBase::SchedCandidate & | TryCand, | ||
| GenericSchedulerBase::SchedCandidate & | Cand, | ||
| GenericSchedulerBase::CandReason | Reason, | ||
| const TargetRegisterInfo * | TRI, | ||
| const MachineFunction & | MF | ||
| ) |
Definition at line 2863 of file MachineScheduler.cpp.
References llvm::GenericSchedulerBase::SchedCandidate::AtTop, llvm::PressureChange::getPSetOrMax(), llvm::TargetRegisterInfo::getRegPressureSetScore(), llvm::PressureChange::getUnitInc(), llvm::PressureChange::isValid(), max(), std::swap(), tryGreater(), and tryLess().
Referenced by llvm::GenericSchedulerBase::GenericSchedulerBase(), and llvm::GenericScheduler::tryCandidate().
| bool llvm::TryToSimplifyUncondBranchFromEmptyBlock | ( | BasicBlock * | BB, |
| DomTreeUpdater * | DTU = nullptr |
||
| ) |
BB is known to contain an unconditional branch, and contains no instructions other than PHI nodes, potential debug intrinsics and the branch.
If possible, eliminate BB by rewriting all the predecessors to branch to the successor block and return true. If we can't transform, return false.
Definition at line 949 of file Local.cpp.
References llvm::DomTreeUpdater::applyUpdatesPermissive(), assert(), llvm::BasicBlock::begin(), CanPropagatePredecessorsForPHIs(), dbgs(), llvm::DominatorTreeBase< BasicBlock, false >::Delete, llvm::DomTreeUpdater::deleteBB(), llvm::numbers::e, E, llvm::Instruction::eraseFromParent(), llvm::BasicBlock::eraseFromParent(), find(), llvm::BasicBlock::front(), llvm::BasicBlock::getContext(), llvm::Function::getEntryBlock(), llvm::BasicBlock::getInstList(), llvm::LLVMContext::getMDKindID(), llvm::Instruction::getMetadata(), llvm::BasicBlock::getParent(), llvm::BasicBlock::getTerminator(), I, llvm::DominatorTreeBase< BasicBlock, false >::Insert, LLVM_DEBUG, llvm::iplist_impl< IntrusiveListT, TraitsT >::pop_back(), pred_begin(), pred_end(), llvm::SmallVectorTemplateBase< T >::push_back(), redirectValuesFromPredecessorsToPhi(), llvm::Value::replaceAllUsesWith(), llvm::Instruction::setMetadata(), llvm::iplist_impl< IntrusiveListT, TraitsT >::splice(), succ_empty(), succ_end(), and successors().
Referenced by llvm::JumpThreadingPass::runImpl(), llvm::SimplifyCFGOptions::setAssumptionCache(), and TryToMergeLandingPad().
|
static |
Definition at line 541 of file APFloat.cpp.
References assert(), count(), and llvm::APFloatBase::integerPartWidth.
Referenced by llvm::detail::IEEEFloat::convertFromZeroExtendedInteger().
Return a uniformly distributed random value between Min and Max.
Definition at line 21 of file Random.h.
Referenced by llvm::RandomIRBuilder::newSink().
| T llvm::uniform | ( | GenT & | Gen | ) |
|
inline |
Definition at line 186 of file AliasAnalysis.h.
Referenced by llvm::GlobalsAAResult::FunctionInfo::addModRefInfoForGlobal(), llvm::GlobalsAAResult::getModRefInfo(), llvm::AAResults::getModRefInfo(), and llvm::GlobalsAAResult::FunctionInfo::getModRefInfoForGlobal().
|
inline |
Definition at line 377 of file Casting.h.
Referenced by llvm::pdb::DIARawSymbol::getVirtualBaseTableType(), unique_dyn_cast(), and unique_dyn_cast_or_null().
|
inline |
Definition at line 385 of file Casting.h.
References unique_dyn_cast(), X, and Y.
|
inline |
Definition at line 393 of file Casting.h.
References unique_dyn_cast(), X, and Y.
|
inline |
Compute the union of two access-group lists.
If the list contains just one access group, it is returned directly. If the list is empty, returns nullptr.
Definition at line 527 of file VectorUtils.cpp.
References addToAccessGroupList(), llvm::SetVector< T, SmallVector< T, N >, SmallDenseSet< T, N > >::front(), llvm::MDNode::get(), llvm::SetVector< T, SmallVector< T, N >, SmallDenseSet< T, N > >::getArrayRef(), llvm::MDNode::getContext(), and llvm::SetVector< T, SmallVector< T, N >, SmallDenseSet< T, N > >::size().
Referenced by PropagateParallelLoopAccessMetadata().
UnknownPadding - Return the worst case padding that could result from unknown offset bits.
This does not include alignment padding caused by known offset bits.
| Alignment | alignment |
| KnownBits | Number of known low offset bits. |
Definition at line 33 of file ARMBasicBlockInfo.h.
References Log2(), and llvm::Align::value().
Referenced by CompareMBBNumbers(), getUnconditionalBrDisp(), and llvm::BasicBlockInfo::postOffset().
| LoopUnrollResult llvm::UnrollAndJamLoop | ( | Loop * | L, |
| unsigned | Count, | ||
| unsigned | TripCount, | ||
| unsigned | TripMultiple, | ||
| bool | UnrollRemainder, | ||
| LoopInfo * | LI, | ||
| ScalarEvolution * | SE, | ||
| DominatorTree * | DT, | ||
| AssumptionCache * | AC, | ||
| OptimizationRemarkEmitter * | ORE, | ||
| Loop ** | EpilogueLoop = nullptr |
||
| ) |
Definition at line 172 of file LoopUnrollAndJam.cpp.
References llvm::LoopBase< BlockT, LoopT >::addBasicBlockToLoop(), llvm::DominatorTreeBase< NodeT, IsPostDom >::addNewBlock(), llvm::DomTreeUpdater::applyUpdatesPermissive(), assert(), llvm::BasicBlock::back(), llvm::sys::path::begin(), llvm::ValueMap< KeyT, ValueT, Config >::begin(), llvm::LoopBase< BlockT, LoopT >::begin(), llvm::BasicBlock::begin(), llvm::SmallPtrSetImpl< PtrType >::begin(), CloneBasicBlock(), llvm::LoopBase< BlockT, LoopT >::contains(), llvm::SmallPtrSetImpl< PtrType >::count(), llvm::BranchInst::Create(), dbgs(), DEBUG_TYPE, llvm::cfg::Delete, DFS(), dyn_cast(), llvm::OptimizationRemarkEmitter::emit(), llvm::SmallVectorImpl< T >::emplace_back(), llvm::SmallPtrSetImplBase::empty(), llvm::ValueMap< KeyT, ValueT, Config >::end(), llvm::SmallPtrSetImpl< PtrType >::erase(), llvm::LoopInfo::erase(), llvm::Instruction::eraseFromParent(), llvm::ScalarEvolution::forgetLoop(), FullyUnrolled, llvm::Function::getBasicBlockList(), llvm::LoopBase< BlockT, LoopT >::getBlocks(), llvm::DomTreeUpdater::getDomTree(), llvm::LoopBase< BlockT, LoopT >::getExitingBlock(), llvm::LoopBase< BlockT, LoopT >::getHeader(), llvm::DomTreeNodeBase< NodeT >::getIDom(), llvm::LoopBase< BlockT, LoopT >::getLoopLatch(), llvm::LoopBase< BlockT, LoopT >::getLoopPreheader(), llvm::Value::getName(), llvm::DominatorTreeBase< NodeT, IsPostDom >::getNode(), llvm::BasicBlock::getParent(), llvm::LoopBase< BlockT, LoopT >::getParentLoop(), llvm::Loop::getStartLoc(), llvm::LoopBase< BlockT, LoopT >::getSubLoops(), llvm::BranchInst::getSuccessor(), llvm::BasicBlock::getTerminator(), llvm::BasicBlock::getUniquePredecessor(), I, llvm::cfg::Insert, llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::Function::isDebugInfoForProfiling(), llvm::Loop::isLoopSimplifyForm(), llvm::Loop::isRecursivelyLCSSAForm(), llvm::BranchInst::isUnconditional(), llvm::DomTreeUpdater::Lazy, LLVM_DEBUG, llvm_unreachable, MergeBlockIntoPredecessor(), llvm::Instruction::moveBefore(), moveHeaderPhiOperandsToForeBlocks(), PartiallyUnrolled, partitionOuterLoopBlocks(), llvm::BasicBlock::phis(), llvm::iplist_impl< IntrusiveListT, TraitsT >::push_back(), llvm::AssumptionCache::registerAssumption(), remapInstruction(), llvm::Value::replaceAllUsesWith(), llvm::BranchInst::setSuccessor(), simplifyLoopAfterUnroll(), Unmodified, UnrollRuntimeLoopRemainder(), llvm::DominatorTreeBase< NodeT, IsPostDom >::verify(), and VI.
Referenced by tryToUnrollAndJamLoop().
| LoopUnrollResult llvm::UnrollLoop | ( | Loop * | L, |
| UnrollLoopOptions | ULO, | ||
| LoopInfo * | LI, | ||
| ScalarEvolution * | SE, | ||
| DominatorTree * | DT, | ||
| AssumptionCache * | AC, | ||
| OptimizationRemarkEmitter * | ORE, | ||
| bool | PreserveLCSSA, | ||
| Loop ** | RemainderLoop = nullptr |
||
| ) |
Unroll the given loop by Count.
The loop must be in LCSSA form. Unrolling can only fail when the loop's latch block is not terminated by a conditional branch instruction. However, if the trip count (and multiple) are not known, loop unrolling will mostly produce more code that is no faster.
TripCount is the upper bound of the iteration on which control exits LatchBlock. Control may exit the loop prior to TripCount iterations either via an early branch in other loop block or via LatchBlock terminator. This is relaxed from the general definition of trip count which is the number of times the loop header executes. Note that UnrollLoop assumes that the loop counter test is in LatchBlock in order to remove unnecesssary instances of the test. If control can exit the loop from the LatchBlock's terminator prior to TripCount iterations, flag PreserveCondBr needs to be set.
PreserveCondBr indicates whether the conditional branch of the LatchBlock needs to be preserved. It is needed when we use trip count upper bound to fully unroll the loop. If PreserveOnlyFirst is also set then only the first conditional branch needs to be preserved.
Similarly, TripMultiple divides the number of times that the LatchBlock may execute without exiting the loop.
If AllowRuntime is true then UnrollLoop will consider unrolling loops that have a runtime (i.e. not compile time constant) trip count. Unrolling these loops require a unroll "prologue" that runs "RuntimeTripCount % Count" iterations before branching into the unrolled loop. UnrollLoop will not runtime-unroll the loop if computing RuntimeTripCount will be expensive and AllowExpensiveTripCount is false.
If we want to perform PGO-based loop peeling, PeelCount is set to the number of iterations we want to peel off.
The LoopInfo Analysis that is passed will be kept consistent.
This utility preserves LoopInfo. It will also preserve ScalarEvolution and DominatorTree if they are non-null.
If RemainderLoop is non-null, it will receive the remainder loop (if required and not fully unrolled).
Definition at line 277 of file LoopUnroll.cpp.
References addClonedBlockToLoopInfo(), llvm::DominatorTreeBase< NodeT, IsPostDom >::addNewBlock(), llvm::UnrollLoopOptions::AllowExpensiveTripCount, llvm::UnrollLoopOptions::AllowRuntime, any_of(), assert(), llvm::BasicBlock::back(), llvm::ValueMap< KeyT, ValueT, Config >::begin(), llvm::BasicBlock::begin(), llvm::LoopBlocksDFS::beginRPO(), llvm::LoopBase< BlockT, LoopT >::blocks(), llvm::DominatorTreeBase< NodeT, IsPostDom >::changeImmediateDominator(), CloneBasicBlock(), llvm::LoopBase< BlockT, LoopT >::contains(), llvm::UnrollLoopOptions::Count, llvm::BranchInst::Create(), dbgs(), DEBUG_TYPE, DFS(), dyn_cast(), llvm::numbers::e, llvm::OptimizationRemarkEmitter::emit(), llvm::ValueMap< KeyT, ValueT, Config >::end(), llvm::LoopBlocksDFS::endRPO(), llvm::iplist_impl< IntrusiveListT, TraitsT >::erase(), llvm::LoopInfo::erase(), llvm::Instruction::eraseFromParent(), llvm::CallingConv::Fast, llvm::ValueMap< KeyT, ValueT, Config >::find(), llvm::DominatorTreeBase< NodeT, IsPostDom >::findNearestCommonDominator(), for(), llvm::UnrollLoopOptions::Force, llvm::ScalarEvolution::forgetAllLoops(), llvm::UnrollLoopOptions::ForgetAllSCEV, llvm::ScalarEvolution::forgetTopmostLoop(), formLCSSARecursively(), FullyUnrolled, llvm::Function::getBasicBlockList(), llvm::LoopBase< BlockT, LoopT >::getBlocks(), llvm::Value::getContext(), llvm::LoopBase< BlockT, LoopT >::getExitBlocks(), llvm::LoopBase< BlockT, LoopT >::getExitingBlock(), llvm::LoopBase< BlockT, LoopT >::getHeader(), llvm::DomTreeNodeBase< NodeT >::getIDom(), llvm::PHINode::getIncomingValueForBlock(), llvm::BasicBlock::getInstList(), llvm::LoopInfoBase< BlockT, LoopT >::getLoopFor(), llvm::LoopBase< BlockT, LoopT >::getLoopLatch(), llvm::LoopBase< BlockT, LoopT >::getLoopPreheader(), llvm::Value::getName(), llvm::DominatorTreeBase< NodeT, IsPostDom >::getNode(), llvm::BasicBlock::getParent(), llvm::LoopBase< BlockT, LoopT >::getParentLoop(), llvm::ScalarEvolution::getSmallConstantTripCount(), llvm::ScalarEvolution::getSmallConstantTripMultiple(), llvm::Loop::getStartLoc(), llvm::BranchInst::getSuccessor(), llvm::BasicBlock::getTerminator(), llvm::BasicBlock::getUniquePredecessor(), GreatestCommonDivisor64(), llvm::BasicBlock::hasAddressTaken(), I, llvm::SetVector< T, SmallVector< T, N >, SmallDenseSet< T, N > >::insert(), llvm::BranchInst::isConditional(), llvm::Function::isDebugInfoForProfiling(), isEpilogProfitable(), llvm::Loop::isLCSSAForm(), llvm::LoopBase< BlockT, LoopT >::isLoopExiting(), llvm::Loop::isSafeToClone(), llvm::BranchInst::isUnconditional(), llvm::DomTreeUpdater::Lazy, LLVM_DEBUG, MergeBlockIntoPredecessor(), needToInsertPhisForLCSSA(), PartiallyUnrolled, llvm::UnrollLoopOptions::PeelCount, peelLoop(), llvm::LoopBlocksDFS::perform(), predecessors(), llvm::UnrollLoopOptions::PreserveCondBr, llvm::UnrollLoopOptions::PreserveOnlyFirst, llvm::SmallVectorTemplateBase< T >::push_back(), llvm::iplist_impl< IntrusiveListT, TraitsT >::push_back(), llvm::AssumptionCache::registerAssumption(), remapInstruction(), llvm::sys::fs::remove(), replace(), llvm::ValueMapIterator< DenseMapT, KeyT >::ValueTypeProxy::second, simplifyLoop(), simplifyLoopAfterUnroll(), successors(), llvm::UnrollLoopOptions::TripCount, llvm::UnrollLoopOptions::TripMultiple, Unmodified, llvm::UnrollLoopOptions::UnrollRemainder, UnrollRuntimeEpilog, UnrollRuntimeLoopRemainder(), UnrollVerifyDomtree, llvm::DominatorTreeBase< NodeT, IsPostDom >::verify(), and VI.
Referenced by tryToUnrollLoop(), and UnrollRuntimeLoopRemainder().
| bool llvm::UnrollRuntimeLoopRemainder | ( | Loop * | L, |
| unsigned | Count, | ||
| bool | AllowExpensiveTripCount, | ||
| bool | UseEpilogRemainder, | ||
| bool | UnrollRemainder, | ||
| bool | ForgetAllSCEV, | ||
| LoopInfo * | LI, | ||
| ScalarEvolution * | SE, | ||
| DominatorTree * | DT, | ||
| AssumptionCache * | AC, | ||
| bool | PreserveLCSSA, | ||
| Loop ** | ResultLoop = nullptr |
||
| ) |
Insert code in the prolog/epilog code when unrolling a loop with a run-time trip-count.
This method assumes that the loop unroll factor is total number of loop bodies in the loop after unrolling. (Some folks refer to the unroll factor as the number of extra copies added). We assume also that the loop unroll factor is a power-of-two. So, after unrolling the loop, the number of loop bodies executed is 2, 4, 8, etc. Note - LLVM converts the if-then-sequence to a switch instruction in SimplifyCFG.cpp. Then, the backend decides how code for the switch instruction is generated.
Prolog case extraiters = tripcount % loopfactor if (extraiters == 0) jump Loop: else jump Prol: Prol: LoopBody; extraiters -= 1 // Omitted if unroll factor is 2. if (extraiters != 0) jump Prol: // Omitted if unroll factor is 2. if (tripcount < loopfactor) jump End: Loop: ... End:
Epilog case extraiters = tripcount % loopfactor if (tripcount < loopfactor) jump LoopExit: unroll_iters = tripcount - extraiters Loop: LoopBody; (executes unroll_iter times); unroll_iter -= 1 if (unroll_iter != 0) jump Loop: LoopExit: if (extraiters == 0) jump EpilExit: Epil: LoopBody; (executes extraiters times) extraiters -= 1 // Omitted if unroll factor is 2. if (extraiters != 0) jump Epil: // Omitted if unroll factor is 2. EpilExit:
Definition at line 546 of file LoopUnrollRuntime.cpp.
References llvm::PHINode::addIncoming(), any_of(), assert(), B, llvm::LoopBase< BlockT, LoopT >::blocks(), canProfitablyUnrollMultiExitLoop(), canSafelyUnrollMultiExitLoop(), llvm::DominatorTreeBase< NodeT, IsPostDom >::changeImmediateDominator(), CloneLoopBlocks(), ConnectEpilog(), ConnectProlog(), llvm::LoopBase< BlockT, LoopT >::contains(), llvm::PHINode::Create(), llvm::IRBuilder< T, Inserter >::CreateAdd(), llvm::IRBuilder< T, Inserter >::CreateAnd(), llvm::IRBuilder< T, Inserter >::CreateCondBr(), llvm::IRBuilder< T, Inserter >::CreateICmpULT(), llvm::IRBuilder< T, Inserter >::CreateIsNotNull(), llvm::IRBuilder< T, Inserter >::CreateURem(), dbgs(), llvm::Loop::dump(), llvm::Function::end(), llvm::Instruction::eraseFromParent(), llvm::SCEVExpander::expandCodeFor(), F(), llvm::ScalarEvolution::forgetTopmostLoop(), formDedicatedExitBlocks(), llvm::JumpTable::Full, FullyUnrolled, llvm::ConstantInt::get(), llvm::ScalarEvolution::getAddExpr(), llvm::Function::getBasicBlockList(), getBitWidth(), llvm::DomTreeNodeBase< NodeT >::getBlock(), llvm::ScalarEvolution::getConstant(), llvm::Module::getDataLayout(), llvm::Instruction::getDebugLoc(), llvm::ScalarEvolution::getExitCount(), llvm::LoopBase< BlockT, LoopT >::getExitingBlock(), llvm::BasicBlock::getFirstNonPHI(), llvm::LoopBase< BlockT, LoopT >::getHeader(), llvm::PHINode::getIncomingBlock(), llvm::PHINode::getIncomingValue(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::LoopInfoBase< BlockT, LoopT >::getLoopFor(), llvm::LoopBase< BlockT, LoopT >::getLoopLatch(), llvm::LoopBase< BlockT, LoopT >::getLoopPreheader(), llvm::BasicBlock::getModule(), llvm::Value::getName(), llvm::DominatorTreeBase< NodeT, IsPostDom >::getNode(), llvm::PHINode::getNumIncomingValues(), llvm::BasicBlock::getParent(), llvm::BranchInst::getSuccessor(), llvm::BasicBlock::getTerminator(), llvm::SCEV::getType(), llvm::Value::getType(), llvm::LoopBase< BlockT, LoopT >::getUniqueNonLatchExitBlocks(), I, llvm::SCEVExpander::isHighCostExpansion(), llvm::Type::isIntegerTy(), llvm::Loop::isLoopSimplifyForm(), isPowerOf2_32(), llvm::BranchInst::isUnconditional(), LLVM_DEBUG, Log2_32(), llvm::ValueMap< KeyT, ValueT, Config >::lookup(), llvm::LoopBlocksDFS::perform(), predecessors(), llvm::SmallVectorTemplateBase< T >::push_back(), RemapInstruction(), RF_IgnoreMissingLocals, RF_NoModuleLevelChanges, llvm::BranchInst::setCondition(), llvm::Instruction::setDebugLoc(), llvm::Value::setName(), llvm::SmallVectorBase::size(), llvm::iplist_impl< IntrusiveListT, TraitsT >::splice(), SplitBlock(), SplitBlockPredecessors(), SplitEdge(), successors(), Unmodified, UnrollLoop(), and llvm::DominatorTreeBase< NodeT, IsPostDom >::verify().
Referenced by UnrollAndJamLoop(), and UnrollLoop().
|
inline |
Definition at line 25 of file CodeGenCWrappers.h.
References llvm::CodeModel::Kernel, llvm::CodeModel::Large, LLVM_FALLTHROUGH, LLVMCodeModelDefault, LLVMCodeModelJITDefault, LLVMCodeModelKernel, LLVMCodeModelLarge, LLVMCodeModelMedium, LLVMCodeModelSmall, LLVMCodeModelTiny, llvm::CodeModel::Medium, None, llvm::CodeModel::Small, and llvm::CodeModel::Tiny.
|
inline |
Definition at line 145 of file Metadata.h.
|
inline |
Definition at line 204 of file Attributes.h.
References llvm::Attribute::fromRawPointer().
Referenced by LLVMABIAlignmentOfType(), LLVMABISizeOfType(), LLVMAddAddDiscriminatorsPass(), LLVMAddAggressiveDCEPass(), LLVMAddAggressiveInstCombinerPass(), LLVMAddAlias(), LLVMAddAlignmentFromAssumptionsPass(), LLVMAddAlwaysInlinerPass(), LLVMAddAnalysisPasses(), LLVMAddArgumentPromotionPass(), LLVMAddAttributeAtIndex(), LLVMAddBasicAliasAnalysisPass(), LLVMAddBitTrackingDCEPass(), LLVMAddCalledValuePropagationPass(), LLVMAddCallSiteAttribute(), LLVMAddCase(), LLVMAddCFGSimplificationPass(), LLVMAddClause(), LLVMAddConstantMergePass(), LLVMAddConstantPropagationPass(), LLVMAddCoroCleanupPass(), LLVMAddCoroEarlyPass(), LLVMAddCoroElidePass(), LLVMAddCoroSplitPass(), LLVMAddCorrelatedValuePropagationPass(), LLVMAddDCEPass(), LLVMAddDeadArgEliminationPass(), LLVMAddDeadStoreEliminationPass(), LLVMAddDemoteMemoryToRegisterPass(), LLVMAddDestination(), LLVMAddEarlyCSEMemSSAPass(), LLVMAddEarlyCSEPass(), LLVMAddFunction(), LLVMAddFunctionAttrsPass(), LLVMAddFunctionInliningPass(), LLVMAddGlobal(), LLVMAddGlobalDCEPass(), LLVMAddGlobalIFunc(), LLVMAddGlobalInAddressSpace(), LLVMAddGlobalMapping(), LLVMAddGlobalOptimizerPass(), LLVMAddGVNHoistLegacyPass(), LLVMAddGVNPass(), LLVMAddHandler(), LLVMAddIncoming(), LLVMAddIndVarSimplifyPass(), LLVMAddInstructionCombiningPass(), LLVMAddInternalizePass(), LLVMAddInternalizePassWithMustPreservePredicate(), LLVMAddIPConstantPropagationPass(), LLVMAddIPSCCPPass(), LLVMAddJumpThreadingPass(), LLVMAddLICMPass(), LLVMAddLoopDeletionPass(), LLVMAddLoopIdiomPass(), LLVMAddLoopRerollPass(), LLVMAddLoopRotatePass(), LLVMAddLoopSimplifyCFGPass(), LLVMAddLoopSinkPass(), LLVMAddLoopUnrollAndJamPass(), LLVMAddLoopUnrollPass(), LLVMAddLoopUnswitchPass(), LLVMAddLoopVectorizePass(), LLVMAddLowerAtomicPass(), LLVMAddLowerConstantIntrinsicsPass(), LLVMAddLowerExpectIntrinsicPass(), LLVMAddLowerSwitchPass(), LLVMAddMemCpyOptPass(), LLVMAddMergedLoadStoreMotionPass(), LLVMAddMergeFunctionsPass(), LLVMAddModule(), LLVMAddModuleFlag(), LLVMAddNamedMetadataOperand(), LLVMAddNewGVNPass(), LLVMAddPartiallyInlineLibCallsPass(), LLVMAddPromoteMemoryToRegisterPass(), LLVMAddPruneEHPass(), LLVMAddReassociatePass(), LLVMAddScalarizerPass(), LLVMAddScalarReplAggregatesPass(), LLVMAddScalarReplAggregatesPassSSA(), LLVMAddScalarReplAggregatesPassWithThreshold(), LLVMAddSCCPPass(), LLVMAddScopedNoAliasAAPass(), LLVMAddSLPVectorizePass(), LLVMAddStripDeadPrototypesPass(), LLVMAddStripSymbolsPass(), LLVMAddTailCallEliminationPass(), LLVMAddTargetLibraryInfo(), LLVMAddTypeBasedAliasAnalysisPass(), LLVMAddUnifyFunctionExitNodesPass(), LLVMAddVerifierPass(), LLVMAlignOf(), LLVMAppendBasicBlockInContext(), LLVMAppendExistingBasicBlock(), LLVMAppendModuleInlineAsm(), LLVMArrayType(), LLVMBasicBlockAsValue(), LLVMBinaryCopyMemoryBuffer(), LLVMBinaryGetType(), LLVMBlockAddress(), LLVMBuildAdd(), LLVMBuildAddrSpaceCast(), LLVMBuildAggregateRet(), LLVMBuildAlloca(), LLVMBuildAnd(), LLVMBuildArrayAlloca(), LLVMBuildArrayMalloc(), LLVMBuildAShr(), LLVMBuildAtomicCmpXchg(), LLVMBuildAtomicRMW(), LLVMBuildBinOp(), LLVMBuildBitCast(), LLVMBuildBr(), LLVMBuildCall(), LLVMBuildCall2(), LLVMBuildCast(), LLVMBuildCatchPad(), LLVMBuildCatchRet(), LLVMBuildCatchSwitch(), LLVMBuildCleanupPad(), LLVMBuildCleanupRet(), LLVMBuildCondBr(), LLVMBuilderGetDefaultFPMathTag(), LLVMBuilderSetDefaultFPMathTag(), LLVMBuildExactSDiv(), LLVMBuildExactUDiv(), LLVMBuildExtractElement(), LLVMBuildExtractValue(), LLVMBuildFAdd(), LLVMBuildFCmp(), LLVMBuildFDiv(), LLVMBuildFence(), LLVMBuildFMul(), LLVMBuildFNeg(), LLVMBuildFPCast(), LLVMBuildFPExt(), LLVMBuildFPToSI(), LLVMBuildFPToUI(), LLVMBuildFPTrunc(), LLVMBuildFree(), LLVMBuildFreeze(), LLVMBuildFRem(), LLVMBuildFSub(), LLVMBuildGEP(), LLVMBuildGEP2(), LLVMBuildGlobalString(), LLVMBuildGlobalStringPtr(), LLVMBuildICmp(), LLVMBuildInBoundsGEP(), LLVMBuildInBoundsGEP2(), LLVMBuildIndirectBr(), LLVMBuildInsertElement(), LLVMBuildInsertValue(), LLVMBuildIntCast(), LLVMBuildIntCast2(), LLVMBuildIntToPtr(), LLVMBuildInvoke(), LLVMBuildInvoke2(), LLVMBuildIsNotNull(), LLVMBuildIsNull(), LLVMBuildLandingPad(), LLVMBuildLoad(), LLVMBuildLoad2(), LLVMBuildLShr(), LLVMBuildMalloc(), LLVMBuildMemCpy(), LLVMBuildMemMove(), LLVMBuildMemSet(), LLVMBuildMul(), LLVMBuildNeg(), LLVMBuildNot(), LLVMBuildNSWAdd(), LLVMBuildNSWMul(), LLVMBuildNSWNeg(), LLVMBuildNSWSub(), LLVMBuildNUWAdd(), LLVMBuildNUWMul(), LLVMBuildNUWNeg(), LLVMBuildNUWSub(), LLVMBuildOr(), LLVMBuildPhi(), LLVMBuildPointerCast(), LLVMBuildPtrDiff(), LLVMBuildPtrToInt(), LLVMBuildResume(), LLVMBuildRet(), LLVMBuildRetVoid(), LLVMBuildSDiv(), LLVMBuildSelect(), LLVMBuildSExt(), LLVMBuildSExtOrBitCast(), LLVMBuildShl(), LLVMBuildShuffleVector(), LLVMBuildSIToFP(), LLVMBuildSRem(), LLVMBuildStore(), LLVMBuildStructGEP(), LLVMBuildStructGEP2(), LLVMBuildSub(), LLVMBuildSwitch(), LLVMBuildTrunc(), LLVMBuildTruncOrBitCast(), LLVMBuildUDiv(), LLVMBuildUIToFP(), LLVMBuildUnreachable(), LLVMBuildURem(), LLVMBuildVAArg(), LLVMBuildXor(), LLVMBuildZExt(), LLVMBuildZExtOrBitCast(), LLVMByteOrder(), LLVMCallFrameAlignmentOfType(), LLVMClearInsertionPosition(), LLVMCloneModule(), LLVMConstAddrSpaceCast(), LLVMConstAllOnes(), LLVMConstArray(), LLVMConstBitCast(), LLVMConstFPCast(), LLVMConstFPExt(), LLVMConstFPToSI(), LLVMConstFPToUI(), LLVMConstFPTrunc(), LLVMConstInlineAsm(), LLVMConstIntCast(), LLVMConstIntToPtr(), LLVMConstNamedStruct(), LLVMConstNull(), LLVMConstPointerCast(), LLVMConstPtrToInt(), LLVMConstReal(), LLVMConstRealOfString(), LLVMConstRealOfStringAndSize(), LLVMConstSExt(), LLVMConstSExtOrBitCast(), LLVMConstSIToFP(), LLVMConstStringInContext(), LLVMConstStructInContext(), LLVMConstTrunc(), LLVMConstTruncOrBitCast(), LLVMConstUIToFP(), LLVMConstZExt(), LLVMConstZExtOrBitCast(), LLVMContextDispose(), LLVMContextGetDiagnosticContext(), LLVMContextGetDiagnosticHandler(), LLVMContextSetDiagnosticHandler(), LLVMContextSetDiscardValueNames(), LLVMContextSetYieldCallback(), LLVMContextShouldDiscardValueNames(), LLVMCopyModuleFlagsMetadata(), LLVMCopyStringRepOfTargetData(), LLVMCreateBasicBlockInContext(), LLVMCreateBinary(), LLVMCreateBuilderInContext(), LLVMCreateDIBuilder(), LLVMCreateDIBuilderDisallowUnresolved(), LLVMCreateEnumAttribute(), LLVMCreateExecutionEngineForModule(), LLVMCreateFunctionPassManagerForModule(), LLVMCreateGenericValueOfFloat(), LLVMCreateInterpreterForModule(), LLVMCreateJITCompilerForModule(), LLVMCreateMCJITCompilerForModule(), LLVMCreateObjectFile(), LLVMCreateStringAttribute(), LLVMCreateTargetDataLayout(), LLVMCreateTargetMachine(), LLVMDeleteBasicBlock(), LLVMDIBuilderCreateArrayType(), LLVMDIBuilderCreateArtificialType(), LLVMDIBuilderCreateAutoVariable(), LLVMDIBuilderCreateBasicType(), LLVMDIBuilderCreateBitFieldMemberType(), LLVMDIBuilderCreateClassType(), LLVMDIBuilderCreateCompileUnit(), LLVMDIBuilderCreateConstantValueExpression(), LLVMDIBuilderCreateDebugLocation(), LLVMDIBuilderCreateEnumerationType(), LLVMDIBuilderCreateEnumerator(), LLVMDIBuilderCreateExpression(), LLVMDIBuilderCreateFile(), LLVMDIBuilderCreateForwardDecl(), LLVMDIBuilderCreateFunction(), LLVMDIBuilderCreateGlobalVariableExpression(), LLVMDIBuilderCreateImportedDeclaration(), LLVMDIBuilderCreateImportedModuleFromAlias(), LLVMDIBuilderCreateImportedModuleFromModule(), LLVMDIBuilderCreateImportedModuleFromNamespace(), LLVMDIBuilderCreateInheritance(), LLVMDIBuilderCreateLexicalBlock(), LLVMDIBuilderCreateLexicalBlockFile(), LLVMDIBuilderCreateMacro(), LLVMDIBuilderCreateMemberPointerType(), LLVMDIBuilderCreateMemberType(), LLVMDIBuilderCreateModule(), LLVMDIBuilderCreateNameSpace(), LLVMDIBuilderCreateNullPtrType(), LLVMDIBuilderCreateObjCIVar(), LLVMDIBuilderCreateObjCProperty(), LLVMDIBuilderCreateObjectPointerType(), LLVMDIBuilderCreateParameterVariable(), LLVMDIBuilderCreatePointerType(), LLVMDIBuilderCreateQualifiedType(), LLVMDIBuilderCreateReferenceType(), LLVMDIBuilderCreateReplaceableCompositeType(), LLVMDIBuilderCreateStaticMemberType(), LLVMDIBuilderCreateStructType(), LLVMDIBuilderCreateSubroutineType(), LLVMDIBuilderCreateTempGlobalVariableFwdDecl(), LLVMDIBuilderCreateTempMacroFile(), LLVMDIBuilderCreateTypedef(), LLVMDIBuilderCreateUnionType(), LLVMDIBuilderCreateUnspecifiedType(), LLVMDIBuilderCreateVectorType(), LLVMDIBuilderFinalize(), LLVMDIBuilderGetOrCreateArray(), LLVMDIBuilderGetOrCreateSubrange(), LLVMDIBuilderGetOrCreateTypeArray(), LLVMDIBuilderInsertDbgValueAtEnd(), LLVMDIBuilderInsertDbgValueBefore(), LLVMDIBuilderInsertDeclareAtEnd(), LLVMDIBuilderInsertDeclareBefore(), LLVMDisposeBinary(), LLVMDisposeBuilder(), LLVMDisposeDIBuilder(), LLVMDisposeExecutionEngine(), LLVMDisposeGenericValue(), LLVMDisposeMCJITMemoryManager(), LLVMDisposeMemoryBuffer(), LLVMDisposeModule(), LLVMDisposeModuleProvider(), LLVMDisposeObjectFile(), LLVMDisposePassManager(), LLVMDisposeRelocationIterator(), LLVMDisposeSectionIterator(), LLVMDisposeSymbolIterator(), LLVMDisposeTargetData(), LLVMDisposeTargetMachine(), LLVMDoubleTypeInContext(), LLVMDumpModule(), LLVMDumpType(), LLVMDumpValue(), LLVMElementAtOffset(), LLVMFindFunction(), LLVMFloatTypeInContext(), LLVMFP128TypeInContext(), LLVMFunctionType(), LLVMGenericValueIntWidth(), LLVMGenericValueToFloat(), LLVMGenericValueToInt(), LLVMGenericValueToPointer(), LLVMGetBasicBlockName(), LLVMGetBasicBlockParent(), LLVMGetBasicBlockTerminator(), LLVMGetBitcodeModuleInContext(), LLVMGetBitcodeModuleInContext2(), LLVMGetBufferSize(), LLVMGetBufferStart(), LLVMGetComdatSelectionKind(), LLVMGetCurrentDebugLocation(), LLVMGetCurrentDebugLocation2(), LLVMGetDataLayoutStr(), LLVMGetDebugLocColumn(), LLVMGetDebugLocDirectory(), LLVMGetDebugLocFilename(), LLVMGetDebugLocLine(), LLVMGetDiagInfoDescription(), LLVMGetDiagInfoSeverity(), LLVMGetEnumAttributeKind(), LLVMGetEnumAttributeValue(), LLVMGetExecutionEngineTargetData(), LLVMGetExecutionEngineTargetMachine(), LLVMGetFCmpPredicate(), LLVMGetFirstFunction(), LLVMGetFirstGlobal(), LLVMGetFirstGlobalAlias(), LLVMGetFirstGlobalIFunc(), LLVMGetFirstInstruction(), LLVMGetFirstNamedMetadata(), LLVMGetFirstUse(), LLVMGetFunctionAddress(), LLVMGetGlobalValueAddress(), LLVMGetICmpPredicate(), LLVMGetIndices(), LLVMGetInsertBlock(), LLVMGetInstructionOpcode(), LLVMGetIntrinsicDeclaration(), LLVMGetIntrinsicID(), LLVMGetLastFunction(), LLVMGetLastGlobal(), LLVMGetLastGlobalAlias(), LLVMGetLastGlobalIFunc(), LLVMGetLastInstruction(), LLVMGetLastNamedMetadata(), LLVMGetMDKindIDInContext(), LLVMGetMDNodeNumOperands(), LLVMGetMDNodeOperands(), LLVMGetMDString(), LLVMGetMetadataKind(), LLVMGetModuleContext(), LLVMGetModuleDataLayout(), LLVMGetModuleDebugMetadataVersion(), LLVMGetModuleFlag(), LLVMGetModuleIdentifier(), LLVMGetModuleInlineAsm(), LLVMGetNamedFunction(), LLVMGetNamedGlobal(), LLVMGetNamedGlobalAlias(), LLVMGetNamedGlobalIFunc(), LLVMGetNamedMetadata(), LLVMGetNamedMetadataNumOperands(), LLVMGetNamedMetadataOperands(), LLVMGetNextBasicBlock(), LLVMGetNextTarget(), LLVMGetNextUse(), LLVMGetNumArgOperands(), LLVMGetNumContainedTypes(), LLVMGetNumIndices(), LLVMGetNumOperands(), LLVMGetOperand(), LLVMGetOperandUse(), LLVMGetOrInsertComdat(), LLVMGetOrInsertNamedMetadata(), LLVMGetPointerToGlobal(), LLVMGetPreviousBasicBlock(), LLVMGetRelocationOffset(), LLVMGetRelocations(), LLVMGetRelocationSymbol(), LLVMGetRelocationType(), LLVMGetRelocationTypeName(), LLVMGetSectionAddress(), LLVMGetSectionContainsSymbol(), LLVMGetSectionContents(), LLVMGetSectionName(), LLVMGetSections(), LLVMGetSectionSize(), LLVMGetSourceFileName(), LLVMGetStringAttributeKind(), LLVMGetStringAttributeValue(), LLVMGetSubtypes(), LLVMGetSymbolAddress(), LLVMGetSymbolName(), LLVMGetSymbols(), LLVMGetSymbolSize(), LLVMGetTarget(), LLVMGetTargetDescription(), LLVMGetTargetMachineCPU(), LLVMGetTargetMachineFeatureString(), LLVMGetTargetMachineTarget(), LLVMGetTargetMachineTriple(), LLVMGetTargetName(), LLVMGetTypeByName(), LLVMGetTypeContext(), LLVMGetTypeKind(), LLVMGetUndef(), LLVMGetUnwindDest(), LLVMGetUsedValue(), LLVMGetUser(), LLVMGetValueKind(), LLVMGetValueName(), LLVMGetValueName2(), LLVMGlobalCopyAllMetadata(), LLVMHalfTypeInContext(), LLVMInitializeAggressiveInstCombiner(), LLVMInitializeAnalysis(), LLVMInitializeCodeGen(), LLVMInitializeCore(), LLVMInitializeInstCombine(), LLVMInitializeInstrumentation(), LLVMInitializeIPA(), LLVMInitializeIPO(), LLVMInitializeObjCARCOpts(), LLVMInitializeScalarOpts(), LLVMInitializeTarget(), LLVMInitializeTransformUtils(), LLVMInitializeVectorization(), LLVMInsertBasicBlockInContext(), LLVMInsertExistingBasicBlockAfterInsertBlock(), LLVMInsertIntoBuilder(), LLVMInsertIntoBuilderWithName(), LLVMInstructionClone(), LLVMInt128TypeInContext(), LLVMInt16TypeInContext(), LLVMInt1TypeInContext(), LLVMInt32TypeInContext(), LLVMInt64TypeInContext(), LLVMInt8TypeInContext(), LLVMIntPtrType(), LLVMIntPtrTypeForAS(), LLVMIntPtrTypeForASInContext(), LLVMIntPtrTypeInContext(), LLVMIntrinsicCopyOverloadedName(), LLVMIntrinsicGetType(), LLVMIntTypeInContext(), LLVMIsAMDNode(), LLVMIsAMDString(), LLVMIsATerminatorInst(), LLVMIsConstant(), LLVMIsEnumAttribute(), LLVMIsNull(), LLVMIsRelocationIteratorAtEnd(), LLVMIsSectionIteratorAtEnd(), LLVMIsStringAttribute(), LLVMIsSymbolIteratorAtEnd(), LLVMIsUndef(), LLVMLabelTypeInContext(), LLVMLinkModules2(), LLVMMachOUniversalBinaryCopyObjectForArch(), LLVMMDNodeInContext(), LLVMMDNodeInContext2(), LLVMMDStringInContext(), LLVMMDStringInContext2(), LLVMMetadataAsValue(), LLVMMetadataTypeInContext(), LLVMModuleCreateWithNameInContext(), LLVMMoveBasicBlockAfter(), LLVMMoveBasicBlockBefore(), LLVMMoveToContainingSection(), LLVMMoveToNextRelocation(), LLVMMoveToNextSection(), LLVMMoveToNextSymbol(), LLVMObjectFileCopySectionIterator(), LLVMObjectFileCopySymbolIterator(), LLVMObjectFileIsSectionIteratorAtEnd(), LLVMObjectFileIsSymbolIteratorAtEnd(), LLVMOffsetOfElement(), LLVMOrcAddEagerlyCompiledIR(), LLVMOrcAddLazilyCompiledIR(), LLVMOrcAddObjectFile(), LLVMOrcCreateIndirectStub(), LLVMOrcCreateInstance(), LLVMOrcCreateLazyCompileCallback(), LLVMOrcDisposeInstance(), LLVMOrcGetErrorMsg(), LLVMOrcGetMangledSymbol(), LLVMOrcGetSymbolAddress(), LLVMOrcGetSymbolAddressIn(), LLVMOrcRegisterJITEventListener(), LLVMOrcRemoveModule(), LLVMOrcSetIndirectStubPointer(), LLVMOrcUnregisterJITEventListener(), LLVMParseBitcodeInContext(), LLVMParseBitcodeInContext2(), LLVMParseIRInContext(), LLVMPassManagerBuilderDispose(), LLVMPassManagerBuilderPopulateFunctionPassManager(), LLVMPassManagerBuilderPopulateLTOPassManager(), LLVMPassManagerBuilderPopulateModulePassManager(), LLVMPassManagerBuilderSetDisableUnrollLoops(), LLVMPassManagerBuilderSetOptLevel(), LLVMPassManagerBuilderSetSizeLevel(), LLVMPassManagerBuilderUseInlinerWithThreshold(), LLVMPointerSize(), LLVMPointerSizeForAS(), LLVMPointerType(), LLVMPositionBuilder(), LLVMPositionBuilderAtEnd(), LLVMPositionBuilderBefore(), LLVMPPCFP128TypeInContext(), LLVMPreferredAlignmentOfGlobal(), LLVMPreferredAlignmentOfType(), LLVMPrintModuleToFile(), LLVMPrintModuleToString(), LLVMPrintTypeToString(), LLVMPrintValueToString(), LLVMRemarkArgGetDebugLoc(), LLVMRemarkArgGetKey(), LLVMRemarkArgGetValue(), LLVMRemarkDebugLocGetSourceColumn(), LLVMRemarkDebugLocGetSourceFilePath(), LLVMRemarkDebugLocGetSourceLine(), LLVMRemarkEntryDispose(), LLVMRemarkEntryGetDebugLoc(), LLVMRemarkEntryGetFirstArg(), LLVMRemarkEntryGetFunctionName(), LLVMRemarkEntryGetHotness(), LLVMRemarkEntryGetNextArg(), LLVMRemarkEntryGetNumArgs(), LLVMRemarkEntryGetPassName(), LLVMRemarkEntryGetRemarkName(), LLVMRemarkEntryGetType(), LLVMRemarkParserDispose(), LLVMRemarkParserGetErrorMessage(), LLVMRemarkParserGetNext(), LLVMRemarkParserHasError(), LLVMRemarkStringGetData(), LLVMRemarkStringGetLen(), LLVMRemoveBasicBlockFromParent(), LLVMRemoveModule(), LLVMReplaceAllUsesWith(), LLVMRunFunction(), LLVMRunFunctionAsMain(), LLVMRunPassManager(), LLVMRunStaticConstructors(), LLVMRunStaticDestructors(), LLVMSetArgOperand(), LLVMSetComdat(), LLVMSetComdatSelectionKind(), LLVMSetCurrentDebugLocation(), LLVMSetCurrentDebugLocation2(), LLVMSetDataLayout(), LLVMSetInstDebugLocation(), LLVMSetModuleDataLayout(), LLVMSetModuleIdentifier(), LLVMSetModuleInlineAsm(), LLVMSetModuleInlineAsm2(), LLVMSetNormalDest(), LLVMSetOperand(), LLVMSetSourceFileName(), LLVMSetSuccessor(), LLVMSetTarget(), LLVMSetTargetMachineAsmVerbosity(), LLVMSetUnwindDest(), LLVMSetValueName(), LLVMSetValueName2(), LLVMSizeOf(), LLVMSizeOfTypeInBits(), LLVMStoreSizeOfType(), LLVMStripModuleDebugInfo(), LLVMStructCreateNamed(), LLVMStructSetBody(), LLVMStructTypeInContext(), LLVMTargetHasAsmBackend(), LLVMTargetHasJIT(), LLVMTargetHasTargetMachine(), LLVMTargetMachineEmit(), LLVMTemporaryMDNode(), LLVMTokenTypeInContext(), LLVMTypeIsSized(), LLVMTypeOf(), LLVMValueAsMetadata(), LLVMValueIsBasicBlock(), LLVMVectorType(), LLVMVerifyModule(), LLVMVoidTypeInContext(), LLVMWriteBitcodeToFD(), LLVMWriteBitcodeToFile(), LLVMWriteBitcodeToMemoryBuffer(), LLVMX86FP80TypeInContext(), and LLVMX86MMXTypeInContext().
|
inline |
Definition at line 318 of file LLVMContext.h.
|
inline |
|
inline |
Definition at line 575 of file DataLayout.h.
References P.
|
inline |
|
inline |
|
inline |
|
inline |
| LazyCallGraph::SCC & llvm::updateCGAndAnalysisManagerForFunctionPass | ( | LazyCallGraph & | G, |
| LazyCallGraph::SCC & | C, | ||
| LazyCallGraph::Node & | N, | ||
| CGSCCAnalysisManager & | AM, | ||
| CGSCCUpdateResult & | UR | ||
| ) |
Helper to update the call graph after running a function pass.
Function passes can only mutate the call graph in specific ways. This routine provides a helper that updates the call graph in those ways including returning whether any changes were made and populating a CG update result struct for the overall CGSCC walk.
Definition at line 426 of file CGSCCPassManager.cpp.
Referenced by llvm::InlinerPass::run(), and llvm::CGSCCToFunctionPassAdaptor< FunctionPassT >::run().
| void llvm::updateCompilerUsed | ( | Module & | TheModule, |
| const TargetMachine & | TM, | ||
| const StringSet<> & | AsmUndefinedRefs | ||
| ) |
Find all globals in TheModule that are referenced in AsmUndefinedRefs, as well as the user-supplied functions definitions that are also libcalls, and create or update the magic "llvm.compiler_used" global in TheModule.
Definition at line 122 of file UpdateCompilerUsed.cpp.
References appendToCompilerUsed().
Referenced by llvm::LTOCodeGenerator::compile().
| void llvm::updateDbgValueForSpill | ( | MachineInstr & | Orig, |
| int | FrameIndex | ||
| ) |
Update a DBG_VALUE whose value has been spilled to FrameIndex.
Useful when modifying an instruction in place while iterating over a basic block.
Definition at line 2098 of file MachineInstr.cpp.
References llvm::MachineOperand::ChangeToFrameIndex(), llvm::MachineOperand::ChangeToImmediate(), computeExprForSpill(), llvm::MachineInstr::getOperand(), and llvm::MachineOperand::setMetadata().
Referenced by BuildMI(), and isCoalescable().
| void llvm::updateIndexWPDForExports | ( | ModuleSummaryIndex & | Summary, |
| function_ref< bool(StringRef, ValueInfo)> | isExported, | ||
| std::map< ValueInfo, std::vector< VTableSlotSummary >> & | LocalWPDTargetsMap | ||
| ) |
Call after cross-module importing to update the recorded single impl devirt target names for any locals that were exported.
Definition at line 712 of file WholeProgramDevirt.cpp.
References assert(), llvm::tgtok::Bits, llvm::wholeprogramdevirt::TypeMemberInfo::Bits, llvm::SmallVectorImpl< T >::clear(), ClReadSummary, ClSummaryAction, ClWriteSummary, dyn_cast(), llvm::SmallVectorBase::empty(), llvm::Function::empty(), errorCodeToError(), errorOrToExpected(), Export, llvm::wholeprogramdevirt::VirtualCallTarget::Fn, llvm::ConstantExpr::getBitCast(), llvm::Module::getDataLayout(), llvm::MemoryBuffer::getFile(), llvm::Module::getGlobalList(), llvm::ModuleSummaryIndex::getGlobalNameForLocal(), llvm::GlobalVariable::getInitializer(), llvm::ModuleSummaryIndex::getModuleHash(), llvm::Value::getName(), getPointerAtOffset(), llvm::Value::getType(), llvm::DataLayout::getTypeAllocSize(), llvm::ModuleSummaryIndex::getTypeIdSummary(), llvm::Module::globals(), llvm::wholeprogramdevirt::VTableBits::GV, Import, llvm::tgtok::In, llvm::GlobalValue::isAvailableExternallyLinkage(), llvm::GlobalVariable::isConstant(), llvm::GlobalValueSummary::isLive(), llvm::GlobalValue::isLocalLinkage(), llvm::sys::fs::OF_Text, llvm::wholeprogramdevirt::TypeMemberInfo::Offset, P, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::reserve(), llvm::Constant::stripPointerCasts(), llvm::wholeprogramdevirt::VirtualCallTarget::TM, VI, llvm::AArch64CC::VS, and llvm::GlobalVarSummary::vTableFuncs().
Referenced by llvm::lto::createWriteIndexesThinBackend(), and llvm::ThinLTOCodeGenerator::run().
| void llvm::updateProfileCallee | ( | Function * | Callee, |
| int64_t | entryDelta, | ||
| const ValueMap< const Value *, WeakTrackingVH > * | VMap = nullptr |
||
| ) |
Updates profile information by adjusting the entry count by adding entryDelta then scaling callsite information by the new count divided by the old count.
VMap is used during inlinng to also update the new clone
Definition at line 1514 of file InlineFunction.cpp.
References llvm::ValueMap< KeyT, ValueT, Config >::count(), llvm::Function::ProfileCount::getCount(), llvm::Function::getEntryCount(), I, and llvm::Function::setEntryCount().
Referenced by createSampleProfileLoaderPass(), llvm::InlineFunctionInfo::reset(), and updateCallProfile().
| void llvm::UpgradeARCRuntime | ( | Module & | M | ) |
Convert calls to ARC runtime functions to intrinsic calls and upgrade the old retain release marker to new module flag format.
Definition at line 3881 of file AutoUpgrade.cpp.
References Arg, llvm::AMDGPU::HSAMD::Kernel::Key::Args, llvm::CastInst::castIsValid(), dyn_cast(), E, llvm::Instruction::eraseFromParent(), llvm::Function::eraseFromParent(), llvm::CallBase::getArgOperand(), llvm::CallBase::getCalledFunction(), llvm::Intrinsic::getDeclaration(), llvm::Module::getFunction(), llvm::Function::getFunctionType(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::Value::getName(), llvm::CallBase::getNumArgOperands(), llvm::Instruction::getParent(), llvm::Value::getType(), I, llvm::SmallVectorTemplateBase< T >::push_back(), llvm::Value::replaceAllUsesWith(), llvm::Value::setName(), llvm::CallInst::setTailCallKind(), UpgradeRetainReleaseMarker(), llvm::Value::use_empty(), llvm::Value::user_begin(), and llvm::Value::user_end().
This is an auto-upgrade for bitcast constant expression between pointers with different address spaces: the instruction is replaced by a pair ptrtoint+inttoptr.
Definition at line 3809 of file AutoUpgrade.cpp.
References Context, llvm::Value::getContext(), llvm::Type::getInt64Ty(), llvm::ConstantExpr::getIntToPtr(), llvm::Type::getPointerAddressSpace(), llvm::ConstantExpr::getPtrToInt(), llvm::Value::getType(), and llvm::Type::isPtrOrPtrVectorTy().
| Instruction * llvm::UpgradeBitCastInst | ( | unsigned | Opc, |
| Value * | V, | ||
| Type * | DestTy, | ||
| Instruction *& | Temp | ||
| ) |
This is an auto-upgrade for bitcast between pointers with different address spaces: the instruction is replaced by a pair ptrtoint+inttoptr.
Definition at line 3787 of file AutoUpgrade.cpp.
References Context, llvm::CastInst::Create(), llvm::Value::getContext(), llvm::Type::getInt64Ty(), llvm::Type::getPointerAddressSpace(), llvm::Value::getType(), and llvm::Type::isPtrOrPtrVectorTy().
| void llvm::UpgradeCallsToIntrinsic | ( | Function * | F | ) |
This is an auto-upgrade hook for any old intrinsic function syntaxes which need to have both the function updated as well as all calls updated to the new function.
This should only be run in a post-processing fashion so that it can update all calls to the old function.
Definition at line 3747 of file AutoUpgrade.cpp.
References assert(), llvm::Function::eraseFromParent(), UpgradeIntrinsicCall(), UpgradeIntrinsicFunction(), llvm::Value::user_begin(), and llvm::Value::user_end().
Upgrade the datalayout string by adding a section for address space pointers.
Definition at line 4160 of file AutoUpgrade.cpp.
References llvm::StringRef::contains(), Groups, llvm::Regex::match(), llvm::RISCVFenceField::R, llvm::StringRef::str(), and toStringRef().
Referenced by mayBeOldLoopAttachmentTag().
Check the debug info version number, if it is out-dated, drop the debug info.
Return true if module is modified.
Definition at line 3831 of file AutoUpgrade.cpp.
References DEBUG_METADATA_VERSION, llvm::LLVMContext::diagnose(), errs(), llvm::Module::getContext(), getDebugMetadataVersionFromModule(), Modified, report_fatal_error(), StripDebugInfo(), verifyModule(), and llvm::IndexedInstrProf::Version.
| void llvm::UpgradeFramePointerAttributes | ( | AttrBuilder & | B | ) |
Upgrade function attributes "no-frame-pointer-elim" and "no-frame-pointer-elim-non-leaf" to "frame-pointer".
Definition at line 4178 of file AutoUpgrade.cpp.
References llvm::AttrBuilder::addAttribute(), llvm::AttrBuilder::contains(), llvm::StringRef::empty(), I, llvm::AttrBuilder::removeAttribute(), and llvm::AttrBuilder::td_attrs().
Referenced by mayBeOldLoopAttachmentTag().
| GlobalVariable * llvm::UpgradeGlobalVariable | ( | GlobalVariable * | GV | ) |
This checks for global variables which should be upgraded.
It it requires upgrading, returns a pointer to the upgraded variable.
Definition at line 859 of file AutoUpgrade.cpp.
References C, dyn_cast(), llvm::StructType::get(), llvm::ArrayType::get(), llvm::ConstantArray::get(), llvm::ConstantStruct::get(), llvm::Value::getContext(), llvm::StructType::getElementType(), llvm::SequentialType::getElementType(), llvm::GlobalVariable::getInitializer(), llvm::IRBuilderBase::getInt8PtrTy(), llvm::GlobalValue::getLinkage(), llvm::Value::getName(), llvm::Constant::getNullValue(), llvm::StructType::getNumElements(), llvm::Value::getType(), llvm::GlobalValue::getValueType(), llvm::GlobalVariable::hasInitializer(), llvm::Value::hasName(), and N.
| void llvm::UpgradeInlineAsmString | ( | std::string * | AsmStr | ) |
Upgrade comment in call to inline asm that represents an objc retain release marker.
Definition at line 1656 of file AutoUpgrade.cpp.
Upgrade the loop attachment metadata node.
Definition at line 4144 of file AutoUpgrade.cpp.
References dyn_cast(), llvm::MDTuple::get(), isOldLoopArgument(), N, none_of(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::SmallVectorImpl< T >::reserve(), and upgradeLoopArgument().
Referenced by mayBeOldLoopAttachmentTag().
This is the complement to the above, replacing a specific call to an intrinsic function with a call to the specified new function.
Upgrade a call to an old intrinsic.
All argument and return casting must be provided to seamlessly integrate with existing context.
Definition at line 1668 of file AutoUpgrade.cpp.
References assert(), C, F(), llvm::ConstantInt::get(), llvm::ConstantAsMetadata::get(), llvm::CallBase::getCalledFunction(), llvm::Value::getContext(), llvm::Type::getInt32Ty(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::Value::getName(), llvm::Instruction::getParent(), llvm::GlobalValue::getParent(), Name, llvm::SmallVectorTemplateBase< T >::push_back(), llvm::IRBuilderBase::SetInsertPoint(), llvm::StringRef::startswith(), and llvm::StringRef::substr().
Referenced by UpgradeCallsToIntrinsic().
This is a more granular function that simply checks an intrinsic function for upgrading, and returns true if it requires upgrading.
It may return null in NewFn if the all calls to the original intrinsic function should be transformed to non-function-call instructions.
Definition at line 846 of file AutoUpgrade.cpp.
References assert(), llvm::Intrinsic::getAttributes(), llvm::Function::getContext(), llvm::Function::getIntrinsicID(), llvm::Function::setAttributes(), and UpgradeIntrinsicFunction1().
Referenced by UpgradeCallsToIntrinsic().
This checks for module flags which should be upgraded.
It returns true if module is modified.
Definition at line 4002 of file AutoUpgrade.cpp.
References llvm::Module::addModuleFlag(), E, llvm::Module::Error, llvm::ConstantInt::get(), llvm::ConstantAsMetadata::get(), llvm::MDString::get(), llvm::MDNode::get(), llvm::Module::getContext(), llvm::Type::getInt32Ty(), llvm::Module::getModuleFlagsMetadata(), llvm::MDNode::getNumOperands(), llvm::NamedMDNode::getNumOperands(), llvm::MDNode::getOperand(), llvm::NamedMDNode::getOperand(), llvm::MDString::getString(), I, Int32Ty, llvm::Module::Max, llvm::Module::Override, llvm::NamedMDNode::setOperand(), and llvm::SmallVectorBase::size().
| void llvm::UpgradeSectionAttributes | ( | Module & | M | ) |
Definition at line 4069 of file AutoUpgrade.cpp.
References llvm::Module::globals(), llvm::ARMBuildAttrs::Section, llvm::StringRef::startswith(), llvm::raw_svector_ostream::str(), and llvm::StringRef::substr().
If the given TBAA tag uses the scalar TBAA format, create a new node corresponding to the upgrade to the struct-path aware TBAA format.
Otherwise return the TBAANode itself.
Definition at line 3765 of file AutoUpgrade.cpp.
References Context, llvm::ConstantAsMetadata::get(), llvm::MDNode::get(), llvm::MDNode::getContext(), llvm::Type::getInt64Ty(), llvm::Constant::getNullValue(), llvm::MDNode::getNumOperands(), and llvm::MDNode::getOperand().
| auto llvm::upper_bound | ( | R && | Range, |
| T && | Value | ||
| ) | -> decltype(adl_begin(Range)) |
Provide wrappers to std::upper_bound which take ranges instead of having to pass begin/end explicitly.
Definition at line 1293 of file STLExtras.h.
References adl_begin(), adl_end(), and upper_bound().
Referenced by llvm::pdb::UDTLayoutBase::addChildToLayout(), llvm::DWARFUnitVector::addUnit(), llvm::codeview::LazyRandomTypeCollection::capacity(), llvm::LiveRange::findIndexesLiveAt(), llvm::StructLayout::getElementContainingOffset(), llvm::symbolize::SymbolizableObjectFile::getModulePreferredBase(), llvm::MemoryDependenceResults::getNonLocalCallDependency(), llvm::MemoryDependenceResults::getNonLocalPointerDependency(), llvm::DWARFUnitVector::getUnitForIndexEntry(), llvm::DWARFUnitVector::getUnitForOffset(), llvm::gsym::AddressRanges::insert(), llvm::CoalescerPair::isCoalescable(), isDebug(), llvm::DWARFDebugLine::LineTable::lookupAddress(), llvm::DWARFDebugLine::LineTable::lookupAddressRange(), llvm::LiveRange::overlapsFrom(), llvm::DWARFDebugLine::LineTable::parse(), SortNonLocalDepInfoCache(), and llvm::object::ELFFile< ELFT >::toMappedAddr().
| auto llvm::upper_bound | ( | R && | Range, |
| T && | Value, | ||
| Compare | C | ||
| ) | -> decltype(adl_begin(Range)) |
Definition at line 1299 of file STLExtras.h.
References adl_begin(), adl_end(), and C.
Referenced by upper_bound().
|
inline |
Definition at line 1250 of file MemorySSA.h.
References make_range(), upward_defs_begin(), and upward_defs_end().
|
inline |
Definition at line 1243 of file MemorySSA.h.
Referenced by upward_defs().
|
inline |
Definition at line 1247 of file MemorySSA.h.
Referenced by upward_defs().
| cl::opt<bool> llvm::UseSegmentSetForPhysRegs | ( | "use-segment-set-for-physregs" | , |
| cl::Hidden | , | ||
| cl::init(true) | , | ||
| cl::desc("Use segment set for the computation of the live ranges of physregs.") | |||
| ) |
Definition at line 124 of file StringExtras.h.
References llvm::sys::path::end(), hexdigit(), Mod, and X.
Referenced by llvm::HexagonPacketizerList::endPacket(), llvm::VLIWPacketizerList::endPacket(), llvm::yaml::escape(), llvm::object::ELFFile< ELFT >::getDynamicTagAsString(), makeCombineInst(), smallData(), toString(), and llvm::codeview::TypeRecordMapping::visitTypeBegin().
Definition at line 223 of file StringExtras.h.
References llvm::sys::path::end().
Referenced by AddAliasScopeMetadata(), llvm::lto::Config::addSaveTemps(), createShadowStackGCLoweringPass(), createThreadSanitizerLegacyPassPass(), llvm::NVPTXAsmPrinter::doFinalization(), doPromotion(), llvm::ModuleSummaryIndex::dumpSCCs(), llvm::AArch64SysReg::genericRegisterString(), llvm::BitsRecTy::getAsString(), llvm::Attribute::getAsString(), llvm::VarBitInit::getAsString(), llvm::VarListElementInit::getAsString(), getCopyDeclaration(), llvm::EVT::getEVTString(), llvm::ModuleSummaryIndex::getGlobalNameForLocal(), getMangledTypeStr(), llvm::RecordKeeper::getNewAnonymousName(), llvm::SDNode::getOperationName(), llvm::SparcTargetLowering::getRegForInlineAsmConstraint(), llvm::NumericSubstitution::getResult(), llvm::TargetLoweringObjectFileWasm::getStaticCtorSection(), getStaticStructorSection(), llvm::object::MachOObjectFile::getVersionString(), INITIALIZE_PASS(), llvm::MCObjectFileInfo::InitMCObjectFileInfo(), itostr(), makeCombineInst(), matchSVEPredicateVectorRegName(), llvm::yaml::CustomMappingTraits< std::map< std::vector< uint64_t >, WholeProgramDevirtResolution::ByArg > >::output(), llvm::yaml::CustomMappingTraits< std::map< uint64_t, WholeProgramDevirtResolution > >::output(), llvm::yaml::CustomMappingTraits< GlobalValueSummaryMapTy >::output(), llvm::WebAssemblyInstPrinter::printInst(), PrintStatistics(), llvm::WebAssemblyAsmPrinter::regToString(), selectELFSectionForGlobal(), llvm::TargetLoweringObjectFileXCOFF::SelectSectionForGlobal(), llvm::lto::setupOptimizationRemarks(), and splitGlobal().
| void llvm::valTypesFromMVTs | ( | const ArrayRef< MVT > & | In, |
| SmallVectorImpl< wasm::ValType > & | Out | ||
| ) |
Definition at line 68 of file WebAssemblyMachineFunctionInfo.cpp.
References llvm::SmallVectorTemplateBase< T >::push_back(), and llvm::WebAssembly::toValType().
Referenced by llvm::WebAssemblyAsmPrinter::EmitFunctionBodyStart(), getFunctionReturns(), llvm::WebAssemblyFunctionInfo::setCFGStackified(), and signatureFromMVTs().
| detail::ValueIsMatcher<InnerMatcher> llvm::ValueIs | ( | const InnerMatcher & | ValueMatcher | ) |
Matches an llvm::Optional<T> with a value that conforms to an inner matcher.
To match llvm::None you could use Eq(llvm::None).
Definition at line 102 of file SupportHelpers.h.
Definition at line 41 of file ASanStackFrameLayout.cpp.
References alignTo(), and max().
Referenced by ComputeASanStackFrameLayout().
Definition at line 528 of file ARMBaseInstrInfo.h.
Referenced by findVCMPToFoldIntoVPST().
Definition at line 581 of file ARMBaseInstrInfo.h.
References llvm_unreachable.
|
inlinestatic |
Definition at line 69 of file VE.h.
References llvm::VECC::CC_AF, llvm::VECC::CC_AT, llvm::VECC::CC_EQ, llvm::VECC::CC_EQNAN, llvm::VECC::CC_G, llvm::VECC::CC_GE, llvm::VECC::CC_GENAN, llvm::VECC::CC_GNAN, llvm::VECC::CC_IEQ, llvm::VECC::CC_IG, llvm::VECC::CC_IGE, llvm::VECC::CC_IL, llvm::VECC::CC_ILE, llvm::VECC::CC_INE, llvm::VECC::CC_L, llvm::VECC::CC_LE, llvm::VECC::CC_LENAN, llvm::VECC::CC_LNAN, llvm::VECC::CC_NAN, llvm::VECC::CC_NE, llvm::VECC::CC_NENAN, llvm::VECC::CC_NUM, and llvm_unreachable.
Referenced by llvm::VEInstPrinter::printCCOperand().
| bool llvm::vectorizeBasicBlock | ( | Pass * | P, |
| BasicBlock & | BB, | ||
| const VectorizeConfig & | C = VectorizeConfig() |
||
| ) |
Vectorize the BasicBlock.
| BB | The BasicBlock to be vectorized |
| P | The current running pass, should require AliasAnalysis and ScalarEvolution. After the vectorization, AliasAnalysis, ScalarEvolution and CFG are preserved. |
| bool llvm::verify | ( | const TargetRegisterInfo & | TRI | ) | const |
Check that information hold by this instance make sense for the given TRI.
Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), llvm::AArch64RegisterBankInfo::AArch64RegisterBankInfo(), llvm::ARMLegalizerInfo::ARMLegalizerInfo(), llvm::VerifierSupport::DebugInfoCheckFailed(), llvm::DWARFContext::dump(), llvm::LiveRange::findIndexesLiveAt(), llvm::LiveRange::flushSegmentSet(), llvm::MachineFunction::getNumBlockIDs(), llvm::ScalarEvolution::getSignedRangeMax(), llvm::LazyCallGraph::RefSCC::insertIncomingRefEdge(), llvm::LazyCallGraph::RefSCC::insertInternalRefEdge(), llvm::LazyCallGraph::RefSCC::insertOutgoingEdge(), llvm::LazyCallGraph::RefSCC::insertTrivialCallEdge(), llvm::LazyCallGraph::RefSCC::insertTrivialRefEdge(), llvm::IRPosition::IRPosition(), llvm::LoopInfoBase< BasicBlock, Loop >::isNotAlreadyContainedIn(), llvm::LiveRange::join(), llvm::MipsLegalizerInfo::MipsLegalizerInfo(), llvm::LiveInterval::operator<(), llvm::LazyCallGraph::RefSCC::removeInternalRefEdge(), llvm::LazyCallGraph::RefSCC::removeOutgoingEdge(), llvm::LazyCallGraph::RefSCC::replaceNodeFunction(), llvm::LazyCallGraph::RefSCC::switchInternalEdgeToCall(), llvm::LazyCallGraph::RefSCC::switchInternalEdgeToRef(), llvm::LazyCallGraph::RefSCC::switchOutgoingEdgeToCall(), llvm::LazyCallGraph::RefSCC::switchOutgoingEdgeToRef(), and llvm::LazyCallGraph::RefSCC::switchTrivialInternalEdgeToRef().
| bool llvm::verifyFunction | ( | const Function & | F, |
| raw_ostream * | OS = nullptr |
||
| ) |
Check a function for errors, useful for use when debugging a pass.
If there are no errors, the function returns false. If an error is found, a message describing the error is written to OS (if non-null) and true is returned.
Definition at line 5095 of file Verifier.cpp.
References llvm::GlobalValue::getParent(), and Verifier.
Referenced by llvm::CodeExtractor::extractCodeRegion(), llvm::ScalarEvolution::isLoopBackedgeGuardedByCond(), llvm::ScalarEvolution::isLoopEntryGuardedByCond(), isNotExclusivelyConstantDerived(), isPromotedResultSafe(), LLVMVerifyFunction(), postSplitCleanup(), llvm::LoopVectorizePass::processLoop(), processLoopInVPlanNativePath(), llvm::VerifierAnalysis::run(), llvm::SLPVectorizerPass::runImpl(), llvm::TBAAVerifier::TBAAVerifier(), and Verify().
|
static |
Definition at line 1159 of file X86IntrinsicsInfo.h.
References assert(), llvm::sys::path::begin(), and llvm::sys::path::end().
Referenced by llvm::X86TargetLowering::X86TargetLowering().
| bool llvm::verifyModule | ( | const Module & | M, |
| raw_ostream * | OS = nullptr, |
||
| bool * | BrokenDebugInfo = nullptr |
||
| ) |
Check a module for errors.
If there are no errors, the function returns false. If an error is found, a message describing the error is written to OS (if non-null) and true is returned.
Definition at line 5106 of file Verifier.cpp.
References llvm::AMDGPU::HSAMD::Kernel::Key::Args, llvm::VerifierSupport::Broken, dbgs(), errs(), llvm::Value::getName(), llvm::PassRegistry::getPassRegistry(), initializeVerifierLegacyPassPass(), llvm::GlobalValue::isDeclaration(), llvm::VerifierSupport::M, report_fatal_error(), runOnFunction(), llvm::AnalysisUsage::setPreservesAll(), and Verifier.
Referenced by llvm::LTOCodeGenerator::compile(), LLVMVerifyModule(), parseAndVerify(), llvm::VerifierAnalysis::run(), runAttributorOnModule(), llvm::TBAAVerifier::TBAAVerifier(), and UpgradeDebugInfo().
| bool llvm::verifyModule | ( | bool & | BrokenDebugInfo, |
| const Module & | M, | ||
| raw_ostream * | OS | ||
| ) |
Check a module for errors, but report debug info errors separately.
Otherwise behaves as the normal verifyModule. Debug info errors can be "recovered" from by stripping the debug info.
| void llvm::verifySafepointIR | ( | Function & | F | ) |
Run the safepoint verifier over a single function. Crashes on failure.
Definition at line 237 of file SafepointIRVerifier.cpp.
References pass.
| cl::opt<bool> llvm::VerifyScheduling | ( | "verify-misched" | , |
| cl::Hidden | , | ||
| cl::desc("Verify machine instrs before and after machine scheduling") | |||
| ) |
| void llvm::viewRegion | ( | llvm::RegionInfo * | RI | ) |
Open a viewer to display the GraphViz vizualization of the analysis result.
Practical to call in the debugger. Includes the instructions in each BasicBlock.
| RI | The analysis to display. |
Definition at line 256 of file RegionPrinter.cpp.
References viewRegionInfo().
Referenced by llvm::RegionInfo::view().
| void llvm::viewRegion | ( | const llvm::Function * | F | ) |
Analyze the regions of a function and open its GraphViz visualization in a viewer.
Useful to call in the debugger. Includes the instructions in each BasicBlock. The result of a new analysis may differ from the RegionInfo the pass manager currently holds.
| F | Function to analyze. |
Definition at line 258 of file RegionPrinter.cpp.
References createRegionViewerPass(), and invokeFunctionPass().
| void llvm::viewRegionOnly | ( | llvm::RegionInfo * | RI | ) |
Open a viewer to display the GraphViz vizualization of the analysis result.
Useful to call in the debugger. Shows only the BasicBlock names without their instructions.
| RI | The analysis to display. |
Definition at line 262 of file RegionPrinter.cpp.
References viewRegionInfo().
Referenced by llvm::RegionInfo::viewOnly().
| void llvm::viewRegionOnly | ( | const llvm::Function * | F | ) |
Analyze the regions of a function and open its GraphViz visualization in a viewer.
Useful to call in the debugger. Shows only the BasicBlock names without their instructions. The result of a new analysis may differ from the RegionInfo the pass manager currently holds.
| F | Function to analyze. |
Definition at line 264 of file RegionPrinter.cpp.
References createRegionOnlyViewerPass(), and invokeFunctionPass().
Use SCEVTraversal to visit all nodes in the given expression tree.
Definition at line 615 of file ScalarEvolutionExpressions.h.
References T, and llvm::SCEVTraversal< SV >::visitAll().
Referenced by llvm::ScalarEvolution::collectParametricTerms(), containsUndefs(), llvm::ScalarEvolution::hasOperand(), isSafeToExpand(), and SCEVExprContains().
| void llvm::widenWidenableBranch | ( | BranchInst * | WidenableBR, |
| Value * | NewCond | ||
| ) |
Given a branch we know is widenable (defined per Analysis/GuardUtils.h), widen it such that condition 'NewCond' is also known to hold on the taken path.
Branch remains widenable after transform.
Definition at line 82 of file GuardUtils.cpp.
References assert(), B, C, llvm::IRBuilder< T, Inserter >::CreateAnd(), llvm::BranchInst::getCondition(), isWidenableBranch(), llvm::Instruction::moveBefore(), parseWidenableBranch(), and llvm::BranchInst::setCondition().
| bool llvm::wouldInstructionBeTriviallyDead | ( | Instruction * | I, |
| const TargetLibraryInfo * | TLI = nullptr |
||
| ) |
Return true if the result produced by the instruction would have no side effects if it was not used.
This is equivalent to checking whether isInstructionTriviallyDead would be true if the use count was 0.
Definition at line 366 of file Local.cpp.
References llvm::Instruction::isEHPad(), llvm::Instruction::isTerminator(), and llvm::Instruction::mayHaveSideEffects().
Referenced by bitTrackingDCE(), llvm::IRPosition::getAttrs(), isInstructionTriviallyDead(), patchAndReplaceAllUsesWith(), and llvm::SimplifyCFGOptions::setAssumptionCache().
|
inline |
Definition at line 47 of file CodeGenCWrappers.h.
References llvm::CodeModel::Kernel, llvm::CodeModel::Large, llvm_unreachable, LLVMCodeModelKernel, LLVMCodeModelLarge, LLVMCodeModelMedium, LLVMCodeModelSmall, LLVMCodeModelTiny, llvm::CodeModel::Medium, llvm::CodeModel::Small, and llvm::CodeModel::Tiny.
|
inline |
Definition at line 199 of file Attributes.h.
References llvm::Attribute::getRawPointer().
Referenced by llvm::OrcCBindingsStack::createLazyCompileCallback(), getMDNodeOperandImpl(), llvm_getMetadata(), LLVMAddAlias(), LLVMAddFunction(), LLVMAddGlobal(), LLVMAddGlobalIFunc(), LLVMAddGlobalInAddressSpace(), LLVMAddInternalizePassWithMustPreservePredicate(), LLVMAliasGetAliasee(), LLVMAlignOf(), LLVMAppendBasicBlockInContext(), LLVMArrayType(), LLVMBasicBlockAsValue(), LLVMBinaryCopyMemoryBuffer(), LLVMBlockAddress(), LLVMBuildAdd(), LLVMBuildAddrSpaceCast(), LLVMBuildAggregateRet(), LLVMBuildAlloca(), LLVMBuildAnd(), LLVMBuildArrayAlloca(), LLVMBuildArrayMalloc(), LLVMBuildAShr(), LLVMBuildAtomicCmpXchg(), LLVMBuildAtomicRMW(), LLVMBuildBinOp(), LLVMBuildBitCast(), LLVMBuildBr(), LLVMBuildCall(), LLVMBuildCall2(), LLVMBuildCast(), LLVMBuildCatchPad(), LLVMBuildCatchRet(), LLVMBuildCatchSwitch(), LLVMBuildCleanupPad(), LLVMBuildCleanupRet(), LLVMBuildCondBr(), LLVMBuilderGetDefaultFPMathTag(), LLVMBuildExactSDiv(), LLVMBuildExactUDiv(), LLVMBuildExtractElement(), LLVMBuildExtractValue(), LLVMBuildFAdd(), LLVMBuildFCmp(), LLVMBuildFDiv(), LLVMBuildFence(), LLVMBuildFMul(), LLVMBuildFNeg(), LLVMBuildFPCast(), LLVMBuildFPExt(), LLVMBuildFPToSI(), LLVMBuildFPToUI(), LLVMBuildFPTrunc(), LLVMBuildFree(), LLVMBuildFreeze(), LLVMBuildFRem(), LLVMBuildFSub(), LLVMBuildGEP(), LLVMBuildGEP2(), LLVMBuildGlobalString(), LLVMBuildGlobalStringPtr(), LLVMBuildICmp(), LLVMBuildInBoundsGEP(), LLVMBuildInBoundsGEP2(), LLVMBuildIndirectBr(), LLVMBuildInsertElement(), LLVMBuildInsertValue(), LLVMBuildIntCast(), LLVMBuildIntCast2(), LLVMBuildIntToPtr(), LLVMBuildInvoke(), LLVMBuildInvoke2(), LLVMBuildIsNotNull(), LLVMBuildIsNull(), LLVMBuildLandingPad(), LLVMBuildLoad(), LLVMBuildLoad2(), LLVMBuildLShr(), LLVMBuildMalloc(), LLVMBuildMemCpy(), LLVMBuildMemMove(), LLVMBuildMemSet(), LLVMBuildMul(), LLVMBuildNeg(), LLVMBuildNot(), LLVMBuildNSWAdd(), LLVMBuildNSWMul(), LLVMBuildNSWNeg(), LLVMBuildNSWSub(), LLVMBuildNUWAdd(), LLVMBuildNUWMul(), LLVMBuildNUWNeg(), LLVMBuildNUWSub(), LLVMBuildOr(), LLVMBuildPhi(), LLVMBuildPointerCast(), LLVMBuildPtrDiff(), LLVMBuildPtrToInt(), LLVMBuildResume(), LLVMBuildRet(), LLVMBuildRetVoid(), LLVMBuildSDiv(), LLVMBuildSelect(), LLVMBuildSExt(), LLVMBuildSExtOrBitCast(), LLVMBuildShl(), LLVMBuildShuffleVector(), LLVMBuildSIToFP(), LLVMBuildSRem(), LLVMBuildStore(), LLVMBuildStructGEP(), LLVMBuildStructGEP2(), LLVMBuildSub(), LLVMBuildSwitch(), LLVMBuildTrunc(), LLVMBuildTruncOrBitCast(), LLVMBuildUDiv(), LLVMBuildUIToFP(), LLVMBuildUnreachable(), LLVMBuildURem(), LLVMBuildVAArg(), LLVMBuildXor(), LLVMBuildZExt(), LLVMBuildZExtOrBitCast(), LLVMCloneModule(), LLVMConstAdd(), LLVMConstAddrSpaceCast(), LLVMConstAllOnes(), LLVMConstAnd(), LLVMConstArray(), LLVMConstAShr(), LLVMConstBitCast(), LLVMConstExactSDiv(), LLVMConstExactUDiv(), LLVMConstExtractElement(), LLVMConstExtractValue(), LLVMConstFAdd(), LLVMConstFCmp(), LLVMConstFDiv(), LLVMConstFMul(), LLVMConstFNeg(), LLVMConstFPCast(), LLVMConstFPExt(), LLVMConstFPToSI(), LLVMConstFPToUI(), LLVMConstFPTrunc(), LLVMConstFRem(), LLVMConstFSub(), LLVMConstGEP(), LLVMConstICmp(), LLVMConstInBoundsGEP(), LLVMConstInlineAsm(), LLVMConstInsertElement(), LLVMConstInsertValue(), LLVMConstInt(), LLVMConstIntCast(), LLVMConstIntOfArbitraryPrecision(), LLVMConstIntOfString(), LLVMConstIntOfStringAndSize(), LLVMConstIntToPtr(), LLVMConstLShr(), LLVMConstMul(), LLVMConstNamedStruct(), LLVMConstNeg(), LLVMConstNot(), LLVMConstNSWAdd(), LLVMConstNSWMul(), LLVMConstNSWNeg(), LLVMConstNSWSub(), LLVMConstNull(), LLVMConstNUWAdd(), LLVMConstNUWMul(), LLVMConstNUWNeg(), LLVMConstNUWSub(), LLVMConstOr(), LLVMConstPointerCast(), LLVMConstPointerNull(), LLVMConstPtrToInt(), LLVMConstReal(), LLVMConstRealOfString(), LLVMConstRealOfStringAndSize(), LLVMConstSDiv(), LLVMConstSelect(), LLVMConstSExt(), LLVMConstSExtOrBitCast(), LLVMConstShl(), LLVMConstShuffleVector(), LLVMConstSIToFP(), LLVMConstSRem(), LLVMConstStringInContext(), LLVMConstStructInContext(), LLVMConstSub(), LLVMConstTrunc(), LLVMConstTruncOrBitCast(), LLVMConstUDiv(), LLVMConstUIToFP(), LLVMConstURem(), LLVMConstVector(), LLVMConstXor(), LLVMConstZExt(), LLVMConstZExtOrBitCast(), LLVMContextCreate(), LLVMCopyModuleFlagsMetadata(), LLVMCreateBasicBlockInContext(), LLVMCreateBinary(), LLVMCreateBuilderInContext(), LLVMCreateDIBuilder(), LLVMCreateDIBuilderDisallowUnresolved(), LLVMCreateEnumAttribute(), LLVMCreateExecutionEngineForModule(), LLVMCreateFunctionPassManagerForModule(), LLVMCreateGDBRegistrationListener(), LLVMCreateGenericValueOfFloat(), LLVMCreateGenericValueOfInt(), LLVMCreateGenericValueOfPointer(), LLVMCreateIntelJITEventListener(), LLVMCreateInterpreterForModule(), LLVMCreateJITCompilerForModule(), LLVMCreateMCJITCompilerForModule(), LLVMCreateMemoryBufferWithContentsOfFile(), LLVMCreateMemoryBufferWithMemoryRange(), LLVMCreateMemoryBufferWithMemoryRangeCopy(), LLVMCreateMemoryBufferWithSTDIN(), LLVMCreateObjectFile(), LLVMCreateOProfileJITEventListener(), LLVMCreatePassManager(), LLVMCreatePerfJITEventListener(), LLVMCreateSimpleMCJITMemoryManager(), LLVMCreateStringAttribute(), LLVMCreateTargetData(), LLVMCreateTargetDataLayout(), LLVMCreateTargetMachine(), LLVMDIBuilderCreateArrayType(), LLVMDIBuilderCreateArtificialType(), LLVMDIBuilderCreateAutoVariable(), LLVMDIBuilderCreateBasicType(), LLVMDIBuilderCreateBitFieldMemberType(), LLVMDIBuilderCreateClassType(), LLVMDIBuilderCreateCompileUnit(), LLVMDIBuilderCreateConstantValueExpression(), LLVMDIBuilderCreateDebugLocation(), LLVMDIBuilderCreateEnumerationType(), LLVMDIBuilderCreateEnumerator(), LLVMDIBuilderCreateExpression(), LLVMDIBuilderCreateFile(), LLVMDIBuilderCreateForwardDecl(), LLVMDIBuilderCreateFunction(), LLVMDIBuilderCreateGlobalVariableExpression(), LLVMDIBuilderCreateImportedDeclaration(), LLVMDIBuilderCreateImportedModuleFromAlias(), LLVMDIBuilderCreateImportedModuleFromModule(), LLVMDIBuilderCreateImportedModuleFromNamespace(), LLVMDIBuilderCreateInheritance(), LLVMDIBuilderCreateLexicalBlock(), LLVMDIBuilderCreateLexicalBlockFile(), LLVMDIBuilderCreateMacro(), LLVMDIBuilderCreateMemberPointerType(), LLVMDIBuilderCreateMemberType(), LLVMDIBuilderCreateModule(), LLVMDIBuilderCreateNameSpace(), LLVMDIBuilderCreateNullPtrType(), LLVMDIBuilderCreateObjCIVar(), LLVMDIBuilderCreateObjCProperty(), LLVMDIBuilderCreateObjectPointerType(), LLVMDIBuilderCreateParameterVariable(), LLVMDIBuilderCreatePointerType(), LLVMDIBuilderCreateQualifiedType(), LLVMDIBuilderCreateReferenceType(), LLVMDIBuilderCreateReplaceableCompositeType(), LLVMDIBuilderCreateStaticMemberType(), LLVMDIBuilderCreateStructType(), LLVMDIBuilderCreateSubroutineType(), LLVMDIBuilderCreateTempGlobalVariableFwdDecl(), LLVMDIBuilderCreateTempMacroFile(), LLVMDIBuilderCreateTypedef(), LLVMDIBuilderCreateUnionType(), LLVMDIBuilderCreateUnspecifiedType(), LLVMDIBuilderCreateVectorType(), LLVMDIBuilderGetOrCreateArray(), LLVMDIBuilderGetOrCreateSubrange(), LLVMDIBuilderGetOrCreateTypeArray(), LLVMDIBuilderInsertDbgValueAtEnd(), LLVMDIBuilderInsertDbgValueBefore(), LLVMDIBuilderInsertDeclareAtEnd(), LLVMDIBuilderInsertDeclareBefore(), LLVMDIGlobalVariableExpressionGetExpression(), LLVMDIGlobalVariableExpressionGetVariable(), LLVMDILocationGetInlinedAt(), LLVMDILocationGetScope(), LLVMDIScopeGetFile(), LLVMDIVariableGetFile(), LLVMDIVariableGetScope(), LLVMFindFunction(), LLVMFunctionType(), LLVMGetAllocatedType(), LLVMGetArgOperand(), LLVMGetAttributesAtIndex(), LLVMGetBasicBlockParent(), LLVMGetBasicBlocks(), LLVMGetBasicBlockTerminator(), LLVMGetBitcodeModuleInContext2(), LLVMGetCalledFunctionType(), LLVMGetCalledValue(), LLVMGetCallSiteAttributes(), LLVMGetCallSiteEnumAttribute(), LLVMGetCallSiteStringAttribute(), LLVMGetClause(), LLVMGetComdat(), LLVMGetCondition(), LLVMGetCurrentDebugLocation(), LLVMGetCurrentDebugLocation2(), LLVMGetElementAsConstant(), LLVMGetElementType(), LLVMGetEntryBasicBlock(), LLVMGetEnumAttributeAtIndex(), LLVMGetExecutionEngineTargetData(), LLVMGetExecutionEngineTargetMachine(), LLVMGetFirstBasicBlock(), LLVMGetFirstFunction(), LLVMGetFirstGlobal(), LLVMGetFirstGlobalAlias(), LLVMGetFirstGlobalIFunc(), LLVMGetFirstInstruction(), LLVMGetFirstNamedMetadata(), LLVMGetFirstParam(), LLVMGetFirstTarget(), LLVMGetFirstUse(), LLVMGetGlobalContext(), LLVMGetGlobalIFuncResolver(), LLVMGetGlobalParent(), LLVMGetGlobalPassRegistry(), LLVMGetHandlers(), LLVMGetIncomingBlock(), LLVMGetIncomingValue(), LLVMGetInitializer(), LLVMGetInlineAsm(), LLVMGetInsertBlock(), LLVMGetInstructionParent(), LLVMGetIntrinsicDeclaration(), LLVMGetLastBasicBlock(), LLVMGetLastFunction(), LLVMGetLastGlobal(), LLVMGetLastGlobalAlias(), LLVMGetLastGlobalIFunc(), LLVMGetLastInstruction(), LLVMGetLastNamedMetadata(), LLVMGetLastParam(), LLVMGetMDNodeOperands(), LLVMGetMetadata(), LLVMGetModuleContext(), LLVMGetModuleDataLayout(), LLVMGetModuleFlag(), LLVMGetNamedFunction(), LLVMGetNamedGlobal(), LLVMGetNamedGlobalAlias(), LLVMGetNamedGlobalIFunc(), LLVMGetNamedMetadata(), LLVMGetNamedMetadataOperands(), LLVMGetNextBasicBlock(), LLVMGetNextFunction(), LLVMGetNextGlobal(), LLVMGetNextGlobalAlias(), LLVMGetNextGlobalIFunc(), LLVMGetNextInstruction(), LLVMGetNextNamedMetadata(), LLVMGetNextParam(), LLVMGetNextTarget(), LLVMGetNextUse(), LLVMGetNormalDest(), LLVMGetOperand(), LLVMGetOperandUse(), LLVMGetOrInsertComdat(), LLVMGetOrInsertNamedMetadata(), LLVMGetParam(), LLVMGetParamParent(), LLVMGetParams(), LLVMGetParamTypes(), LLVMGetParentCatchSwitch(), LLVMGetPersonalityFn(), LLVMGetPreviousBasicBlock(), LLVMGetPreviousFunction(), LLVMGetPreviousGlobal(), LLVMGetPreviousGlobalAlias(), LLVMGetPreviousGlobalIFunc(), LLVMGetPreviousInstruction(), LLVMGetPreviousNamedMetadata(), LLVMGetPreviousParam(), LLVMGetRelocations(), LLVMGetRelocationSymbol(), LLVMGetReturnType(), LLVMGetSections(), LLVMGetStringAttributeAtIndex(), LLVMGetStructElementTypes(), LLVMGetSubprogram(), LLVMGetSubtypes(), LLVMGetSuccessor(), LLVMGetSwitchDefaultDest(), LLVMGetSymbols(), LLVMGetTargetFromName(), LLVMGetTargetFromTriple(), LLVMGetTargetMachineTarget(), LLVMGetTypeByName(), LLVMGetTypeContext(), LLVMGetUndef(), LLVMGetUnwindDest(), LLVMGetUsedValue(), LLVMGetUser(), LLVMGlobalGetValueType(), LLVMInsertBasicBlockInContext(), LLVMInstructionClone(), LLVMInstructionGetDebugLoc(), LLVMIntPtrType(), LLVMIntPtrTypeForAS(), LLVMIntPtrTypeForASInContext(), LLVMIntPtrTypeInContext(), LLVMIntrinsicGetType(), LLVMIntTypeInContext(), LLVMIsATerminatorInst(), LLVMLabelTypeInContext(), LLVMMachOUniversalBinaryCopyObjectForArch(), LLVMMDNodeInContext(), LLVMMDNodeInContext2(), LLVMMDStringInContext(), LLVMMDStringInContext2(), LLVMMetadataAsValue(), LLVMMetadataTypeInContext(), LLVMModuleCreateWithName(), LLVMModuleCreateWithNameInContext(), LLVMObjectFileCopySectionIterator(), LLVMObjectFileCopySymbolIterator(), LLVMOrcAddEagerlyCompiledIR(), LLVMOrcAddLazilyCompiledIR(), LLVMOrcAddObjectFile(), LLVMOrcCreateIndirectStub(), LLVMOrcCreateInstance(), LLVMOrcCreateLazyCompileCallback(), LLVMOrcGetSymbolAddress(), LLVMOrcGetSymbolAddressIn(), LLVMOrcRemoveModule(), LLVMOrcSetIndirectStubPointer(), LLVMParseBitcodeInContext2(), LLVMParseIRInContext(), LLVMPassManagerBuilderCreate(), LLVMPointerType(), LLVMRemarkArgGetDebugLoc(), LLVMRemarkArgGetKey(), LLVMRemarkArgGetValue(), LLVMRemarkDebugLocGetSourceFilePath(), LLVMRemarkEntryGetDebugLoc(), LLVMRemarkEntryGetFunctionName(), LLVMRemarkEntryGetPassName(), LLVMRemarkEntryGetRemarkName(), LLVMRemarkParserCreateBitstream(), LLVMRemarkParserCreateYAML(), LLVMRemarkParserGetNext(), LLVMRemoveModule(), LLVMRunFunction(), LLVMSizeOf(), LLVMStructCreateNamed(), LLVMStructGetTypeAtIndex(), LLVMStructTypeInContext(), LLVMTemporaryMDNode(), LLVMTokenTypeInContext(), LLVMTypeOf(), LLVMValueAsBasicBlock(), LLVMValueAsMetadata(), LLVMVectorType(), LLVMVoidTypeInContext(), LLVMWriteBitcodeToMemoryBuffer(), and remapInstruction().
|
inline |
Definition at line 322 of file LLVMContext.h.
|
inline |
|
inline |
Definition at line 579 of file DataLayout.h.
References P.
|
inline |
|
inline |
|
static |
Definition at line 55 of file RuntimeDyldCOFFAArch64.h.
References llvm::BitmaskEnumDetail::Mask(), llvm::support::endian::read32le(), and llvm::support::endian::write32le().
Referenced by llvm::RuntimeDyldELF::loadObject(), and llvm::RuntimeDyldCOFFAArch64::resolveRelocation().
|
static |
Definition at line 37 of file RuntimeDyldCOFFAArch64.h.
References llvm::support::endian::read32le(), and llvm::support::endian::write32le().
Referenced by llvm::RuntimeDyldCOFFAArch64::resolveRelocation(), and write32AArch64Ldr().
|
static |
Definition at line 43 of file RuntimeDyldCOFFAArch64.h.
References assert(), llvm::support::endian::read32le(), size(), and write32AArch64Imm().
Referenced by llvm::RuntimeDyldCOFFAArch64::resolveRelocation().
| void llvm::write_double | ( | raw_ostream & | S, |
| double | D, | ||
| FloatStyle | Style, | ||
| Optional< size_t > | Precision = None |
||
| ) |
Definition at line 163 of file NativeFormatting.cpp.
References llvm::SmallString< InternalLen >::c_str(), Exponent, ExponentUpper, format(), getDefaultPrecision(), llvm::Optional< T >::getValueOr(), N, and Percent.
Referenced by llvm::format_provider< T, typename std::enable_if< detail::use_double_formatter< T >::value >::type >::format(), and llvm::raw_ostream::operator<<().
| void llvm::write_hex | ( | raw_ostream & | S, |
| uint64_t | N, | ||
| HexPrintStyle | Style, | ||
| Optional< size_t > | Width = None |
||
| ) |
Definition at line 133 of file NativeFormatting.cpp.
References array_lengthof(), countLeadingZeros(), llvm::Optional< T >::getValueOr(), hexdigit(), max(), N, llvm::cl::Prefix, PrefixLower, PrefixUpper, Upper, llvm::RISCVFenceField::W, and llvm::raw_ostream::write().
Referenced by llvm::sys::UnicodeCharSet::contains(), llvm::format_provider< T, typename std::enable_if< detail::use_integral_formatter< T >::value >::type >::format(), llvm::format_provider< T, typename std::enable_if< detail::use_pointer_formatter< T >::value >::type >::format(), llvm::format_provider< codeview::LocallyHashedType >::format(), llvm::format_provider< codeview::GloballyHashedType >::format(), llvm::raw_ostream::operator<<(), llvm::json::quote(), and llvm::raw_ostream::write_hex().
| void llvm::write_integer | ( | raw_ostream & | S, |
| unsigned int | N, | ||
| size_t | MinDigits, | ||
| IntegerStyle | Style | ||
| ) |
Definition at line 103 of file NativeFormatting.cpp.
References write_unsigned().
Referenced by llvm::format_provider< T, typename std::enable_if< detail::use_integral_formatter< T >::value >::type >::format(), and llvm::raw_ostream::operator<<().
| void llvm::write_integer | ( | raw_ostream & | S, |
| int | N, | ||
| size_t | MinDigits, | ||
| IntegerStyle | Style | ||
| ) |
Definition at line 108 of file NativeFormatting.cpp.
References write_signed().
| void llvm::write_integer | ( | raw_ostream & | S, |
| unsigned long | N, | ||
| size_t | MinDigits, | ||
| IntegerStyle | Style | ||
| ) |
Definition at line 113 of file NativeFormatting.cpp.
References write_unsigned().
| void llvm::write_integer | ( | raw_ostream & | S, |
| long | N, | ||
| size_t | MinDigits, | ||
| IntegerStyle | Style | ||
| ) |
Definition at line 118 of file NativeFormatting.cpp.
References write_signed().
| void llvm::write_integer | ( | raw_ostream & | S, |
| unsigned long long | N, | ||
| size_t | MinDigits, | ||
| IntegerStyle | Style | ||
| ) |
Definition at line 123 of file NativeFormatting.cpp.
References write_unsigned().
| void llvm::write_integer | ( | raw_ostream & | S, |
| long long | N, | ||
| size_t | MinDigits, | ||
| IntegerStyle | Style | ||
| ) |
Definition at line 128 of file NativeFormatting.cpp.
References write_signed().
| Error llvm::writeArchive | ( | StringRef | ArcName, |
| ArrayRef< NewArchiveMember > | NewMembers, | ||
| bool | WriteSymtab, | ||
| object::Archive::Kind | Kind, | ||
| bool | Deterministic, | ||
| bool | Thin, | ||
| std::unique_ptr< MemoryBuffer > | OldArchiveBuf = nullptr |
||
| ) |
Definition at line 551 of file ArchiveWriter.cpp.
References assert(), computeMemberData(), computeStringTable(), llvm::sys::fs::TempFile::create(), Data, E, llvm::SmallVectorBase::empty(), llvm::raw_ostream::flush(), llvm::StringRef::getAsInteger(), isBSDLike(), llvm::object::Archive::K_DARWIN, llvm::object::Archive::K_DARWIN64, llvm::object::Archive::K_GNU64, llvm::Expected< T >::takeError(), and writeSymbolTable().
| void llvm::WriteBitcodeToFile | ( | const Module & | M, |
| raw_ostream & | Out, | ||
| bool | ShouldPreserveUseListOrder = false, |
||
| const ModuleSummaryIndex * | Index = nullptr, |
||
| bool | GenerateHash = false, |
||
| ModuleHash * | ModHash = nullptr |
||
| ) |
Write the specified module to the specified raw output stream.
Write the specified module to the specified output stream.
For streams where it matters, the given stream should be in "binary" mode.
If ShouldPreserveUseListOrder, encode the use-list order for each Value in M. These will be reconstructed exactly when M is deserialized.
If Index is supplied, the bitcode will contain the summary index (currently for use in ThinLTO optimization).
GenerateHash enables hashing the Module and including the hash in the bitcode (currently for use in ThinLTO incremental build).
If ModHash is non-null, when GenerateHash is true, the resulting hash is written into ModHash. When GenerateHash is false, that value is used as the hash instead of computing from the generated bitcode. Can be used to produce the same module hash for a minimized bitcode used just for the thin link as in the regular full bitcode that will be used in the backend.
Definition at line 4464 of file BitcodeWriter.cpp.
References llvm::SmallVectorTemplateCommon< T, typename >::begin(), BWH_HeaderSize, emitDarwinBCHeaderAndTrailer(), llvm::BitstreamWriter::EnterSubblock(), llvm::BitstreamWriter::ExitBlock(), llvm::SmallVectorTemplateCommon< T, typename >::front(), llvm::Module::getTargetTriple(), llvm::SmallVectorImpl< T >::insert(), llvm::bitc::MODULE_BLOCK_ID, llvm::SmallVectorImpl< T >::reserve(), llvm::SmallVectorBase::size(), TT, write(), llvm::raw_ostream::write(), llvm::BitcodeWriter::writeModule(), llvm::BitcodeWriter::writeStrtab(), and llvm::BitcodeWriter::writeSymtab().
Referenced by llvm::lto::Config::addSaveTemps(), EmbedBitcodeInModule(), LLVMWriteBitcodeToFD(), LLVMWriteBitcodeToFile(), LLVMWriteBitcodeToMemoryBuffer(), llvm::BitcodeWriterPass::run(), splitCodeGen(), llvm::LTOCodeGenerator::writeMergedModules(), and writeModule().
| llvm::Error llvm::writeFileAtomically | ( | StringRef | TempPathModel, |
| StringRef | FinalPath, | ||
| StringRef | Buffer | ||
| ) |
Creates a unique file with name according to the given TempPathModel, writes content of Buffer to the file and renames it to FinalPath.
AtomicFileWriteError in case of error. Definition at line 288 of file FileUtilities.cpp.
References llvm::StringRef::data(), llvm::StringRef::size(), llvm::Error::success(), and llvm::raw_ostream::write().
| llvm::Error llvm::writeFileAtomically | ( | StringRef | TempPathModel, |
| StringRef | FinalPath, | ||
| std::function< llvm::Error(llvm::raw_ostream &)> | Writer | ||
| ) |
Definition at line 297 of file FileUtilities.cpp.
References llvm::sys::fs::createUniqueFile(), failed_to_create_uniq_file, and llvm::StringRef::str().
| raw_ostream& llvm::WriteGraph | ( | raw_ostream & | O, |
| const EdgeBundles & | G, | ||
| bool | ShortNames, | ||
| const Twine & | Title | ||
| ) |
Definition at line 75 of file EdgeBundles.cpp.
References llvm::RISCVFenceField::O, printMBBReference(), and SI.
| raw_ostream& llvm::WriteGraph | ( | raw_ostream & | O, |
| const GraphType & | G, | ||
| bool | ShortNames = false, |
||
| const Twine & | Title = "" |
||
| ) |
Definition at line 309 of file GraphWriter.h.
References createGraphFilename(), errs(), N, Name, llvm::RISCVFenceField::O, llvm::sys::fs::openFileForWrite(), llvm::Twine::str(), llvm::RISCVFenceField::W, and llvm::GraphWriter< GraphType >::writeGraph().
Referenced by annotateAllFunctions(), llvm::DOTGraphTraitsPrinter< AnalysisT, IsSimple, GraphT, AnalysisGraphTraitsT >::runOnFunction(), llvm::DOTGraphTraitsModulePrinter< AnalysisT, IsSimple, GraphT, AnalysisGraphTraitsT >::runOnModule(), ViewGraph(), and writeCFGToDotFile().
| void llvm::WriteIndexToFile | ( | const ModuleSummaryIndex & | Index, |
| raw_ostream & | Out, | ||
| const std::map< std::string, GVSummaryMapTy > * | ModuleToSummariesForIndex = nullptr |
||
| ) |
Write the specified module summary index to the given raw output stream, where it will be written in a new bitcode block.
This is used when writing the combined index file for ThinLTO. When writing a subset of the index for a distributed backend, provide the ModuleToSummariesForIndex map.
Definition at line 4508 of file BitcodeWriter.cpp.
References llvm::StringTableBuilder::add(), llvm::BitCodeAbbrevOp::Array, llvm::tgtok::Bits, llvm::BitCodeAbbrevOp::Char6, llvm::SmallVectorImpl< T >::clear(), llvm::BitstreamWriter::EmitAbbrev(), llvm::BitstreamWriter::EmitRecord(), llvm::BitstreamWriter::EnterSubblock(), llvm::BitstreamWriter::ExitBlock(), llvm::BitCodeAbbrevOp::Fixed, llvm::SmallVectorTemplateCommon< T, typename >::front(), getEncodedLinkage(), llvm::Value::getName(), llvm::Module::getSourceFileName(), getStringEncoding(), llvm::Module::globals(), llvm::bitc::MODULE_BLOCK_ID, llvm::bitc::MODULE_CODE_ALIAS, llvm::bitc::MODULE_CODE_FUNCTION, llvm::bitc::MODULE_CODE_GLOBALVAR, llvm::bitc::MODULE_CODE_HASH, llvm::bitc::MODULE_CODE_IFUNC, llvm::bitc::MODULE_CODE_SOURCE_FILENAME, P, llvm::SmallVectorTemplateBase< T >::push_back(), llvm::SmallVectorImpl< T >::reserve(), SE_Char6, SE_Fixed7, llvm::SmallVectorBase::size(), llvm::StringRef::size(), write(), llvm::raw_ostream::write(), llvm::BitcodeWriter::writeIndex(), and llvm::BitcodeWriter::writeStrtab().
Referenced by llvm::lto::Config::addSaveTemps(), llvm::lto::getThinLTOOutputFile(), and llvm::ThinLTOCodeGenerator::run().
Fuzzer friendly interface for the llvm bitcode printer.
| M | Module to print |
| Dest | Location to store serialized module |
| MaxSize | Size of the destination buffer |
Definition at line 189 of file FuzzerCLI.cpp.
References WriteBitcodeToFile().
Definition at line 693 of file APFloat.cpp.
References assert(), count(), initialize(), llvm::APInt::tcAssign(), and writeUnsignedDecimal().
Referenced by llvm::detail::IEEEFloat::convertToHexString().
| void llvm::WriteThinLinkBitcodeToFile | ( | const Module & | M, |
| raw_ostream & | Out, | ||
| const ModuleSummaryIndex & | Index, | ||
| const ModuleHash & | ModHash | ||
| ) |
Write the specified thin link bitcode file (i.e., the minimized bitcode file) to the given raw output stream, where it will be written in a new bitcode block.
The thin link bitcode file is used for thin link, and it only contains the necessary information for thin link.
ModHash is for use in ThinLTO incremental build, generated while the IR bitcode file writing.
Definition at line 4668 of file BitcodeWriter.cpp.
References llvm::SmallVectorTemplateCommon< T, typename >::front(), llvm::SmallVectorImpl< T >::reserve(), llvm::SmallVectorBase::size(), llvm::raw_ostream::write(), llvm::BitcodeWriter::writeStrtab(), llvm::BitcodeWriter::writeSymtab(), and llvm::BitcodeWriter::writeThinLinkBitcode().
Definition at line 675 of file APFloat.cpp.
Referenced by writeSignedDecimal().
| uint64_t llvm::xxHash64 | ( | llvm::StringRef | Data | ) |
Definition at line 71 of file xxhash.cpp.
References llvm::StringRef::bytes_begin(), llvm::StringRef::bytes_end(), mergeRound(), P, PRIME64_1, PRIME64_2, PRIME64_3, PRIME64_4, PRIME64_5, llvm::support::endian::read32le(), llvm::support::endian::read64le(), rotl64(), round(), Seed, llvm::StringRef::size(), llvm::NVPTX::PTXLdStInstCode::V2, and llvm::NVPTX::PTXLdStInstCode::V4.
Referenced by llvm::pdb::PDBFileBuilder::commit(), llvm::pdb::GSIHashStreamBuilder::SymbolDenseMapInfo::getHashValue(), and xxHash64().
| uint64_t llvm::xxHash64 | ( | llvm::ArrayRef< uint8_t > | Data | ) |
Definition at line 136 of file xxhash.cpp.
References llvm::ArrayRef< T >::data(), llvm::ArrayRef< T >::size(), and xxHash64().
| detail::zippy<detail::zip_shortest, T, U, Args...> llvm::zip | ( | T && | t, |
| U && | u, | ||
| Args &&... | args | ||
| ) |
zip iterator for two or more iteratable types.
Definition at line 659 of file STLExtras.h.
References llvm::AMDGPU::HSAMD::Kernel::Key::Args, and T.
Referenced by llvm::AMDGPURegisterBankInfo::executeInWaterfallLoop().
| detail::zippy<detail::zip_first, T, U, Args...> llvm::zip_first | ( | T && | t, |
| U && | u, | ||
| Args &&... | args | ||
| ) |
zip iterator that, for the sake of efficiency, assumes the first iteratee to be the shortest.
Definition at line 668 of file STLExtras.h.
References llvm::AMDGPU::HSAMD::Kernel::Key::Args, and T.
Referenced by buildClonedLoopBlocks(), llvm::DWARFDebugNames::Entry::dump(), llvm::RegsForValue::getRegsAndSizes(), llvm::AppleAcceleratorTable::Entry::lookup(), and llvm::DWARFDebugNames::Entry::lookup().
| detail::zip_longest_range<T, U, Args...> llvm::zip_longest | ( | T && | t, |
| U && | u, | ||
| Args &&... | args | ||
| ) |
Iterate over two or more iterators at the same time.
Iteration continues until all iterators reach the end. The llvm::Optional only contains a value if the iterator has not reached the end.
Definition at line 799 of file STLExtras.h.
References llvm::AMDGPU::HSAMD::Kernel::Key::Args, and T.
| char & llvm::AMDGPUAnnotateKernelFeaturesID = AMDGPUAnnotateKernelFeatures::ID |
Definition at line 81 of file AMDGPUAnnotateKernelFeatures.cpp.
| char& llvm::AMDGPUAnnotateUniformValuesPassID |
| char & llvm::AMDGPUAtomicOptimizerID = AMDGPUAtomicOptimizer::ID |
Definition at line 77 of file AMDGPUAtomicOptimizer.cpp.
| char& llvm::AMDGPUCodeGenPrepareID |
| const SubtargetFeatureKV llvm::AMDGPUFeatureKV[AMDGPU::NumSubtargetFeatures-1] |
| char & llvm::AMDGPUFixFunctionBitcastsID = AMDGPUFixFunctionBitcasts::ID |
Definition at line 50 of file AMDGPUFixFunctionBitcasts.cpp.
| char & llvm::AMDGPULowerIntrinsicsID = AMDGPULowerIntrinsics::ID |
Definition at line 51 of file AMDGPULowerIntrinsics.cpp.
| char& llvm::AMDGPULowerKernelArgumentsID |
| char& llvm::AMDGPULowerKernelAttributesID |
| char& llvm::AMDGPUMachineCFGStructurizerID |
Definition at line 2900 of file AMDGPUMachineCFGStructurizer.cpp.
| char & llvm::AMDGPUOpenCLEnqueuedBlockLoweringID |
Definition at line 68 of file AMDGPUOpenCLEnqueuedBlockLowering.cpp.
| char & llvm::AMDGPUPerfHintAnalysisID = AMDGPUPerfHintAnalysis::ID |
Definition at line 60 of file AMDGPUPerfHintAnalysis.cpp.
Referenced by llvm::GCNTargetMachine::getTargetTransformInfo().
| amdgpu printf runtime AMDGPU Printf false char & llvm::AMDGPUPrintfRuntimeBindingID = AMDGPUPrintfRuntimeBinding::ID |
Definition at line 90 of file AMDGPUPrintfRuntimeBinding.cpp.
| char& llvm::AMDGPUPromoteAllocaID |
| char& llvm::AMDGPUPropagateAttributesEarlyID |
| char& llvm::AMDGPUPropagateAttributesLateID |
| char& llvm::AMDGPURewriteOutArgumentsID |
| char& llvm::AMDGPUSimplifyLibCallsID |
| char & llvm::AMDGPUUnifyDivergentExitNodesID = AMDGPUUnifyDivergentExitNodes::ID |
Definition at line 69 of file AMDGPUUnifyDivergentExitNodes.cpp.
Referenced by llvm::R600TargetMachine::createPassConfig().
| char & llvm::AMDGPUUnifyMetadataID = AMDGPUUnifyMetadata::ID |
Definition at line 115 of file AMDGPUUnifyMetadata.cpp.
| char& llvm::AMDGPUUseNativeCallsID |
|
static |
Definition at line 38 of file NVPTXUtilities.cpp.
| const MCInstrDesc llvm::ARMInsts |
Definition at line 686 of file ARMDisassembler.cpp.
Referenced by AddThumb1SBit(), DecodePredicateOperand(), and isVectorPredicable().
Definition at line 48 of file MCTargetAsmParser.h.
Referenced by rewritesSort().
| char & llvm::AtomicExpandID = AtomicExpand::ID |
AtomicExpandID – Lowers atomic operations in terms of either cmpxchg load-linked/store-conditional loops.
Definition at line 127 of file AtomicExpandPass.cpp.
Definition at line 28 of file AVRTargetMachine.cpp.
Macro compressed bit reversal table for 256 bits.
http://graphics.stanford.edu/~seander/bithacks.html#BitReverseTable
Definition at line 293 of file MathExtras.h.
| char & llvm::BranchFolderPassID = BranchFolderPass::ID |
BranchFolding - This pass performs machine code CFG based optimizations to delete branches to branches, eliminate branches to successor blocks (creating fall throughs), and eliminating branches over branches.
Definition at line 118 of file BranchFolding.cpp.
Referenced by llvm::TargetPassConfig::addMachineLateOptimization(), and overridePass().
| char & llvm::BranchRelaxationPassID = BranchRelaxation::ID |
BranchRelaxation - This pass replaces branches that need to jump further than is supported by a branch instruction.
Definition at line 122 of file BranchRelaxation.cpp.
Referenced by llvm::RISCVTargetMachine::createPassConfig(), llvm::AArch64TargetMachine::createPassConfig(), llvm::R600TargetMachine::createPassConfig(), and llvm::AVRTargetMachine::getSubtargetImpl().
| char& llvm::BreakCriticalEdgesID |
Referenced by llvm::UnifyFunctionExitNodes::getAnalysisUsage(), and simplifyLoop().
Definition at line 16 of file XCoreTargetObjectFile.h.
Referenced by IsSmallObject(), and llvm::XCoreTargetObjectFile::SelectSectionForGlobal().
| cl::OptionCategory llvm::ColorCategory |
|
static |
Definition at line 45 of file Debug.cpp.
Referenced by setCurrentDebugTypes().
| char & llvm::DeadMachineInstructionElimID = DeadMachineInstructionElim::ID |
DeadMachineInstructionElim - This pass removes dead machine instructions.
Definition at line 54 of file DeadMachineInstructionElim.cpp.
Referenced by llvm::TargetPassConfig::addMachineSSAOptimization(), llvm::PPCTargetMachine::createPassConfig(), llvm::R600TargetMachine::createPassConfig(), llvm::NVPTXTargetMachine::getTargetTransformInfo(), and overridePass().
This boolean is set to true if the '-debug' command line option is specified.
Exported boolean set by the -debug option.
This should probably not be referenced directly, instead, use the DEBUG macro below.
Definition at line 43 of file Debug.cpp.
Referenced by dbgs(), INITIALIZE_PASS(), isDebug(), and setCurrentDebugTypes().
| unsigned constexpr llvm::DefaultMaxUsesToExplore = 20 |
The default value for MaxUsesToExplore argument.
It's relatively small to keep the cost of analysis reasonable for clients like BasicAliasAnalysis, where the results can't be cached. TODO: we should probably introduce a caching CaptureTracking analysis and use it where possible. The caching version can use much higher limit or don't have this cap at all.
Definition at line 31 of file CaptureTracking.h.
Referenced by llvm::IRPosition::getAttrs().
|
static |
Definition at line 426 of file MachinePipeliner.h.
The default number of maximum instructions to scan in the block, used by FindAvailableLoadedValue().
DefMaxInstsToScan - the default number of maximum instructions.
to scan in the block, used by FindAvailableLoadedValue(). FindAvailableLoadedValue() was introduced in r60148, to improve jump threading in part by eliminating partially redundant loads. At that point, the value of MaxInstsToScan was already set to '6' without documented explanation.
Referenced by isSafeToLoadUnconditionally(), isZero(), llvm::JumpThreadingPass::SimplifyPartiallyRedundantLoad(), and llvm::InstCombiner::visitLoadInst().
| char & llvm::DemoteRegisterToMemoryID = RegToMem::ID |
Definition at line 126 of file Reg2Mem.cpp.
| char & llvm::DetectDeadLanesID = DetectDeadLanes::ID |
This pass adds dead/undef flags after analyzing subregister lanes.
Definition at line 131 of file DetectDeadLanes.cpp.
Referenced by llvm::TargetPassConfig::addOptimizedRegAlloc(), and llvm::R600TargetMachine::createPassConfig().
| char & llvm::EarlyIfConverterID = EarlyIfConverter::ID |
EarlyIfConverter - This pass performs if-conversion on SSA form by inserting cmov instructions.
Definition at line 727 of file EarlyIfConversion.cpp.
Referenced by llvm::AArch64TargetMachine::createPassConfig(), llvm::PPCTargetMachine::createPassConfig(), llvm::X86TargetMachine::createPassConfig(), llvm::R600TargetMachine::createPassConfig(), overridePass(), and llvm::SystemZTargetMachine::SystemZTargetMachine().
| char & llvm::EarlyIfPredicatorID = EarlyIfPredicator::ID |
EarlyIfPredicator - This pass performs if-conversion on SSA form by predicating if/else block and insert select at the join point.
Definition at line 965 of file EarlyIfConversion.cpp.
| char & llvm::EarlyMachineLICMID = EarlyMachineLICM::ID |
This pass performs loop invariant code motion on machine instructions.
This variant works before register allocation.
Definition at line 304 of file MachineLICM.cpp.
Referenced by llvm::TargetPassConfig::addMachineSSAOptimization(), llvm::R600TargetMachine::createPassConfig(), llvm::NVPTXTargetMachine::getTargetTransformInfo(), and overridePass().
| char & llvm::EarlyTailDuplicateID = EarlyTailDuplicate::ID |
Duplicate blocks with unconditional branches into tails of their predecessors.
Variant that works before register allocation.
Definition at line 76 of file TailDuplication.cpp.
Referenced by llvm::TargetPassConfig::addMachineSSAOptimization(), llvm::NVPTXTargetMachine::getTargetTransformInfo(), and overridePass().
| char& llvm::EdgeBundlesID |
EdgeBundles analysis - Bundle machine CFG edges.
| int llvm::EnableABIBreakingChecks |
Definition at line 18 of file ABIBreak.cpp.
EnableDebugBuffering - This defaults to false.
EnableDebugBuffering - Turn on signal handler installation.
If true, the debug stream will install signal handlers to dump any buffered debug output. It allows clients to selectively allow the debug stream to install signal handlers if they are certain there will be no conflict.
Definition at line 165 of file Debug.cpp.
Referenced by dbgs().
Enables memory ssa as a dependency for loop passes.
Enables memory ssa as a dependency for loop passes in legacy pass manager.
Referenced by llvm::PassBuilder::buildFunctionSimplificationPipeline(), llvm::PassBuilder::buildModuleOptimizationPipeline(), createLoopSimplifyPass(), llvm::LoopRotatePass::run(), llvm::LoopLoadEliminationPass::run(), llvm::LoopSimplifyCFGPass::run(), llvm::SimpleLoopUnswitchPass::run(), llvm::LoopVectorizePass::run(), simplifyLoop(), and simplifyLoopInst().
|
static |
| unsigned llvm::ErrorsPrinted = 0 |
Definition at line 24 of file Error.cpp.
Referenced by PrintMessage(), and TableGenMain().
| char & llvm::ExpandPostRAPseudosID = ExpandPostRA::ID |
ExpandPostRAPseudos - This pass expands pseudo instructions after register allocation.
Definition at line 59 of file ExpandPostRAPseudos.cpp.
Referenced by llvm::TargetPassConfig::addMachinePasses().
| char & llvm::FEntryInserterID = FEntryInserter::ID |
This pass inserts FEntry calls.
Definition at line 51 of file FEntryInserter.cpp.
Referenced by llvm::TargetPassConfig::addMachinePasses().
| char & llvm::FinalizeISelID = FinalizeISel::ID |
This pass expands pseudo-instructions, reserves registers and adjusts machine frame information.
Definition at line 44 of file FinalizeISel.cpp.
Referenced by llvm::TargetPassConfig::addCoreISelPasses().
| char & llvm::FinalizeMachineBundlesID = FinalizeMachineBundles::ID |
FinalizeMachineBundles - This pass finalize machine instruction bundles (created earlier, e.g.
during pre-RA scheduling).
Definition at line 100 of file MachineInstrBundle.cpp.
Referenced by llvm::GCNTargetMachine::getTargetTransformInfo().
Definition at line 129 of file ConvertUTF.cpp.
| char & llvm::FuncletLayoutID = FuncletLayout::ID |
This pass lays out funclets contiguously.
Definition at line 39 of file FuncletLayout.cpp.
Referenced by llvm::TargetPassConfig::addMachinePasses(), llvm::WebAssemblyTargetMachine::createPassConfig(), llvm::NVPTXTargetMachine::getTargetTransformInfo(), and llvm::GCNTargetMachine::getTargetTransformInfo().
| char & llvm::GCMachineCodeAnalysisID = GCMachineCodeAnalysis::ID |
GCMachineCodeAnalysis - Target-independent pass to mark safe points in machine code.
Must be added very late during code generation, just prior to output, and importantly after all CFG transformations (such as branch folding).
Definition at line 243 of file GCRootLowering.cpp.
Referenced by llvm::TargetPassConfig::addGCPasses().
| char & llvm::GCNDPPCombineID = GCNDPPCombine::ID |
Definition at line 118 of file GCNDPPCombine.cpp.
Referenced by llvm::R600TargetMachine::createPassConfig().
| char & llvm::GCNNSAReassignID = GCNNSAReassign::ID |
Definition at line 109 of file GCNNSAReassign.cpp.
Referenced by llvm::R600TargetMachine::createPassConfig().
| char & llvm::GCNRegBankReassignID = GCNRegBankReassign::ID |
Definition at line 276 of file GCNRegBankReassign.cpp.
Referenced by llvm::R600TargetMachine::createPassConfig().
|
inline |
get_array_pod_sort_comparator - This is an internal helper function used to get type deduction of T right.
Definition at line 1046 of file STLExtras.h.
| cl::OptionCategory llvm::GICombinerOptionCategory("GlobalISel Combiner", "Control the rules which are enabled. These options all take a comma " "separated list of rules to disable and may be specified by number " "or number range (e.g. 1-10)." " They may also be specified by name.") |
| class llvm::RegisterBankInfo llvm::GPR |
Definition at line 696 of file RegisterBankInfo.h.
Referenced by llvm::AArch64RegisterBankInfo::AArch64RegisterBankInfo(), buildCallOperands(), computeCalleeSaveRegisterPairs(), doesIgnoreDataTypeSuffix(), EnsureStackAlignment(), invalidateRegisterPairing(), isSortedByValueNo(), needStackSlotPassParameters(), llvm::AArch64FrameLowering::restoreCalleeSavedRegisters(), llvm::SystemZMachineFunctionInfo::setVarArgsFirstGPR(), and llvm::AArch64FrameLowering::spillCalleeSavedRegisters().
Definition at line 86 of file ConvertUTF.cpp.
Referenced by ConvertUTF32toUTF16(), and ConvertUTF8toUTF16().
Definition at line 87 of file ConvertUTF.cpp.
|
static |
Definition at line 84 of file ConvertUTF.cpp.
Referenced by llvm::HexagonMCInstrInfo::canonicalizePacket().
| char & llvm::HexagonExpandCondsetsID = HexagonExpandCondsets::ID |
Definition at line 248 of file HexagonExpandCondsets.cpp.
Referenced by llvm::HexagonTargetMachine::createPassConfig(), and createVLIWMachineSched().
| const InstrStage llvm::HexagonStages[] |
Definition at line 646 of file APFloat.cpp.
Referenced by llvm::detail::IEEEFloat::convertToHexString().
Definition at line 647 of file APFloat.cpp.
Referenced by llvm::detail::IEEEFloat::convertToHexString().
Use this rather than HUGE_VALF; the latter causes warnings on MSVC.
Definition at line 28 of file MathExtras.cpp.
Referenced by getNumAllocatableRegsForConstraints(), llvm::LiveInterval::isSpillable(), llvm::LiveInterval::markNotSpillable(), llvm::LiveIntervals::print(), and SaturatingMultiplyAdd().
| char & llvm::IfConverterID = IfConverter::ID |
IfConverter - This pass performs machine code if conversion.
Definition at line 435 of file IfConversion.cpp.
Referenced by llvm::HexagonTargetMachine::createPassConfig(), llvm::PPCTargetMachine::createPassConfig(), llvm::GCNTargetMachine::getTargetTransformInfo(), and llvm::SystemZTargetMachine::SystemZTargetMachine().
| char & llvm::ImplicitNullChecksID = ImplicitNullChecks::ID |
ImplicitNullChecks - This pass folds null pointer checks into nearby memory operations.
Definition at line 721 of file ImplicitNullChecks.cpp.
Referenced by llvm::TargetPassConfig::addMachinePasses().
| char& llvm::InferAddressSpacesID |
Definition at line 648 of file APFloat.cpp.
Definition at line 649 of file APFloat.cpp.
|
static |
Definition at line 761 of file InstrProf.cpp.
| char& llvm::InstructionNamerID |
|
static |
Definition at line 67 of file X86IntrinsicsInfo.h.
|
static |
Definition at line 339 of file X86IntrinsicsInfo.h.
|
static |
Definition at line 23 of file ASanStackFrameLayout.h.
Referenced by GetShadowBytes().
|
static |
Definition at line 24 of file ASanStackFrameLayout.h.
Referenced by GetShadowBytes().
|
static |
Definition at line 25 of file ASanStackFrameLayout.h.
Referenced by GetShadowBytes().
|
static |
Definition at line 26 of file ASanStackFrameLayout.h.
|
static |
Definition at line 27 of file ASanStackFrameLayout.h.
Referenced by GetShadowBytesAfterScope().
Definition at line 36 of file ASanStackFrameLayout.cpp.
| char & llvm::LCSSAID = LCSSAWrapperPass::ID |
Definition at line 468 of file LCSSA.cpp.
Referenced by createHWLoopAnalysis(), createLoopSimplifyPass(), getLoopAnalysisUsage(), GetPointerOperand(), simplifyLoop(), and tryToUnrollLoop().
| char& llvm::LibCallsShrinkWrapPassID = LibCallsShrinkWrapLegacyPass::ID |
Definition at line 544 of file LibCallsShrinkWrap.cpp.
| char & llvm::LiveDebugValuesID = LiveDebugValues::ID |
LiveDebugValues pass.
Definition at line 592 of file LiveDebugValues.cpp.
Referenced by llvm::TargetPassConfig::addMachinePasses(), llvm::WebAssemblyTargetMachine::createPassConfig(), and llvm::NVPTXTargetMachine::getTargetTransformInfo().
| char & llvm::LiveIntervalsID = LiveIntervals::ID |
LiveIntervals - This analysis keeps track of the live ranges of virtual and physical registers.
Definition at line 61 of file LiveIntervals.cpp.
Referenced by llvm::TargetPassConfig::addOptimizedRegAlloc(), hasArgumentDef(), and INITIALIZE_PASS().
| char & llvm::LiveRangeShrinkID = LiveRangeShrink::ID |
LiveRangeShrink pass.
Move instruction close to its definition to shrink the definition's live range.
Definition at line 65 of file LiveRangeShrink.cpp.
Referenced by llvm::X86TargetMachine::createPassConfig().
| Live Stack Slot false char & llvm::LiveStacksID = LiveStacks::ID |
LiveStacks pass. An analysis keeping track of the liveness of stack slots.
Definition at line 33 of file LiveStacks.cpp.
| char & llvm::LiveVariablesID = LiveVariables::ID |
LiveVariables pass - This pass computes the set of blocks in which each variable is life and sets machine operand kill flags.
Definition at line 45 of file LiveVariables.cpp.
Referenced by llvm::TargetPassConfig::addOptimizedRegAlloc(), llvm::PPCTargetMachine::createPassConfig(), and llvm::NVPTXTargetMachine::getTargetTransformInfo().
Metadata attribute names
Definition at line 41 of file UnrollLoop.h.
Referenced by CloneLoopBlocks(), and tryToUnrollLoop().
Definition at line 44 of file UnrollLoop.h.
Referenced by CloneLoopBlocks(), and tryToUnrollLoop().
Definition at line 42 of file UnrollLoop.h.
Referenced by tryToUnrollLoop().
| char & llvm::LocalStackSlotAllocationID = LocalStackSlotPass::ID |
LocalStackSlotAllocation - This pass assigns local frame indices to stack slots relative to one another and allocates base registers to access them when it is estimated by the target to be out of range of normal frame pointer or stack pointer index addressing.
Definition at line 109 of file LocalStackSlotAllocation.cpp.
Referenced by llvm::TargetPassConfig::addMachinePasses(), llvm::TargetPassConfig::addMachineSSAOptimization(), and llvm::NVPTXTargetMachine::getTargetTransformInfo().
|
static |
Definition at line 39 of file NVPTXUtilities.cpp.
Referenced by llvm::orc::rpc::detail::RPCEndpointBase< SingleThreadedRPCEndpoint< ChannelT, FunctionIdT, SequenceNumberT >, ChannelT, FunctionIdT, SequenceNumberT >::abandonPendingResponses(), llvm::orc::ObjectLinkingLayer::addPlugin(), llvm::sys::DynamicLibrary::AddSymbol(), llvm::orc::rpc::detail::RPCEndpointBase< SingleThreadedRPCEndpoint< ChannelT, FunctionIdT, SequenceNumberT >, ChannelT, FunctionIdT, SequenceNumberT >::appendCallAsync(), llvm::TaskQueue::async(), llvm::orc::rpc::ParallelCallGroup::call(), llvm::orc::LazyCallThroughManager::callThroughToSymbol(), llvm::orc::SymbolStringPool::clearDeadEntries(), llvm::orc::LocalIndirectStubsManager< TargetT >::createStub(), llvm::orc::LocalIndirectStubsManager< TargetT >::createStubs(), llvm::orc::ExecutionSession::dump(), llvm::CodeGenCoverage::emit(), llvm::orc::IRCompileLayer::emit(), llvm::orc::RTDyldObjectLinkingLayer::emit(), llvm::orc::SymbolStringPool::empty(), llvm::orc::JITCompileCallbackManager::executeCompileCallback(), llvm::orc::LocalIndirectStubsManager< TargetT >::findPointer(), llvm::orc::LocalIndirectStubsManager< TargetT >::findStub(), llvm::orc::LazyCallThroughManager::getCallThroughTrampoline(), llvm::orc::JITCompileCallbackManager::getCompileCallback(), llvm::orc::ThreadSafeContext::getLock(), llvm::PluginLoader::getNumPlugins(), llvm::PluginLoader::getPlugin(), llvm::orc::rpc::detail::SequenceNumberManager< uint32_t >::getSequenceNumber(), llvm::orc::LocalTrampolinePool< ORCABI >::getTrampoline(), llvm::orc::remote::OrcRemoteTargetClient::RemoteTrampolinePool::getTrampoline(), llvm::orc::rpc::detail::RPCEndpointBase< SingleThreadedRPCEndpoint< ChannelT, FunctionIdT, SequenceNumberT >, ChannelT, FunctionIdT, SequenceNumberT >::handleResponse(), install_bad_alloc_error_handler(), install_fatal_error_handler(), llvm::orc::SymbolStringPool::intern(), llvm_shutdown(), llvm::PluginLoader::operator=(), llvm::orc::rpc::SerializationTraits< ChannelT, Error >::registerErrorType(), llvm::ManagedStaticBase::RegisterManagedStatic(), llvm::TrackingStatistic::RegisterStatistic(), llvm::orc::rpc::detail::SequenceNumberManager< uint32_t >::releaseSequenceNumber(), llvm::orc::LocalTrampolinePool< ORCABI >::releaseTrampoline(), remove_bad_alloc_error_handler(), remove_fatal_error_handler(), report_bad_alloc_error(), report_fatal_error(), llvm::orc::rpc::detail::SequenceNumberManager< uint32_t >::reset(), llvm::orc::ExecutionSession::runSessionLocked(), llvm::sys::DynamicLibrary::SearchForAddressOfSymbol(), llvm::orc::IRCompileLayer::setNotifyCompiled(), llvm::orc::LocalIndirectStubsManager< TargetT >::updatePointer(), llvm::orc::rpc::ParallelCallGroup::wait(), llvm::orc::ThreadSafeModule::withModuleDo(), and llvm::orc::RTDyldObjectLinkingLayer::~RTDyldObjectLinkingLayer().
Definition at line 792 of file LoopSimplify.cpp.
Referenced by eliminateLoadsAcrossLoops(), formLCSSAOnAllLoops(), llvm::gvn::GVNLegacyPass::getAnalysisUsage(), getLoopAnalysisUsage(), and mayUsePostIncMode().
| char & llvm::LowerInvokePassID = LowerInvokeLegacyPass::ID |
Definition at line 84 of file LowerInvoke.cpp.
| char & llvm::LowerSwitchID = LowerSwitch::ID |
Definition at line 133 of file LowerSwitch.cpp.
Referenced by llvm::UnifyFunctionExitNodes::getAnalysisUsage().
Definition at line 75 of file ThinLTOCodeGenerator.cpp.
Referenced by llvm::LTOCodeGenerator::getVersionString(), llvm::LTOCodeGenerator::LTOCodeGenerator(), and llvm::ThinLTOCodeGenerator::run().
| cl::opt<std::string> llvm::LTOStatsFile("lto-stats-file", cl::desc("Save statistics to the specified file"), cl::Hidden) |
Referenced by llvm::LTOCodeGenerator::getVersionString(), and llvm::LTOCodeGenerator::optimize().
| char & llvm::MachineBlockPlacementID = MachineBlockPlacement::ID |
MachineBlockPlacement - This pass places basic blocks based on branch probabilities.
Definition at line 555 of file MachineBlockPlacement.cpp.
Referenced by llvm::TargetPassConfig::addBlockPlacement(), llvm::WebAssemblyTargetMachine::createPassConfig(), and overridePass().
| char & llvm::MachineBlockPlacementStatsID = MachineBlockPlacementStats::ID |
MachineBlockPlacementStats - This pass collects statistics about the basic block placement using branch probabilities and block frequency information.
Definition at line 3193 of file MachineBlockPlacement.cpp.
Referenced by llvm::TargetPassConfig::addBlockPlacement().
| char & llvm::MachineCombinerID = MachineCombiner::ID |
This pass performs instruction combining using trace metrics to estimate critical-path and resource depth.
Definition at line 124 of file MachineCombiner.cpp.
Referenced by llvm::AArch64TargetMachine::createPassConfig(), llvm::PPCTargetMachine::createPassConfig(), and llvm::X86TargetMachine::createPassConfig().
| char & llvm::MachineCopyPropagationID = MachineCopyPropagation::ID |
MachineCopyPropagation - This pass performs copy propagation on machine instructions.
Definition at line 305 of file MachineCopyPropagation.cpp.
Referenced by llvm::TargetPassConfig::addMachineLateOptimization(), llvm::TargetPassConfig::addOptimizedRegAlloc(), llvm::WebAssemblyTargetMachine::createPassConfig(), llvm::NVPTXTargetMachine::getTargetTransformInfo(), and overridePass().
| char & llvm::MachineCSEID = MachineCSE::ID |
MachineCSE - This pass performs global CSE on machine instructions.
Definition at line 152 of file MachineCSE.cpp.
Referenced by llvm::TargetPassConfig::addMachineSSAOptimization(), llvm::R600TargetMachine::createPassConfig(), llvm::NVPTXTargetMachine::getTargetTransformInfo(), and overridePass().
| char & llvm::MachineDominanceFrontierID = MachineDominanceFrontier::ID |
MachineDominanaceFrontier - This pass is a machine dominators analysis pass.
Definition at line 38 of file MachineDominanceFrontier.cpp.
| char& llvm::MachineDominatorsID |
MachineDominators - This pass is a machine dominators analysis pass.
Referenced by llvm::LiveIntervals::getAnalysisUsage(), and llvm::CoalescerPair::isCoalescable().
| char & llvm::MachineFunctionPrinterPassID = MachineFunctionPrinterPass::ID |
MachineFunctionPrinterPass - This pass prints out MachineInstr's.
Definition at line 58 of file MachineFunctionPrinterPass.cpp.
| char & llvm::MachineLICMID = MachineLICM::ID |
This pass performs loop invariant code motion on machine instructions.
Definition at line 303 of file MachineLICM.cpp.
Referenced by llvm::TargetPassConfig::addOptimizedRegAlloc(), and overridePass().
MachineLoopInfo - This pass is a loop analysis pass.
Definition at line 40 of file MachineLoopInfo.cpp.
Referenced by llvm::TargetPassConfig::addOptimizedRegAlloc(), llvm::LiveIntervals::getAnalysisUsage(), and llvm::NVPTXTargetMachine::getTargetTransformInfo().
| char & llvm::MachinePipelinerID = MachinePipeliner::ID |
This pass performs software pipelining on machine instructions.
Definition at line 183 of file MachinePipeliner.cpp.
Referenced by llvm::HexagonTargetMachine::createPassConfig(), and llvm::PPCTargetMachine::createPassConfig().
| char& llvm::MachineRegionInfoPassID |
MachineRegionInfo - This pass computes SESE regions for machine functions.
Definition at line 129 of file MachineRegionInfo.cpp.
| char & llvm::MachineSchedulerID = MachineScheduler::ID |
MachineScheduler - This pass schedules machine instructions.
Definition at line 198 of file MachineScheduler.cpp.
Referenced by llvm::TargetPassConfig::addOptimizedRegAlloc(), llvm::PPCTargetMachine::createPassConfig(), llvm::R600TargetMachine::createPassConfig(), and llvm::NVPTXTargetMachine::getTargetTransformInfo().
| char & llvm::MachineSinkingID = MachineSinking::ID |
MachineSinking - This pass performs sinking on machine instructions.
Definition at line 209 of file MachineSink.cpp.
Referenced by llvm::TargetPassConfig::addMachineSSAOptimization(), llvm::NVPTXTargetMachine::getTargetTransformInfo(), and overridePass().
| char & llvm::MachineTraceMetricsID = MachineTraceMetrics::ID |
MachineTraceMetrics - This pass computes critical path and CPU resource usage in an ensemble of traces.
Definition at line 46 of file MachineTraceMetrics.cpp.
| const unsigned llvm::MAX_SUBTARGET_FEATURES = MAX_SUBTARGET_WORDS * 64 |
Definition at line 34 of file SubtargetFeature.h.
Referenced by llvm::FeatureBitset::size().
Definition at line 33 of file SubtargetFeature.h.
Definition at line 185 of file APFloat.cpp.
| const unsigned int llvm::maxPowerOfFiveExponent = maxExponent + maxPrecision - 1 |
Definition at line 187 of file APFloat.cpp.
| const unsigned int llvm::maxPowerOfFiveParts = 2 + ((maxPowerOfFiveExponent * 815) / (351 * APFloatBase::integerPartWidth)) |
Definition at line 188 of file APFloat.cpp.
Referenced by llvm::detail::IEEEFloat::convertFromZeroExtendedInteger(), and powerOf5().
Definition at line 186 of file APFloat.cpp.
Definition at line 18 of file MipsMCNaCl.h.
Referenced by createMipsNaClELFStreamer(), llvm::MipsAsmPrinter::EmitDebugValue(), and llvm::MipsAsmPrinter::EmitFunctionEntryLabel().
| const MCInstrDesc llvm::MipsInsts[] |
Referenced by getInstDesc().
| char & llvm::MIRCanonicalizerID = MIRCanonicalizer::ID |
MIRCanonicalizer - This pass canonicalizes MIR by renaming vregs according to the semantics of the instruction as well as hoists code.
Definition at line 42 of file MIRCanonicalizerPass.cpp.
| char & llvm::MIRNamerID = MIRNamer::ID |
Definition at line 73 of file MIRNamerPass.cpp.
| char & llvm::MIRPrintingPassID = MIRPrintingPass::ID |
MIRPrintingPass - this pass prints out the LLVM IR using the MIR serialization format.
Definition at line 61 of file MIRPrintingPass.cpp.
|
static |
Definition at line 33 of file AArch64InstrInfo.h.
Referenced by llvm::AArch64TargetLowering::getMMOFlags(), llvm::AArch64InstrInfo::getSerializableMachineMemOperandTargetFlags(), and llvm::AArch64InstrInfo::isStridedAccess().
|
static |
Definition at line 31 of file AArch64InstrInfo.h.
Referenced by llvm::AArch64InstrInfo::getSerializableMachineMemOperandTargetFlags(), llvm::AArch64InstrInfo::isLdStPairSuppressed(), and llvm::AArch64InstrInfo::suppressLdStPair().
Definition at line 650 of file APFloat.cpp.
Definition at line 651 of file APFloat.cpp.
Definition at line 23 of file None.h.
Referenced by llvm::opt::ArgList::AddAllArgs(), llvm::vfs::InMemoryFileSystem::addHardLink(), llvm::ELFYAML::AddrsigSymbol::AddrsigSymbol(), llvm::fuzzerop::anyAggregateType(), llvm::fuzzerop::anyFloatType(), llvm::fuzzerop::anyIntType(), llvm::fuzzerop::anyType(), llvm::fuzzerop::anyVectorType(), llvm::remarks::BitstreamMetaSerializer::BitstreamMetaSerializer(), calculateOffsetDiff(), checkedMulAdd(), checkedMulAddUnsigned(), llvm::remarks::YAMLRemarkSerializer::classof(), llvm::remarks::BitstreamRemarkParser::classof(), llvm::remarks::YAMLStrTabRemarkParser::classof(), llvm::gsym::FunctionInfo::clear(), llvm::TimerGroup::clearAll(), collectBitParts(), llvm::orc::CompileOnDemandLayer::compileWholeModule(), ConstantFoldBinOp(), ConstantFoldExtOp(), copyRangeMetadata(), llvm::DWARFFormValue::dump(), llvm::GVNExpression::Expression::dump(), dumpArrayType(), llvm::pdb::dumpPDBSourceCompression(), llvm::remarks::YAMLMetaSerializer::emit(), llvm::remarks::YAMLStrTabRemarkSerializer::emit(), llvm::remarks::BitstreamRemarkSerializer::emit(), llvm::AMDGPU::HSAMD::MetadataStreamerV2::emitKernel(), llvm::remarks::BitstreamRemarkSerializerHelper::emitMetaBlock(), llvm::remarks::BitstreamRemarkSerializerHelper::emitRemarkBlock(), llvm::X86_MC::X86MCInstrAnalysis::evaluateMemoryOperandAddress(), ExceptionBehaviorToStr(), ExecGraphViewer(), Failed(), fastCaseFoldingDjbHash(), llvm::cflaa::StratifiedSets< InstantiatedValue >::find(), llvm::DWARFDie::find(), llvm::DWARFAbbreviationDeclaration::findAttributeIndex(), findMainViewFileID(), llvm::DWARFDie::findRecursively(), findStringMetadataForLoop(), get64BitArgumentXMMs(), getABIRegCopyCC(), llvm::GlobalValue::getAbsoluteSymbolRange(), llvm::DWARFFormValue::getAsAddress(), llvm::DWARFFormValue::getAsBlock(), llvm::DWARFFormValue::getAsCString(), llvm::DWARFFormValue::getAsCStringOffset(), llvm::DWARFFormValue::getAsReference(), llvm::DWARFFormValue::getAsReferenceUVal(), llvm::DWARFFormValue::getAsRelativeReference(), llvm::DWARFFormValue::getAsSectionedAddress(), llvm::DWARFFormValue::getAsSectionOffset(), llvm::DWARFFormValue::getAsSignedConstant(), llvm::DWARFFormValue::getAsUnsignedConstant(), llvm::DWARFAbbreviationDeclaration::getAttributeValue(), getBaseAlign(), GetBlockName(), GetCodeName(), getConstantVRegVal(), getConstantVRegValWithLookThrough(), getExtractIndex(), getFailureName(), llvm::DWARFAbbreviationDeclaration::getFixedAttributesByteSize(), llvm::dwarf::getFixedFormByteSize(), llvm::xray::InstrumentationMap::getFunctionAddr(), llvm::xray::InstrumentationMap::getFunctionId(), llvm::DWARFDie::getHighPC(), getInsertVecEltOpInfo(), llvm::CodeViewContext::getLinesForExtent(), llvm::DWARFDie::getLocations(), getLoopEstimatedTripCount(), getMaskedTypeForICmpPair(), getOffsetFromIndex(), llvm::CallBase::getOperandBundle(), getOptionalBoolLoopAttribute(), getOptionalIntLoopAttribute(), llvm::HvxSelector::getPairVT(), llvm::BlockFrequencyInfoImplBase::getProfileCountFromFreq(), llvm::object::MinidumpFile::getRawStream(), getRegNum(), llvm::SCEVExpander::getRelatedExistingExpansion(), getRetOpcode(), getSmallBestKnownTC(), llvm::JITSymbolFlags::getTargetFlags(), llvm::ModuleSummaryIndex::getTypeIdCompatibleVtableSummary(), getVectorShiftImm(), getVectorSHLImm(), llvm::GlobalValue::GlobalValue(), INITIALIZE_PASS(), llvm::cflaa::instantiateExternalAttribute(), llvm::cflaa::instantiateExternalRelation(), llvm::cflaa::instantiateInterfaceValue(), IntersectSignedRange(), IntersectUnsignedRange(), llvm::slpvectorizer::BoUpSLP::isDeleted(), isImpliedCondAndOr(), isImpliedCondICmps(), isImpliedCondition(), isImpliedCondMatchingImmOperands(), isImpliedCondMatchingOperands(), isImpliedCondOperands(), isPointerOffset(), isShuffle(), llvm::dwarf::LanguageLowerBound(), llvm::remarks::RemarkLinker::link(), llvm::coverage::CoverageMapping::load(), llvm::DWARFDebugLine::LineTable::lookupAddressRange(), makeFollowupLoopID(), llvm::Optional< uint64_t >::map(), NoopOrExtend(), llvm::JITSymbolFlags::operator bool(), operator!=(), llvm::orc::BlockFreqQuery::operator()(), llvm::orc::SequenceBBQuery::operator()(), llvm::pdb::operator<<(), operator<=(), operator==(), operator>(), operator>=(), OptimizeGlobalAddressOfMalloc(), llvm::detail::HelperFunctions::parseNumericPrecision(), llvm::remarks::BitstreamRemarkParser::parseRemark(), llvm::orc::LLJITBuilderState::prepareForConstruction(), llvm::yaml::Scanner::printError(), PrintStatisticsJSON(), llvm::remarks::RemarkSerializer::RemarkSerializer(), replaceAllDbgUsesWith(), RoundingModeToStr(), llvm::SLPVectorizerPass::runImpl(), selectCallee(), llvm::remarks::ParsedStringTable::size(), llvm::jitlink::LinkGraph::splitBlock(), llvm::fuzzerop::splitBlockDescriptor(), stripDebugLocFromLoopID(), StrToExceptionBehavior(), StrToRoundingMode(), to_hexString(), translateLocChar(), llvm::orc::StaticLibraryDefinitionGenerator::tryToGenerate(), TryToShrinkGlobalToBoolean(), tryToUnrollAndJamLoop(), unwrap(), UpgradeIntrinsicFunction1(), llvm::InstCombiner::visitAllocSite(), llvm::remarks::YAMLRemarkParser::YAMLRemarkParser(), and llvm::remarks::YAMLStrTabRemarkSerializer::YAMLStrTabRemarkSerializer().
Definition at line 119 of file ConvertUTF.cpp.
| char & llvm::OptimizePHIsID = OptimizePHIs::ID |
OptimizePHIs - This pass optimizes machine instruction PHIs to take advantage of opportunities created during DAG legalization.
Definition at line 69 of file OptimizePHIs.cpp.
Referenced by llvm::TargetPassConfig::addMachineSSAOptimization(), and llvm::NVPTXTargetMachine::getTargetTransformInfo().
| char & llvm::PatchableFunctionID = PatchableFunction::ID |
This pass implements the "patchable-function" attribute.
Definition at line 101 of file PatchableFunction.cpp.
Referenced by llvm::TargetPassConfig::addMachinePasses(), llvm::WebAssemblyTargetMachine::createPassConfig(), llvm::NVPTXTargetMachine::getTargetTransformInfo(), and llvm::GCNTargetMachine::getTargetTransformInfo().
| char & llvm::PeepholeOptimizerID = PeepholeOptimizer::ID |
PeepholeOptimizer - This pass performs peephole optimizations - like extension and comparison eliminations.
Definition at line 440 of file PeepholeOptimizer.cpp.
Referenced by llvm::TargetPassConfig::addMachineSSAOptimization(), llvm::AArch64TargetMachine::createPassConfig(), and llvm::NVPTXTargetMachine::getTargetTransformInfo().
| char& llvm::PGOMemOPSizeOptID = PGOMemOPSizeOptLegacyPass::ID |
Definition at line 438 of file PGOMemOPSizeOpt.cpp.
|
static |
| char & llvm::PHIEliminationID = PHIElimination::ID |
PHIElimination - This pass eliminates machine instruction PHI nodes by inserting copy instructions.
This destroys SSA information, but is the desired input for some register allocators. This pass is "required" by these register allocator like this: AU.addRequiredID(PHIEliminationID);
Definition at line 128 of file PHIElimination.cpp.
Referenced by llvm::TargetPassConfig::addFastRegAlloc(), llvm::TargetPassConfig::addOptimizedRegAlloc(), llvm::R600TargetMachine::createPassConfig(), and llvm::NVPTXTargetMachine::getTargetTransformInfo().
| char & llvm::PostMachineSchedulerID = PostMachineScheduler::ID |
PostMachineScheduler - This pass schedules machine instructions postRA.
Definition at line 229 of file MachineScheduler.cpp.
Referenced by llvm::AArch64beTargetMachine::AArch64beTargetMachine(), llvm::TargetPassConfig::addMachinePasses(), llvm::ARMBaseTargetMachine::createPassConfig(), llvm::PPCTargetMachine::getSubtargetImpl(), and llvm::SystemZTargetMachine::SystemZTargetMachine().
| char & llvm::PostRAHazardRecognizerID = PostRAHazardRecognizer::ID |
createPostRAHazardRecognizer - This pass runs the post-ra hazard recognizer.
Definition at line 64 of file PostRAHazardRecognizer.cpp.
Referenced by llvm::R600TargetMachine::createPassConfig().
| char & llvm::PostRAMachineSinkingID = PostRAMachineSinking::ID |
This pass perform post-ra machine sink for COPY instructions.
Definition at line 1134 of file MachineSink.cpp.
Referenced by llvm::TargetPassConfig::addMachinePasses(), llvm::WebAssemblyTargetMachine::createPassConfig(), llvm::NVPTXTargetMachine::getTargetTransformInfo(), and overridePass().
| char & llvm::PostRASchedulerID = PostRAScheduler::ID |
createPostRAScheduler - This pass performs post register allocation scheduling.
Definition at line 201 of file PostRASchedulerList.cpp.
Referenced by llvm::AArch64beTargetMachine::AArch64beTargetMachine(), llvm::TargetPassConfig::addMachinePasses(), llvm::WebAssemblyTargetMachine::createPassConfig(), llvm::ARMBaseTargetMachine::createPassConfig(), llvm::PPCTargetMachine::getSubtargetImpl(), llvm::NVPTXTargetMachine::getTargetTransformInfo(), and overridePass().
| char & llvm::PPCLowerMASSVEntriesID = PPCLowerMASSVEntries::ID |
Definition at line 157 of file PPCLowerMASSVEntries.cpp.
Definition at line 393 of file PPCVSXFMAMutate.cpp.
Referenced by llvm::PPCTargetMachine::createPassConfig().
| char & llvm::ProcessImplicitDefsID = ProcessImplicitDefs::ID |
ProcessImpicitDefs pass - This pass removes IMPLICIT_DEFs.
Definition at line 52 of file ProcessImplicitDefs.cpp.
Referenced by llvm::TargetPassConfig::addOptimizedRegAlloc(), and llvm::NVPTXTargetMachine::getTargetTransformInfo().
| char & llvm::PrologEpilogCodeInserterID = PEI::ID |
PrologEpilogCodeInserter - This pass inserts prolog and epilog code, and eliminates abstract frame references.
Definition at line 139 of file PrologEpilogInserter.cpp.
Referenced by llvm::TargetPassConfig::addMachinePasses(), and llvm::NVPTXTargetMachine::getTargetTransformInfo().
| char & llvm::R600ClauseMergePassID = R600ClauseMergePass::ID |
Definition at line 82 of file R600ClauseMergePass.cpp.
| char & llvm::R600ControlFlowFinalizerID = R600ControlFlowFinalizer::ID |
Definition at line 718 of file R600ControlFlowFinalizer.cpp.
| char & llvm::R600ExpandSpecialInstrsPassID = R600ExpandSpecialInstrsPass::ID |
Definition at line 67 of file R600ExpandSpecialInstrs.cpp.
| char & llvm::R600PacketizerID = R600Packetizer::ID |
Definition at line 414 of file R600Packetizer.cpp.
| char & llvm::R600VectorRegMergerID = R600VectorRegMerger::ID |
Definition at line 149 of file R600OptimizeVectorRegisters.cpp.
| char & llvm::RABasicID = RABasic::ID |
Basic register allocator.
Definition at line 127 of file RegAllocBasic.cpp.
| char & llvm::RAGreedyID = RAGreedy::ID |
Greedy register allocator.
Definition at line 561 of file RegAllocGreedy.cpp.
| char & llvm::RegisterCoalescerID = RegisterCoalescer::ID |
RegisterCoalescer - This pass merges live ranges to eliminate copies.
Definition at line 379 of file RegisterCoalescer.cpp.
Referenced by llvm::TargetPassConfig::addOptimizedRegAlloc(), llvm::HexagonTargetMachine::createPassConfig(), llvm::PPCTargetMachine::createPassConfig(), llvm::R600TargetMachine::createPassConfig(), and llvm::NVPTXTargetMachine::getTargetTransformInfo().
| cl::opt< std::string > llvm::RemarksFilename |
Definition at line 76 of file ThinLTOCodeGenerator.cpp.
Referenced by llvm::LTOCodeGenerator::getVersionString(), llvm::LTOCodeGenerator::optimize(), llvm::ThinLTOCodeGenerator::run(), llvm::lto::setupOptimizationRemarks(), and setupOptimizationRemarks().
| cl::opt< std::string > llvm::RemarksFormat |
Definition at line 79 of file ThinLTOCodeGenerator.cpp.
Referenced by llvm::LTOCodeGenerator::getVersionString(), llvm::remarks::MetaSerializer::MetaSerializer(), llvm::LTOCodeGenerator::optimize(), llvm::ThinLTOCodeGenerator::run(), and llvm::lto::setupOptimizationRemarks().
| cl::opt< std::string > llvm::RemarksPasses |
Definition at line 77 of file ThinLTOCodeGenerator.cpp.
Referenced by llvm::LTOCodeGenerator::getVersionString(), llvm::LTOCodeGenerator::optimize(), and llvm::ThinLTOCodeGenerator::run().
Definition at line 78 of file ThinLTOCodeGenerator.cpp.
Referenced by llvm::LTOCodeGenerator::getVersionString(), llvm::LTOCodeGenerator::optimize(), and llvm::ThinLTOCodeGenerator::run().
| char & llvm::RenameIndependentSubregsID = RenameIndependentSubregs::ID |
This pass detects subregister lanes in a virtual register that are used independently of other lanes and splits them into separate virtual registers.
Definition at line 113 of file RenameIndependentSubregs.cpp.
Referenced by llvm::TargetPassConfig::addOptimizedRegAlloc().
| class llvm::RegisterBankInfo llvm::ScalarAddx2 |
|
static |
Definition at line 76 of file APFloat.cpp.
Referenced by llvm::APFloatBase::Bogus(), llvm::detail::DoubleAPFloat::DoubleAPFloat(), and llvm::detail::IEEEFloat::operator=().
|
static |
Definition at line 73 of file APFloat.cpp.
Referenced by llvm::APFloatBase::IEEEdouble(), and llvm::detail::DoubleAPFloat::operator=().
|
static |
Definition at line 71 of file APFloat.cpp.
Referenced by llvm::APFloatBase::IEEEhalf().
|
static |
Definition at line 74 of file APFloat.cpp.
Referenced by llvm::APFloatBase::IEEEquad().
|
static |
Definition at line 72 of file APFloat.cpp.
Referenced by llvm::APFloatBase::IEEEsingle().
|
static |
Definition at line 87 of file APFloat.cpp.
Referenced by llvm::APFloatBase::PPCDoubleDouble().
|
static |
Definition at line 113 of file APFloat.cpp.
|
static |
Definition at line 75 of file APFloat.cpp.
Referenced by llvm::APFloatBase::x87DoubleExtended().
| char & llvm::ShrinkWrapID = ShrinkWrap::ID |
ShrinkWrap pass. Look for the best place to insert save and restore.
Definition at line 250 of file ShrinkWrap.cpp.
Referenced by llvm::TargetPassConfig::addMachinePasses(), llvm::WebAssemblyTargetMachine::createPassConfig(), and llvm::NVPTXTargetMachine::getTargetTransformInfo().
| char & llvm::SIAddIMGInitID = SIAddIMGInit::ID |
Definition at line 58 of file SIAddIMGInit.cpp.
| char& llvm::SIAnnotateControlFlowPassID |
| char & llvm::SIFixSGPRCopiesID = SIFixSGPRCopies::ID |
Definition at line 147 of file SIFixSGPRCopies.cpp.
Referenced by llvm::R600TargetMachine::createPassConfig().
| char& llvm::SIFixupVectorISelID |
| char & llvm::SIFixVGPRCopiesID = SIFixVGPRCopies::ID |
Definition at line 46 of file SIFixVGPRCopies.cpp.
Referenced by llvm::R600TargetMachine::createPassConfig().
| char& llvm::SIFoldOperandsID |
Referenced by llvm::R600TargetMachine::createPassConfig().
| char & llvm::SIFormMemoryClausesID = SIFormMemoryClauses::ID |
Definition at line 94 of file SIFormMemoryClauses.cpp.
Referenced by llvm::R600TargetMachine::createPassConfig().
| char& llvm::SIInsertSkipsPassID |
Referenced by llvm::R600TargetMachine::createPassConfig().
| char & llvm::SIInsertWaitcntsID = SIInsertWaitcnts::ID |
Definition at line 806 of file SIInsertWaitcnts.cpp.
| char & llvm::SILoadStoreOptimizerID = SILoadStoreOptimizer::ID |
Definition at line 564 of file SILoadStoreOptimizer.cpp.
Referenced by llvm::R600TargetMachine::createPassConfig().
| char & llvm::SILowerControlFlowID = SILowerControlFlow::ID |
Definition at line 145 of file SILowerControlFlow.cpp.
Referenced by llvm::R600TargetMachine::createPassConfig().
| char & llvm::SILowerI1CopiesID = SILowerI1Copies::ID |
Definition at line 422 of file SILowerI1Copies.cpp.
Definition at line 85 of file SILowerSGPRSpills.cpp.
Referenced by llvm::R600TargetMachine::createPassConfig().
| char & llvm::SIMemoryLegalizerID = SIMemoryLegalizer::ID |
Definition at line 1313 of file SIMemoryLegalizer.cpp.
| char& llvm::SIModeRegisterID |
Referenced by BlockData::BlockData().
| char & llvm::SIOptimizeExecMaskingID = SIOptimizeExecMasking::ID |
Definition at line 57 of file SIOptimizeExecMasking.cpp.
Referenced by llvm::R600TargetMachine::createPassConfig().
| char & llvm::SIOptimizeExecMaskingPreRAID = SIOptimizeExecMaskingPreRA::ID |
Definition at line 80 of file SIOptimizeExecMaskingPreRA.cpp.
Referenced by llvm::R600TargetMachine::createPassConfig().
| char & llvm::SIPeepholeSDWAID = SIPeepholeSDWA::ID |
Definition at line 217 of file SIPeepholeSDWA.cpp.
Referenced by llvm::R600TargetMachine::createPassConfig().
| char & llvm::SIPreAllocateWWMRegsID = SIPreAllocateWWMRegs::ID |
Definition at line 84 of file SIPreAllocateWWMRegs.cpp.
Referenced by llvm::R600TargetMachine::createPassConfig().
| char& llvm::SIShrinkInstructionsID |
Definition at line 223 of file SIWholeQuadMode.cpp.
| const int llvm::SIZE_LONG = 4 |
Definition at line 22 of file AVRMCELFStreamer.h.
Referenced by llvm::AVRMCELFStreamer::EmitValueForModiferKind().
| const int llvm::SIZE_WORD = 2 |
Definition at line 23 of file AVRMCELFStreamer.h.
Referenced by llvm::AVRMCELFStreamer::EmitValueForModiferKind().
| char & llvm::SpillPlacementID = SpillPlacement::ID |
SpillPlacement analysis.
Suggest optimal placement of spill code between basic blocks.
Definition at line 54 of file SpillPlacement.cpp.
| SourceMgr llvm::SrcMgr |
Definition at line 23 of file Error.cpp.
Referenced by llvm::mca::Context::addHardwareUnit(), llvm::mca::Context::createDefaultPipeline(), EmitGCCInlineAsmStr(), llvm::MCGenDwarfLabelEntry::getLabel(), srcMgrDiagHandler(), and TableGenMain().
| char & llvm::StackColoringID = StackColoring::ID |
StackSlotColoring - This pass performs stack coloring and merging.
It merges disjoint allocas to reduce the stack size.
Definition at line 518 of file StackColoring.cpp.
Referenced by llvm::TargetPassConfig::addMachineSSAOptimization(), and llvm::NVPTXTargetMachine::getTargetTransformInfo().
| char & llvm::StackMapLivenessID = StackMapLiveness::ID |
StackMapLiveness - This pass analyses the register live-out set of stackmap/patchpoint intrinsics and attaches the calculated information to the intrinsic for later emission to the StackMap.
Definition at line 86 of file StackMapLivenessAnalysis.cpp.
Referenced by llvm::TargetPassConfig::addMachinePasses(), llvm::WebAssemblyTargetMachine::createPassConfig(), llvm::NVPTXTargetMachine::getTargetTransformInfo(), and llvm::GCNTargetMachine::getTargetTransformInfo().
| char & llvm::StackSlotColoringID = StackSlotColoring::ID |
StackSlotColoring - This pass performs stack slot coloring.
Definition at line 132 of file StackSlotColoring.cpp.
Referenced by llvm::TargetPassConfig::addRegAssignmentOptimized(), llvm::NVPTXTargetMachine::getTargetTransformInfo(), and overridePass().
| llvm::success |
Parameters (see the expansion example below): (the builder, addr, loaded, new_val, ordering, /* OUT.
Definition at line 19 of file AtomicExpandUtils.h.
Referenced by llvm::pdb::DIASession::getLoadAddress(), and llvm::object::IRObjectFile::printSymbolName().
| cl::opt<bool> llvm::SwpEnableCopyToPhi("pipeliner-enable-copytophi", cl::ReallyHidden, cl::init(true), cl::ZeroOrMore, cl::desc("Enable CopyToPhi DAG Mutation")) |
| char & llvm::TailDuplicateID = TailDuplicate::ID |
TailDuplicate - Duplicate blocks with unconditional branches into tails of their predecessors.
Definition at line 75 of file TailDuplication.cpp.
Referenced by llvm::TargetPassConfig::addMachineLateOptimization(), llvm::NVPTXTargetMachine::getTargetTransformInfo(), and overridePass().
If the user specifies the -time-passes argument on an LLVM tool command line then the value of this boolean will be true, otherwise false.
This is the storage for the -time-passes option.
Definition at line 309 of file Pass.h.
Referenced by llvm::DwarfDebug::beginModule(), llvm::AsmPrinter::doFinalization(), llvm::AsmPrinter::EmitDebugValue(), llvm::AsmPrinter::EmitFunctionBody(), llvm::AsmPrinter::EmitGlobalVariable(), getNumAllocatableRegsForConstraints(), and llvm::RegAllocBase::init().
| bool llvm::TimeRegions |
| TimeTraceProfiler * llvm::TimeTraceProfilerInstance = nullptr |
Definition at line 27 of file TimeProfiler.cpp.
Referenced by timeTraceProfilerCleanup().
Definition at line 103 of file ConvertUTF.cpp.
| char & llvm::TwoAddressInstructionPassID = TwoAddressInstructionPass::ID |
TwoAddressInstruction - This pass reduces two-address instructions to use two operands.
This destroys SSA information but it is desired by register allocators.
Definition at line 202 of file TwoAddressInstructionPass.cpp.
Referenced by llvm::TargetPassConfig::addFastRegAlloc(), llvm::TargetPassConfig::addOptimizedRegAlloc(), and llvm::NVPTXTargetMachine::getTargetTransformInfo().
| char & llvm::UnpackMachineBundlesID = UnpackMachineBundles::ID |
UnpackMachineBundles - This pass unpack machine instruction bundles.
Definition at line 41 of file MachineInstrBundle.cpp.
| char& llvm::UnreachableMachineBlockElimID |
UnreachableMachineBlockElimination - This pass removes unreachable machine basic blocks.
Referenced by llvm::HexagonTargetMachine::createPassConfig(), llvm::LiveVariables::getAnalysisUsage(), and llvm::UnreachableBlockElimPass::run().
| cl::opt<bool> llvm::UseSegmentSetForPhysRegs("use-segment-set-for-physregs", cl::Hidden, cl::init(true), cl::desc( "Use segment set for the computation of the live ranges of physregs.")) |
Referenced by llvm::LiveIntervals::print().
Enables verification of dominator trees.
Definition at line 32 of file Dominators.cpp.
Referenced by llvm::PostDominatorTreeWrapperPass::verifyAnalysis(), and llvm::DominatorTreeWrapperPass::verifyAnalysis().
Enables verification of loop info.
Definition at line 52 of file LoopInfo.cpp.
Referenced by llvm::LoopInfoWrapperPass::verifyAnalysis().
Definition at line 27 of file MachineDominators.cpp.
Referenced by llvm::MachinePostDominatorTree::verifyAnalysis(), and llvm::MachineDominatorTree::verifyAnalysis().
Enables verification of MemorySSA.
Definition at line 84 of file MemorySSA.cpp.
Referenced by createLICMPass(), getInnermostLoopFor(), hoistRegion(), LoopRotation(), mergeBlocksIntoPredecessors(), promoteLoopAccessesToScalars(), llvm::LoopRotatePass::run(), llvm::LoopInstSimplifyPass::run(), llvm::LoopSimplifyCFGPass::run(), llvm::SimpleLoopUnswitchPass::run(), llvm::MemorySSAPrinterLegacyPass::runOnFunction(), shouldRotateLoopExitingLatch(), simplifyLoopInst(), simplifyOneLoop(), sinkRegion(), turnGuardIntoBranch(), unswitchNontrivialInvariants(), unswitchTrivialBranch(), unswitchTrivialSwitch(), and llvm::MemorySSAWrapperPass::verifyAnalysis().
| char & llvm::VirtRegRewriterID = VirtRegRewriter::ID |
VirtRegRewriter pass.
Rewrite virtual registers to physical registers as assigned in VirtRegMap.
Definition at line 211 of file VirtRegMap.cpp.
Referenced by llvm::TargetPassConfig::addRegAssignmentOptimized().
| const SubtargetFeatureKV llvm::WebAssemblyFeatureKV[WebAssembly::NumSubtargetFeatures] |
| char & llvm::XRayInstrumentationID = XRayInstrumentation::ID |
This pass inserts the XRay instrumentation sleds if they are supported by the target platform.
Definition at line 246 of file XRayInstrumentation.cpp.
Referenced by llvm::TargetPassConfig::addMachinePasses().
1.8.13